X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fodhcpd.git;a=blobdiff_plain;f=src%2Fodhcpd.c;h=e83a7007c36b3701f4e2ce272c4b44710d7dcec4;hp=0c9542c98c279a4d292d84083c58f20827d0044e;hb=0b45fce0859e4726e27f408016ef2f7d210c847f;hpb=e60710d1fe0c5bf19b9acf9b116e0645e8e114d1 diff --git a/src/odhcpd.c b/src/odhcpd.c index 0c9542c..e83a700 100644 --- a/src/odhcpd.c +++ b/src/odhcpd.c @@ -54,11 +54,33 @@ static void sighandler(_unused int signal) uloop_end(); } +static void print_usage(const char *app) +{ + printf( + "== %s Usage ==\n\n" + " -h, --help Print this help\n" + " -l level Specify log level 0..7 (default %d)\n", + app, LOG_WARNING + ); +} -int main() +int main(int argc, char **argv) { openlog("odhcpd", LOG_PERROR | LOG_PID, LOG_DAEMON); - setlogmask(LOG_UPTO(LOG_WARNING)); + int opt; + int log_level = LOG_WARNING; + while ((opt = getopt(argc, argv, "hl:")) != -1) { + switch (opt) { + case 'h': + print_usage(argv[0]); + return 0; + case 'l': + log_level = atoi(optarg); + fprintf(stderr, "Log level set to %d\n", log_level); + break; + } + } + setlogmask(LOG_UPTO(log_level)); uloop_init(); if (getuid() != 0) { @@ -374,7 +396,6 @@ static void odhcpd_receive_packets(struct uloop_fd *u, _unused unsigned int even u->error = false; if (e->handle_error) e->handle_error(ret); - return; } while (true) { @@ -444,7 +465,6 @@ static void odhcpd_receive_packets(struct uloop_fd *u, _unused unsigned int even else if (addr.in.sin_family == AF_INET) inet_ntop(AF_INET, &addr.in.sin_addr, ipbuf, sizeof(ipbuf)); - syslog(LOG_DEBUG, "--"); syslog(LOG_DEBUG, "Received %li Bytes from %s%%%s", (long)len, ipbuf, (iface) ? iface->ifname : "netlink");