Fix the option parsing to use getopt, which seems to fix bug #1050

This commit is contained in:
Eric Andersen 2000-12-11 16:48:50 +00:00
parent cf7982e908
commit 394cf22668
2 changed files with 26 additions and 62 deletions

View File

@ -478,25 +478,19 @@ static void daemon_init (char **argv, char *dz, void fn (void))
extern int syslogd_main(int argc, char **argv)
{
int pid, klogd_pid;
int opt, pid, klogd_pid;
int doFork = TRUE;
#ifdef BB_FEATURE_KLOGD
int startKlogd = TRUE;
#endif
int stopDoingThat = FALSE;
char *p;
char **argv1 = argv;
while (--argc > 0 && **(++argv1) == '-') {
stopDoingThat = FALSE;
while (stopDoingThat == FALSE && *(++(*argv1))) {
switch (**argv1) {
/* do normal option parsing */
while ((opt = getopt(argc, argv, "m:nKO:R:L")) > 0) {
switch (opt) {
case 'm':
if (--argc == 0) {
usage(syslogd_usage);
}
MarkInterval = atoi(*(++argv1)) * 60;
MarkInterval = atoi(optarg) * 60;
break;
case 'n':
doFork = FALSE;
@ -507,38 +501,26 @@ extern int syslogd_main(int argc, char **argv)
break;
#endif
case 'O':
if (--argc == 0) {
usage(syslogd_usage);
}
logFilePath = *(++argv1);
stopDoingThat = TRUE;
logFilePath = strdup(optarg);
break;
#ifdef BB_FEATURE_REMOTE_LOG
case 'R':
if (--argc == 0) {
usage(syslogd_usage);
}
RemoteHost = *(++argv1);
if ( (p = strchr(RemoteHost, ':'))){
RemotePort = atoi(p+1);
*p = '\0';
}
doRemoteLog = TRUE;
stopDoingThat = TRUE;
break;
RemoteHost = strdup(optarg);
if ( (p = strchr(RemoteHost, ':'))){
RemotePort = atoi(p+1);
*p = '\0';
}
doRemoteLog = TRUE;
break;
case 'L':
local_logging = TRUE;
break;
#endif
default:
usage(syslogd_usage);
}
}
}
if (argc > 0)
usage(syslogd_usage);
/* Store away localhost's name before the fork */
gethostname(LocalHostName, sizeof(LocalHostName));
if ((p = strchr(LocalHostName, '.'))) {

View File

@ -478,25 +478,19 @@ static void daemon_init (char **argv, char *dz, void fn (void))
extern int syslogd_main(int argc, char **argv)
{
int pid, klogd_pid;
int opt, pid, klogd_pid;
int doFork = TRUE;
#ifdef BB_FEATURE_KLOGD
int startKlogd = TRUE;
#endif
int stopDoingThat = FALSE;
char *p;
char **argv1 = argv;
while (--argc > 0 && **(++argv1) == '-') {
stopDoingThat = FALSE;
while (stopDoingThat == FALSE && *(++(*argv1))) {
switch (**argv1) {
/* do normal option parsing */
while ((opt = getopt(argc, argv, "m:nKO:R:L")) > 0) {
switch (opt) {
case 'm':
if (--argc == 0) {
usage(syslogd_usage);
}
MarkInterval = atoi(*(++argv1)) * 60;
MarkInterval = atoi(optarg) * 60;
break;
case 'n':
doFork = FALSE;
@ -507,38 +501,26 @@ extern int syslogd_main(int argc, char **argv)
break;
#endif
case 'O':
if (--argc == 0) {
usage(syslogd_usage);
}
logFilePath = *(++argv1);
stopDoingThat = TRUE;
logFilePath = strdup(optarg);
break;
#ifdef BB_FEATURE_REMOTE_LOG
case 'R':
if (--argc == 0) {
usage(syslogd_usage);
}
RemoteHost = *(++argv1);
if ( (p = strchr(RemoteHost, ':'))){
RemotePort = atoi(p+1);
*p = '\0';
}
doRemoteLog = TRUE;
stopDoingThat = TRUE;
break;
RemoteHost = strdup(optarg);
if ( (p = strchr(RemoteHost, ':'))){
RemotePort = atoi(p+1);
*p = '\0';
}
doRemoteLog = TRUE;
break;
case 'L':
local_logging = TRUE;
break;
#endif
default:
usage(syslogd_usage);
}
}
}
if (argc > 0)
usage(syslogd_usage);
/* Store away localhost's name before the fork */
gethostname(LocalHostName, sizeof(LocalHostName));
if ((p = strchr(LocalHostName, '.'))) {