aboutsummaryrefslogtreecommitdiffstats
path: root/sgsnemu/cmdline.c
diff options
context:
space:
mode:
authorjjako <jjako>2003-01-28 16:08:47 +0000
committerjjako <jjako>2003-01-28 16:08:47 +0000
commit5da6845e836d315fc31fb7d3e08a9fd55ff7ad1d (patch)
tree04036d7f0dd695c8c7ef58b78f1ee67a9d1ad5d6 /sgsnemu/cmdline.c
parent2e840a3cb9d14ee40cb836f934d66d562d805d3e (diff)
Ping support
Diffstat (limited to 'sgsnemu/cmdline.c')
-rw-r--r--sgsnemu/cmdline.c422
1 files changed, 337 insertions, 85 deletions
diff --git a/sgsnemu/cmdline.c b/sgsnemu/cmdline.c
index d8f51df..836e160 100644
--- a/sgsnemu/cmdline.c
+++ b/sgsnemu/cmdline.c
@@ -1,7 +1,7 @@
/*
- File autogenerated by gengetopt version 2.8
+ File autogenerated by gengetopt version 2.8rc
generated with the following command:
- gengetopt --conf-parser
+ ../../gengetopt-2.8rc/src/gengetopt --conf-parser
The developers of gengetopt consider the fixed text that goes in all
gengetopt output files to be in the public domain:
@@ -52,10 +52,7 @@ cmdline_parser_print_help (void)
printf(" --dns=STRING DNS Server to use\n");
printf(" -lSTRING --listen=STRING Local interface\n");
printf(" -rSTRING --remote=STRING Remote host\n");
- printf(" -nSTRING --net=STRING Network (default='192.168.0.0')\n");
- printf(" --mask=STRING Network mask (default='255.255.255.0')\n");
printf(" --contexts=INT Number of contexts (default='1')\n");
- printf(" --static Allocate static tun ifterface (default=off)\n");
printf(" --timelimit=INT Exit after timelimit seconds (default='0')\n");
printf(" -aSTRING --apn=STRING Access point name (default='internet')\n");
printf(" -iSTRING --imsi=STRING IMSI (default='240010123456789')\n");
@@ -63,6 +60,17 @@ cmdline_parser_print_help (void)
printf(" -qINT --qos=INT Requested quality of service (default='0x0b921f')\n");
printf(" -uSTRING --uid=STRING Login user ID (default='mig')\n");
printf(" -pSTRING --pwd=STRING Login password (default='hemmelig')\n");
+ printf(" --createif Create local network interface (default=off)\n");
+ printf(" --ipup=STRING Script to run after link-up\n");
+ printf(" --ipdown=STRING Script to run after link-down\n");
+ printf(" --defaultroute Add default route after link-up (default=off)\n");
+ printf(" --net=STRING Network (default='0.0.0.0')\n");
+ printf(" --mask=STRING Network mask (default='0.0.0.0')\n");
+ printf(" --pinghost=STRING Ping remote host\n");
+ printf(" --pingrate=INT Number of ping req per second (default='1')\n");
+ printf(" --pingsize=INT Number of ping data bytes (default='56')\n");
+ printf(" --pingcount=INT Number of ping req to send (default='0')\n");
+ printf(" --pingquiet Do not print ping packet info (default=off)\n");
}
@@ -96,10 +104,7 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
args_info->dns_given = 0 ;
args_info->listen_given = 0 ;
args_info->remote_given = 0 ;
- args_info->net_given = 0 ;
- args_info->mask_given = 0 ;
args_info->contexts_given = 0 ;
- args_info->static_given = 0 ;
args_info->timelimit_given = 0 ;
args_info->apn_given = 0 ;
args_info->imsi_given = 0 ;
@@ -107,6 +112,17 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
args_info->qos_given = 0 ;
args_info->uid_given = 0 ;
args_info->pwd_given = 0 ;
+ args_info->createif_given = 0 ;
+ args_info->ipup_given = 0 ;
+ args_info->ipdown_given = 0 ;
+ args_info->defaultroute_given = 0 ;
+ args_info->net_given = 0 ;
+ args_info->mask_given = 0 ;
+ args_info->pinghost_given = 0 ;
+ args_info->pingrate_given = 0 ;
+ args_info->pingsize_given = 0 ;
+ args_info->pingcount_given = 0 ;
+ args_info->pingquiet_given = 0 ;
#define clear_args() { \
args_info->fg_flag = 0;\
args_info->debug_flag = 0;\
@@ -116,10 +132,7 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
args_info->dns_arg = NULL; \
args_info->listen_arg = NULL; \
args_info->remote_arg = NULL; \
- args_info->net_arg = strdup("192.168.0.0") ;\
- args_info->mask_arg = strdup("255.255.255.0") ;\
args_info->contexts_arg = 1 ;\
- args_info->static_flag = 0;\
args_info->timelimit_arg = 0 ;\
args_info->apn_arg = strdup("internet") ;\
args_info->imsi_arg = strdup("240010123456789") ;\
@@ -127,6 +140,17 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
args_info->qos_arg = 0x0b921f ;\
args_info->uid_arg = strdup("mig") ;\
args_info->pwd_arg = strdup("hemmelig") ;\
+ args_info->createif_flag = 0;\
+ args_info->ipup_arg = NULL; \
+ args_info->ipdown_arg = NULL; \
+ args_info->defaultroute_flag = 0;\
+ args_info->net_arg = strdup("0.0.0.0") ;\
+ args_info->mask_arg = strdup("0.0.0.0") ;\
+ args_info->pinghost_arg = NULL; \
+ args_info->pingrate_arg = 1 ;\
+ args_info->pingsize_arg = 56 ;\
+ args_info->pingcount_arg = 0 ;\
+ args_info->pingquiet_flag = 0;\
}
clear_args();
@@ -151,10 +175,7 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
{ "dns", 1, NULL, 0 },
{ "listen", 1, NULL, 'l' },
{ "remote", 1, NULL, 'r' },
- { "net", 1, NULL, 'n' },
- { "mask", 1, NULL, 0 },
{ "contexts", 1, NULL, 0 },
- { "static", 0, NULL, 0 },
{ "timelimit", 1, NULL, 0 },
{ "apn", 1, NULL, 'a' },
{ "imsi", 1, NULL, 'i' },
@@ -162,10 +183,21 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
{ "qos", 1, NULL, 'q' },
{ "uid", 1, NULL, 'u' },
{ "pwd", 1, NULL, 'p' },
+ { "createif", 0, NULL, 0 },
+ { "ipup", 1, NULL, 0 },
+ { "ipdown", 1, NULL, 0 },
+ { "defaultroute", 0, NULL, 0 },
+ { "net", 1, NULL, 0 },
+ { "mask", 1, NULL, 0 },
+ { "pinghost", 1, NULL, 0 },
+ { "pingrate", 1, NULL, 0 },
+ { "pingsize", 1, NULL, 0 },
+ { "pingcount", 1, NULL, 0 },
+ { "pingquiet", 0, NULL, 0 },
{ NULL, 0, NULL, 0 }
};
- c = getopt_long (argc, argv, "hVfdc:l:r:n:a:i:m:q:u:p:", long_options, &option_index);
+ c = getopt_long (argc, argv, "hVfdc:l:r:a:i:m:q:u:p:", long_options, &option_index);
if (c == -1) break; /* Exit from `while (1)' loop. */
@@ -236,17 +268,6 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
args_info->remote_arg = strdup (optarg);
break;
- case 'n': /* Network. */
- if (args_info->net_given)
- {
- fprintf (stderr, "%s: `--net' (`-n') option given more than once\n", PACKAGE);
- clear_args ();
- exit (EXIT_FAILURE);
- }
- args_info->net_given = 1;
- args_info->net_arg = strdup (optarg);
- break;
-
case 'a': /* Access point name. */
if (args_info->apn_given)
{
@@ -354,6 +375,97 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
args_info->dns_arg = strdup (optarg);
break;
}
+ /* Number of contexts. */
+ else if (strcmp (long_options[option_index].name, "contexts") == 0)
+ {
+ if (args_info->contexts_given)
+ {
+ fprintf (stderr, "%s: `--contexts' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->contexts_given = 1;
+ args_info->contexts_arg = strtol (optarg,&stop_char,0);
+ break;
+ }
+ /* Exit after timelimit seconds. */
+ else if (strcmp (long_options[option_index].name, "timelimit") == 0)
+ {
+ if (args_info->timelimit_given)
+ {
+ fprintf (stderr, "%s: `--timelimit' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->timelimit_given = 1;
+ args_info->timelimit_arg = strtol (optarg,&stop_char,0);
+ break;
+ }
+ /* Create local network interface. */
+ else if (strcmp (long_options[option_index].name, "createif") == 0)
+ {
+ if (args_info->createif_given)
+ {
+ fprintf (stderr, "%s: `--createif' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->createif_given = 1;
+ args_info->createif_flag = !(args_info->createif_flag);
+ break;
+ }
+ /* Script to run after link-up. */
+ else if (strcmp (long_options[option_index].name, "ipup") == 0)
+ {
+ if (args_info->ipup_given)
+ {
+ fprintf (stderr, "%s: `--ipup' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->ipup_given = 1;
+ args_info->ipup_arg = strdup (optarg);
+ break;
+ }
+ /* Script to run after link-down. */
+ else if (strcmp (long_options[option_index].name, "ipdown") == 0)
+ {
+ if (args_info->ipdown_given)
+ {
+ fprintf (stderr, "%s: `--ipdown' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->ipdown_given = 1;
+ args_info->ipdown_arg = strdup (optarg);
+ break;
+ }
+ /* Add default route after link-up. */
+ else if (strcmp (long_options[option_index].name, "defaultroute") == 0)
+ {
+ if (args_info->defaultroute_given)
+ {
+ fprintf (stderr, "%s: `--defaultroute' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->defaultroute_given = 1;
+ args_info->defaultroute_flag = !(args_info->defaultroute_flag);
+ break;
+ }
+ /* Network. */
+ else if (strcmp (long_options[option_index].name, "net") == 0)
+ {
+ if (args_info->net_given)
+ {
+ fprintf (stderr, "%s: `--net' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->net_given = 1;
+ args_info->net_arg = strdup (optarg);
+ break;
+ }
/* Network mask. */
else if (strcmp (long_options[option_index].name, "mask") == 0)
{
@@ -367,43 +479,69 @@ cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_i
args_info->mask_arg = strdup (optarg);
break;
}
- /* Number of contexts. */
- else if (strcmp (long_options[option_index].name, "contexts") == 0)
+ /* Ping remote host. */
+ else if (strcmp (long_options[option_index].name, "pinghost") == 0)
{
- if (args_info->contexts_given)
+ if (args_info->pinghost_given)
{
- fprintf (stderr, "%s: `--contexts' option given more than once\n", PACKAGE);
+ fprintf (stderr, "%s: `--pinghost' option given more than once\n", PACKAGE);
clear_args ();
exit (EXIT_FAILURE);
}
- args_info->contexts_given = 1;
- args_info->contexts_arg = strtol (optarg,&stop_char,0);
+ args_info->pinghost_given = 1;
+ args_info->pinghost_arg = strdup (optarg);
break;
}
- /* Allocate static tun ifterface. */
- else if (strcmp (long_options[option_index].name, "static") == 0)
+ /* Number of ping req per second. */
+ else if (strcmp (long_options[option_index].name, "pingrate") == 0)
{
- if (args_info->static_given)
+ if (args_info->pingrate_given)
{
- fprintf (stderr, "%s: `--static' option given more than once\n", PACKAGE);
+ fprintf (stderr, "%s: `--pingrate' option given more than once\n", PACKAGE);
clear_args ();
exit (EXIT_FAILURE);
}
- args_info->static_given = 1;
- args_info->static_flag = !(args_info->static_flag);
+ args_info->pingrate_given = 1;
+ args_info->pingrate_arg = strtol (optarg,&stop_char,0);
break;
}
- /* Exit after timelimit seconds. */
- else if (strcmp (long_options[option_index].name, "timelimit") == 0)
+ /* Number of ping data bytes. */
+ else if (strcmp (long_options[option_index].name, "pingsize") == 0)
{
- if (args_info->timelimit_given)
+ if (args_info->pingsize_given)
{
- fprintf (stderr, "%s: `--timelimit' option given more than once\n", PACKAGE);
+ fprintf (stderr, "%s: `--pingsize' option given more than once\n", PACKAGE);
clear_args ();
exit (EXIT_FAILURE);
}
- args_info->timelimit_given = 1;
- args_info->timelimit_arg = strtol (optarg,&stop_char,0);
+ args_info->pingsize_given = 1;
+ args_info->pingsize_arg = strtol (optarg,&stop_char,0);
+ break;
+ }
+ /* Number of ping req to send. */
+ else if (strcmp (long_options[option_index].name, "pingcount") == 0)
+ {
+ if (args_info->pingcount_given)
+ {
+ fprintf (stderr, "%s: `--pingcount' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->pingcount_given = 1;
+ args_info->pingcount_arg = strtol (optarg,&stop_char,0);
+ break;
+ }
+ /* Do not print ping packet info. */
+ else if (strcmp (long_options[option_index].name, "pingquiet") == 0)
+ {
+ if (args_info->pingquiet_given)
+ {
+ fprintf (stderr, "%s: `--pingquiet' option given more than once\n", PACKAGE);
+ clear_args ();
+ exit (EXIT_FAILURE);
+ }
+ args_info->pingquiet_given = 1;
+ args_info->pingquiet_flag = !(args_info->pingquiet_flag);
break;
}
@@ -593,38 +731,6 @@ cmdline_parser_configfile (char * const filename, struct gengetopt_args_info *ar
}
continue;
}
- if (!strcmp(fopt, "net"))
- {
- if (override || !args_info->net_given)
- {
- args_info->net_given = 1;
- if (fnum == 2)
- args_info->net_arg = strdup (farg);
- else
- {
- fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
- filename, line_num);
- exit (EXIT_FAILURE);
- }
- }
- continue;
- }
- if (!strcmp(fopt, "mask"))
- {
- if (override || !args_info->mask_given)
- {
- args_info->mask_given = 1;
- if (fnum == 2)
- args_info->mask_arg = strdup (farg);
- else
- {
- fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
- filename, line_num);
- exit (EXIT_FAILURE);
- }
- }
- continue;
- }
if (!strcmp(fopt, "contexts"))
{
if (override || !args_info->contexts_given)
@@ -641,15 +747,6 @@ cmdline_parser_configfile (char * const filename, struct gengetopt_args_info *ar
}
continue;
}
- if (!strcmp(fopt, "static"))
- {
- if (override || !args_info->static_given)
- {
- args_info->static_given = 1;
- args_info->static_flag = !(args_info->static_flag);
- }
- continue;
- }
if (!strcmp(fopt, "timelimit"))
{
if (override || !args_info->timelimit_given)
@@ -762,6 +859,161 @@ cmdline_parser_configfile (char * const filename, struct gengetopt_args_info *ar
}
continue;
}
+ if (!strcmp(fopt, "createif"))
+ {
+ if (override || !args_info->createif_given)
+ {
+ args_info->createif_given = 1;
+ args_info->createif_flag = !(args_info->createif_flag);
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "ipup"))
+ {
+ if (override || !args_info->ipup_given)
+ {
+ args_info->ipup_given = 1;
+ if (fnum == 2)
+ args_info->ipup_arg = strdup (farg);
+ else
+ {
+ fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+ filename, line_num);
+ exit (EXIT_FAILURE);
+ }
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "ipdown"))
+ {
+ if (override || !args_info->ipdown_given)
+ {
+ args_info->ipdown_given = 1;
+ if (fnum == 2)
+ args_info->ipdown_arg = strdup (farg);
+ else
+ {
+ fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+ filename, line_num);
+ exit (EXIT_FAILURE);
+ }
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "defaultroute"))
+ {
+ if (override || !args_info->defaultroute_given)
+ {
+ args_info->defaultroute_given = 1;
+ args_info->defaultroute_flag = !(args_info->defaultroute_flag);
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "net"))
+ {
+ if (override || !args_info->net_given)
+ {
+ args_info->net_given = 1;
+ if (fnum == 2)
+ args_info->net_arg = strdup (farg);
+ else
+ {
+ fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+ filename, line_num);
+ exit (EXIT_FAILURE);
+ }
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "mask"))
+ {
+ if (override || !args_info->mask_given)
+ {
+ args_info->mask_given = 1;
+ if (fnum == 2)
+ args_info->mask_arg = strdup (farg);
+ else
+ {
+ fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+ filename, line_num);
+ exit (EXIT_FAILURE);
+ }
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "pinghost"))
+ {
+ if (override || !args_info->pinghost_given)
+ {
+ args_info->pinghost_given = 1;
+ if (fnum == 2)
+ args_info->pinghost_arg = strdup (farg);
+ else
+ {
+ fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+ filename, line_num);
+ exit (EXIT_FAILURE);
+ }
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "pingrate"))
+ {
+ if (override || !args_info->pingrate_given)
+ {
+ args_info->pingrate_given = 1;
+ if (fnum == 2)
+ args_info->pingrate_arg = strtol (farg,&stop_char,0);
+ else
+ {
+ fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+ filename, line_num);
+ exit (EXIT_FAILURE);
+ }
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "pingsize"))
+ {
+ if (override || !args_info->pingsize_given)
+ {
+ args_info->pingsize_given = 1;
+ if (fnum == 2)
+ args_info->pingsize_arg = strtol (farg,&stop_char,0);
+ else
+ {
+ fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+ filename, line_num);
+ exit (EXIT_FAILURE);
+ }
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "pingcount"))
+ {
+ if (override || !args_info->pingcount_given)
+ {
+ args_info->pingcount_given = 1;
+ if (fnum == 2)
+ args_info->pingcount_arg = strtol (farg,&stop_char,0);
+ else
+ {
+ fprintf (stderr, "%s:%d: required <option_name> <option_val>\n",
+ filename, line_num);
+ exit (EXIT_FAILURE);
+ }
+ }
+ continue;
+ }
+ if (!strcmp(fopt, "pingquiet"))
+ {
+ if (override || !args_info->pingquiet_given)
+ {
+ args_info->pingquiet_given = 1;
+ args_info->pingquiet_flag = !(args_info->pingquiet_flag);
+ }
+ continue;
+ }
/* Tried all known options. This one is unknown! */