Fixed getopt routine
This commit is contained in:
parent
ef2aee6b6b
commit
ecf8b71218
|
@ -509,29 +509,28 @@ int start(int argc, char **argv)
|
||||||
std::string st_localeServiceName;
|
std::string st_localeServiceName;
|
||||||
|
|
||||||
bool bVerbose = false;
|
bool bVerbose = false;
|
||||||
char ch;
|
|
||||||
|
|
||||||
//_malloc_options = "A";
|
//_malloc_options = "A";
|
||||||
#if defined(__FreeBSD__) && defined(DEBUG_ALLOC)
|
#if defined(__FreeBSD__) && defined(DEBUG_ALLOC)
|
||||||
_malloc_message = WriteMallocMessage;
|
_malloc_message = WriteMallocMessage;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while ((ch = getopt(argc, argv, "npverltI")) != -1)
|
int ch;
|
||||||
|
while ((ch = getopt(argc, argv, "n:p:verl:tI:")) != -1)
|
||||||
{
|
{
|
||||||
char* ep = NULL;
|
char* ep = NULL;
|
||||||
|
|
||||||
switch (ch)
|
switch (ch)
|
||||||
{
|
{
|
||||||
case 'I': // IP
|
case 'I': // IP
|
||||||
strncpy(g_szPublicIP, argv[optind], sizeof(g_szPublicIP));
|
strncpy(g_szPublicIP, optarg, sizeof(g_szPublicIP));
|
||||||
|
|
||||||
printf("IP %s\n", g_szPublicIP);
|
printf("IP %s\n", g_szPublicIP);
|
||||||
|
|
||||||
optind = 0;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'p': // port
|
case 'p': // port
|
||||||
mother_port = strtol(argv[optind], &ep, 10);
|
mother_port = strtol(optarg, &ep, 10);
|
||||||
|
|
||||||
if (mother_port <= 1024)
|
if (mother_port <= 1024)
|
||||||
{
|
{
|
||||||
|
@ -539,31 +538,21 @@ int start(int argc, char **argv)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("port %d\n", mother_port);
|
printf("port %hu\n", mother_port);
|
||||||
|
|
||||||
optind = 0;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'l':
|
case 'l':
|
||||||
{
|
{
|
||||||
int l = strtol(argv[optind], &ep, 10);
|
int l = strtol(optarg, &ep, 10);
|
||||||
|
|
||||||
log_set_level(l);
|
log_set_level(l);
|
||||||
|
|
||||||
optind = 0;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// LOCALE_SERVICE
|
// LOCALE_SERVICE
|
||||||
case 'n':
|
case 'n':
|
||||||
{
|
st_localeServiceName = optarg;
|
||||||
if (optind < argc)
|
|
||||||
{
|
|
||||||
st_localeServiceName = argv[optind];
|
|
||||||
|
|
||||||
optind = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
// END_OF_LOCALE_SERVICE
|
// END_OF_LOCALE_SERVICE
|
||||||
|
|
||||||
|
@ -580,6 +569,18 @@ int start(int argc, char **argv)
|
||||||
g_bTrafficProfileOn = true;
|
g_bTrafficProfileOn = true;
|
||||||
break;
|
break;
|
||||||
// END_OF_TRAFFIC_PROFILER
|
// END_OF_TRAFFIC_PROFILER
|
||||||
|
|
||||||
|
case '?':
|
||||||
|
if (strchr("Ipln", optopt))
|
||||||
|
fprintf(stderr, "Option -%c requires an argument.\n", optopt);
|
||||||
|
else if (isprint (optopt))
|
||||||
|
fprintf(stderr, "Unknown option `-%c'.\n", optopt);
|
||||||
|
else
|
||||||
|
fprintf(stderr, "Unknown option character `\\x%x'.\n", optopt);
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue