From: Roy Marples Date: Sat, 28 Mar 2020 17:01:49 +0000 (+0000) Subject: dhcpcd: dump lease on the unpriviledged socket X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1563721be07d6195642ebd1e64e98229dbcec6c3;p=thirdparty%2Fdhcpcd.git dhcpcd: dump lease on the unpriviledged socket --- diff --git a/src/control.c b/src/control.c index 42a8ab9c..44c57a92 100644 --- a/src/control.c +++ b/src/control.c @@ -193,7 +193,7 @@ control_handle_unpriv(void *arg) } static int -make_sock(struct sockaddr_un *sa, const char *ifname, int unpriv) +make_sock(struct sockaddr_un *sa, const char *ifname, bool unpriv) { int fd; @@ -318,12 +318,12 @@ control_stop(struct dhcpcd_ctx *ctx) } int -control_open(const char *ifname) +control_open(const char *ifname, bool unpriv) { struct sockaddr_un sa; int fd; - if ((fd = make_sock(&sa, ifname, 0)) != -1) { + if ((fd = make_sock(&sa, ifname, unpriv)) != -1) { socklen_t len; len = (socklen_t)SUN_LEN(&sa); diff --git a/src/control.h b/src/control.h index 72f601bf..a94cbd2f 100644 --- a/src/control.h +++ b/src/control.h @@ -68,7 +68,7 @@ TAILQ_HEAD(fd_list_head, fd_list); int control_start(struct dhcpcd_ctx *, const char *); int control_stop(struct dhcpcd_ctx *); -int control_open(const char *); +int control_open(const char *, bool); ssize_t control_send(struct dhcpcd_ctx *, int, char * const *); int control_queue(struct fd_list *, void *, size_t, bool); diff --git a/src/dhcpcd.c b/src/dhcpcd.c index de72d954..057a1fd9 100644 --- a/src/dhcpcd.c +++ b/src/dhcpcd.c @@ -1679,6 +1679,8 @@ again3: } else if (dp[1] == 'd' && isdigit((unsigned char)dp[2])) print = true; + else + print = false; } else print = false; while (dp < de && *dp != '\0') { @@ -2018,9 +2020,11 @@ printpidfile: #endif ctx.options |= DHCPCD_FORKED; /* avoid socket unlink */ if (!(ctx.options & DHCPCD_MASTER)) - ctx.control_fd = control_open(argv[optind]); + ctx.control_fd = control_open(argv[optind], + ctx.options & DHCPCD_DUMPLEASE); if (ctx.control_fd == -1) - ctx.control_fd = control_open(NULL); + ctx.control_fd = control_open(NULL, + ctx.options & DHCPCD_DUMPLEASE); if (ctx.control_fd != -1) { if (!(ctx.options & DHCPCD_DUMPLEASE)) loginfox("sending commands to dhcpcd process");