fix command line args
authorBrendan O'Dea <bod@optus.net>
Mon, 25 Oct 2004 15:07:51 +0000 (15:07 +0000)
committerBrendan O'Dea <bod@optus.net>
Mon, 25 Oct 2004 15:07:51 +0000 (15:07 +0000)
l2tpns.c
l2tpns.h

index bce5f38..3fc7f82 100644 (file)
--- a/l2tpns.c
+++ b/l2tpns.c
@@ -4,7 +4,7 @@
 // Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced
 // vim: sw=8 ts=8
 
-char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.30 2004-10-05 02:50:03 fred_nerk Exp $";
+char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.31 2004-10-25 15:07:51 bodea Exp $";
 
 #include <arpa/inet.h>
 #include <assert.h>
@@ -2458,7 +2458,7 @@ void mainloop(void)
 }
 
 // Init data structures
-void initdata(void)
+void initdata(int optdebug, char *optconfig)
 {
        int i;
        char *p;
@@ -2475,7 +2475,8 @@ void initdata(void)
        }
        memset(config, 0, sizeof(struct configt));
        time(&config->start_time);
-       strncpy(config->config_file, CONFIGFILE, sizeof(config->config_file) - 1);
+       config->debug = optdebug;
+       strncpy(config->config_file, optconfig, strlen(optconfig));
        if (!(tunnel = shared_malloc(sizeof(tunnelt) * MAXTUNNEL)))
        {
                log(0, 0, 0, 0, "Error doing malloc for tunnels: %s\n", strerror(errno));
@@ -2906,13 +2907,14 @@ int main(int argc, char *argv[])
 {
        int o;
        int optdebug = 0;
+       char *optconfig = CONFIGFILE;
 
        _program_name = strdup(argv[0]);
 
        time(&basetime);             // start clock
 
        // scan args
-       while ((o = getopt(argc, argv, "vc:h:a:")) >= 0)
+       while ((o = getopt(argc, argv, "dvc:h:")) >= 0)
        {
                switch (o)
                {
@@ -2924,10 +2926,12 @@ int main(int argc, char *argv[])
                        case 'v':
                                optdebug++;
                                break;
+                       case 'c':
+                               optconfig = optarg;
+                               break;
                        case 'h':
                                snprintf(hostname, sizeof(hostname), "%s", optarg);
                                break;
-                       case '?':
                        default:
                                printf("Args are:\n"
                                       "\t-d\tDetach from terminal\n"
@@ -2949,9 +2953,7 @@ int main(int argc, char *argv[])
 
        initiptables();
        initplugins();
-       initdata();
-
-       config->debug = optdebug;
+       initdata(optdebug, optconfig);
 
        init_tbf();
        init_cli();
index bea1bc7..4fd351b 100644 (file)
--- a/l2tpns.h
+++ b/l2tpns.h
@@ -1,5 +1,5 @@
 // L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.20 2004-10-04 23:34:54 fred_nerk Exp $
+// $Id: l2tpns.h,v 1.21 2004-10-25 15:07:52 bodea Exp $
 
 #ifndef __L2TPNS_H__
 #define __L2TPNS_H__
@@ -503,7 +503,7 @@ clockt backoff(u8 try);
 void routeset(sessionidt, ipt ip, ipt mask, ipt gw, u8 add);
 void inittun(void);
 void initudp(void);
-void initdata(void);
+void initdata(int optdebug, const char *optconfig);
 void initippool();
 sessionidt sessionbyip(ipt ip);
 sessionidt sessionbyuser(char *username);