forked from metin2/server
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;
|
||||
|
||||
bool bVerbose = false;
|
||||
char ch;
|
||||
|
||||
//_malloc_options = "A";
|
||||
#if defined(__FreeBSD__) && defined(DEBUG_ALLOC)
|
||||
_malloc_message = WriteMallocMessage;
|
||||
#endif
|
||||
|
||||
while ((ch = getopt(argc, argv, "npverltI")) != -1)
|
||||
int ch;
|
||||
while ((ch = getopt(argc, argv, "n:p:verl:tI:")) != -1)
|
||||
{
|
||||
char* ep = NULL;
|
||||
|
||||
switch (ch)
|
||||
{
|
||||
case 'I': // IP
|
||||
strncpy(g_szPublicIP, argv[optind], sizeof(g_szPublicIP));
|
||||
strncpy(g_szPublicIP, optarg, sizeof(g_szPublicIP));
|
||||
|
||||
printf("IP %s\n", g_szPublicIP);
|
||||
|
||||
optind = 0;
|
||||
break;
|
||||
|
||||
case 'p': // port
|
||||
mother_port = strtol(argv[optind], &ep, 10);
|
||||
mother_port = strtol(optarg, &ep, 10);
|
||||
|
||||
if (mother_port <= 1024)
|
||||
{
|
||||
|
@ -539,31 +538,21 @@ int start(int argc, char **argv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
printf("port %d\n", mother_port);
|
||||
printf("port %hu\n", mother_port);
|
||||
|
||||
optind = 0;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
{
|
||||
int l = strtol(argv[optind], &ep, 10);
|
||||
int l = strtol(optarg, &ep, 10);
|
||||
|
||||
log_set_level(l);
|
||||
|
||||
optind = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
// LOCALE_SERVICE
|
||||
case 'n':
|
||||
{
|
||||
if (optind < argc)
|
||||
{
|
||||
st_localeServiceName = argv[optind];
|
||||
|
||||
optind = 0;
|
||||
}
|
||||
}
|
||||
case 'n':
|
||||
st_localeServiceName = optarg;
|
||||
break;
|
||||
// END_OF_LOCALE_SERVICE
|
||||
|
||||
|
@ -580,6 +569,18 @@ int start(int argc, char **argv)
|
|||
g_bTrafficProfileOn = true;
|
||||
break;
|
||||
// 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