diff --git a/dhcpcd.c b/dhcpcd.c index 9cfa1009..9992b41e 100644 --- a/dhcpcd.c +++ b/dhcpcd.c @@ -1002,9 +1002,6 @@ main(int argc, char **argv) while ((opt = getopt_long(argc, argv, IF_OPTS, cf_options, &oi)) != -1) { switch (opt) { - case 'b': - options |= DHCPCD_BACKGROUND; - break; case 'd': setlogmask(LOG_UPTO(LOG_DEBUG)); break; @@ -1017,16 +1014,9 @@ main(int argc, char **argv) case 'n': sig = SIGALRM; break; - case 'q': - setlogmask(LOG_UPTO(LOG_WARNING)); - options |= DHCPCD_QUIET; - break; case 'x': sig = SIGTERM; break; - case 'B': - options &= ~DHCPCD_DAEMONISE; - break; case 'T': options |= DHCPCD_TEST | DHCPCD_PERSISTENT; break; @@ -1047,6 +1037,13 @@ main(int argc, char **argv) exit(EXIT_FAILURE); } +#ifdef THERE_IS_NO_FORK + options &= ~DHCPCD_DAEMONISE; +#endif + + if (ifo->options & DHCPCD_QUIET) + setlogmask(LOG_UPTO(LOG_WARNING)); + /* If we have any other args, we should run as a single dhcpcd instance * for that interface. */ len = strlen(PIDFILE) + IF_NAMESIZE + 2; @@ -1057,10 +1054,6 @@ main(int argc, char **argv) snprintf(pidfile, len, PIDFILE, "", ""); options |= DHCPCD_MASTER; } - -#ifdef THERE_IS_NO_FORK - options &= ~DHCPCD_DAEMONISE; -#endif chdir("/"); umask(022); diff --git a/if-options.c b/if-options.c index 1f8ff8f1..3c45b0de 100644 --- a/if-options.c +++ b/if-options.c @@ -257,15 +257,15 @@ parse_option(struct if_options *ifo, int opt, const char *arg) struct in_addr addr; switch(opt) { - case 'b': /* FALLTHROUGH */ case 'd': /* FALLTHROUGH */ case 'k': /* FALLTHROUGH */ case 'n': /* FALLTHROUGH */ - case 'q': /* FALLTHROUGH */ case 'x': /* FALLTHROUGH */ - case 'B': /* FALLTHROUGH */ case 'T': /* We need to handle non interface options */ break; + case 'b': + ifo->options |= DHCPCD_BACKGROUND; + break; case 'c': strlcpy(ifo->script, arg, sizeof(ifo->script)); break; @@ -326,6 +326,9 @@ parse_option(struct if_options *ifo, int opt, const char *arg) case 'p': ifo->options |= DHCPCD_PERSISTENT; break; + case 'q': + ifo->options |= DHCPCD_QUIET; + break; case 's': ifo->options |= DHCPCD_INFORM; ifo->options |= DHCPCD_PERSISTENT; @@ -419,6 +422,9 @@ parse_option(struct if_options *ifo, int opt, const char *arg) /* IPv4LL requires ARP */ ifo->options &= ~DHCPCD_IPV4LL; break; + case 'B': + ifo->options &= ~DHCPCD_DAEMONISE; + break; case 'C': /* Commas to spaces for shell */ while ((p = strchr(arg, ',')))