Module Name: src
Committed By: roy
Date: Tue Feb 25 12:50:53 UTC 2025
Modified Files:
src/external/bsd/dhcpcd/dist/src: bpf.c dhcp.c dhcp6.c dhcpcd.c
if-bsd.c if-options.c ipv6.c ipv6.h ipv6nd.c logerr.c privsep.c
script.c
Log Message:
Sync with dhcpcd-10.2.2
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/external/bsd/dhcpcd/dist/src/bpf.c
cvs rdiff -u -r1.53 -r1.54 src/external/bsd/dhcpcd/dist/src/dhcp.c
cvs rdiff -u -r1.36 -r1.37 src/external/bsd/dhcpcd/dist/src/dhcp6.c
cvs rdiff -u -r1.57 -r1.58 src/external/bsd/dhcpcd/dist/src/dhcpcd.c
cvs rdiff -u -r1.32 -r1.33 src/external/bsd/dhcpcd/dist/src/if-bsd.c \
src/external/bsd/dhcpcd/dist/src/ipv6nd.c
cvs rdiff -u -r1.40 -r1.41 src/external/bsd/dhcpcd/dist/src/if-options.c
cvs rdiff -u -r1.21 -r1.22 src/external/bsd/dhcpcd/dist/src/ipv6.c
cvs rdiff -u -r1.15 -r1.16 src/external/bsd/dhcpcd/dist/src/ipv6.h \
src/external/bsd/dhcpcd/dist/src/logerr.c
cvs rdiff -u -r1.20 -r1.21 src/external/bsd/dhcpcd/dist/src/privsep.c
cvs rdiff -u -r1.18 -r1.19 src/external/bsd/dhcpcd/dist/src/script.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/bsd/dhcpcd/dist/src/bpf.c
diff -u src/external/bsd/dhcpcd/dist/src/bpf.c:1.23 src/external/bsd/dhcpcd/dist/src/bpf.c:1.24
--- src/external/bsd/dhcpcd/dist/src/bpf.c:1.23 Wed Feb 12 19:23:13 2025
+++ src/external/bsd/dhcpcd/dist/src/bpf.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd: BPF arp and bootp filtering
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
Index: src/external/bsd/dhcpcd/dist/src/dhcp.c
diff -u src/external/bsd/dhcpcd/dist/src/dhcp.c:1.53 src/external/bsd/dhcpcd/dist/src/dhcp.c:1.54
--- src/external/bsd/dhcpcd/dist/src/dhcp.c:1.53 Thu Feb 13 02:55:20 2025
+++ src/external/bsd/dhcpcd/dist/src/dhcp.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -2170,7 +2170,8 @@ dhcp_finish_dad(struct interface *ifp, s
#ifdef IPV4LL
/* Stop IPv4LL now we have a working DHCP address */
- if (!IN_LINKLOCAL(ntohl(ia->s_addr)))
+ if ((!IN_LINKLOCAL(ntohl(ia->s_addr)))
+ && (ifp->options->options & DHCPCD_IPV4LL))
ipv4ll_drop(ifp);
#endif
@@ -3075,13 +3076,13 @@ dhcp_handledhcp(struct interface *ifp, s
bool bootp_copied;
uint32_t v6only_time = 0;
bool use_v6only = false, has_auto_conf = false;
-#ifdef IPV4LL
- uint8_t tmp;
-#endif
#ifdef AUTH
const uint8_t *auth;
size_t auth_len;
#endif
+#ifdef IPV4LL
+ uint8_t tmp;
+#endif
#ifdef IN_IFF_DUPLICATED
struct ipv4_addr *ia;
#endif
@@ -3329,7 +3330,8 @@ dhcp_handledhcp(struct interface *ifp, s
switch (tmp) {
case 0:
LOGDHCP(LOG_WARNING, "IPv4LL disabled from");
- ipv4ll_drop(ifp);
+ if (ifp->options->options & DHCPCD_IPV4LL)
+ ipv4ll_drop(ifp);
#ifdef ARP
arp_drop(ifp);
#endif
Index: src/external/bsd/dhcpcd/dist/src/dhcp6.c
diff -u src/external/bsd/dhcpcd/dist/src/dhcp6.c:1.36 src/external/bsd/dhcpcd/dist/src/dhcp6.c:1.37
--- src/external/bsd/dhcpcd/dist/src/dhcp6.c:1.36 Mon Feb 24 16:52:39 2025
+++ src/external/bsd/dhcpcd/dist/src/dhcp6.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -3350,12 +3350,16 @@ dhcp6_bind(struct interface *ifp, const
state->state = DH6S_BOUND;
state->failed = false;
- if (state->renew && state->renew != ND6_INFINITE_LIFETIME)
+ /* If we CONFIRM we might need to enter RENEW
+ * or REBIND right away if the timers have expired */
+ if ((state->renew || (state->rebind && confirmed)) &&
+ state->renew != ND6_INFINITE_LIFETIME)
eloop_timeout_add_sec(ifp->ctx->eloop,
state->renew,
state->state == DH6S_INFORMED ?
dhcp6_startinform : dhcp6_startrenew, ifp);
- if (state->rebind && state->rebind != ND6_INFINITE_LIFETIME)
+ if ((state->rebind || (state->expire && confirmed)) &&
+ state->rebind != ND6_INFINITE_LIFETIME)
eloop_timeout_add_sec(ifp->ctx->eloop,
state->rebind, dhcp6_startrebind, ifp);
if (state->expire != ND6_INFINITE_LIFETIME)
Index: src/external/bsd/dhcpcd/dist/src/dhcpcd.c
diff -u src/external/bsd/dhcpcd/dist/src/dhcpcd.c:1.57 src/external/bsd/dhcpcd/dist/src/dhcpcd.c:1.58
--- src/external/bsd/dhcpcd/dist/src/dhcpcd.c:1.57 Wed Feb 12 19:23:13 2025
+++ src/external/bsd/dhcpcd/dist/src/dhcpcd.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -26,7 +26,7 @@
* SUCH DAMAGE.
*/
-static const char dhcpcd_copyright[] = "Copyright (c) 2006-2024 Roy Marples";
+static const char dhcpcd_copyright[] = "Copyright (c) 2006-2025 Roy Marples";
#include <sys/file.h>
#include <sys/socket.h>
@@ -1156,10 +1156,8 @@ dhcpcd_checkcarrier(void *arg)
struct interface *ifp0 = arg, *ifp;
ifp = if_find(ifp0->ctx->ifaces, ifp0->name);
- if (ifp == NULL || ifp->carrier == ifp0->carrier)
- return;
-
- dhcpcd_handlecarrier(ifp, ifp0->carrier, ifp0->flags);
+ if (ifp != NULL)
+ dhcpcd_handlecarrier(ifp, ifp0->carrier, ifp0->flags);
if_free(ifp0);
}
@@ -2175,9 +2173,6 @@ main(int argc, char **argv, char **envp)
ctx.options &= ~DHCPCD_DAEMONISE;
#endif
- if (ctx.options & DHCPCD_DEBUG)
- logsetopts(logopts | LOGERR_DEBUG);
-
if (!(ctx.options & (DHCPCD_TEST | DHCPCD_DUMPLEASE))) {
printpidfile:
/* If we have any other args, we should run as a single dhcpcd
Index: src/external/bsd/dhcpcd/dist/src/if-bsd.c
diff -u src/external/bsd/dhcpcd/dist/src/if-bsd.c:1.32 src/external/bsd/dhcpcd/dist/src/if-bsd.c:1.33
--- src/external/bsd/dhcpcd/dist/src/if-bsd.c:1.32 Wed Feb 12 19:23:13 2025
+++ src/external/bsd/dhcpcd/dist/src/if-bsd.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* BSD interface driver for dhcpcd
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -887,10 +887,22 @@ if_copyrt(struct dhcpcd_ctx *ctx, struct
rt->rt_flags = (unsigned int)rtm->rtm_flags;
if_copysa(&rt->rt_dest, rti_info[RTAX_DST]);
+
if (rtm->rtm_addrs & RTA_NETMASK) {
if_copysa(&rt->rt_netmask, rti_info[RTAX_NETMASK]);
- if (rt->rt_netmask.sa_family == 255) /* Why? */
- rt->rt_netmask.sa_family = rt->rt_dest.sa_family;
+ /*
+ * Netmask family and length are ignored by traditional
+ * userland tools such as route and netstat and are assumed
+ * to match the destination sockaddr.
+ * This is fortunate because BSD kernels use a radix tree
+ * to store routes which adjusts the netmask at the point
+ * of insertion where this information is lost.
+ * We can just sub in the values from the destination address.
+ *
+ * This is currently true for all BSD kernels.
+ */
+ rt->rt_netmask.sa_family = rt->rt_dest.sa_family;
+ rt->rt_netmask.sa_len = rt->rt_dest.sa_len;
}
/* dhcpcd likes an unspecified gateway to indicate via the link.
@@ -953,19 +965,24 @@ if_initrt(struct dhcpcd_ctx *ctx, rb_tre
struct rt_msghdr *rtm;
int mib[6] = { CTL_NET, PF_ROUTE, 0, af, NET_RT_DUMP, 0 };
size_t bufl;
- char *buf, *p, *end;
+ char *buf = NULL, *p, *end;
struct rt rt, *rtn;
+again:
if (if_sysctl(ctx, mib, __arraycount(mib), NULL, &bufl, NULL, 0) == -1)
- return -1;
- if (bufl == 0)
+ goto err;
+ if (bufl == 0) {
+ free(buf);
return 0;
- if ((buf = malloc(bufl)) == NULL)
- return -1;
+ }
+ if ((p = realloc(buf, bufl)) == NULL)
+ goto err;
+ buf = p;
if (if_sysctl(ctx, mib, __arraycount(mib), buf, &bufl, NULL, 0) == -1)
{
- free(buf);
- return -1;
+ if (errno == ENOMEM)
+ goto again;
+ goto err;
}
end = buf + bufl;
@@ -989,6 +1006,10 @@ if_initrt(struct dhcpcd_ctx *ctx, rb_tre
}
free(buf);
return p == end ? 0 : -1;
+
+err:
+ free(buf);
+ return -1;
}
#ifdef INET
@@ -1252,6 +1273,7 @@ if_ifinfo(struct dhcpcd_ctx *ctx, const
if ((ifp = if_findindex(ctx->ifaces, ifm->ifm_index)) == NULL)
return 0;
+ ifp->mtu = if_mtu(ifp);
link_state = if_carrier(ifp, &ifm->ifm_data);
dhcpcd_handlecarrier(ifp, link_state, (unsigned int)ifm->ifm_flags);
return 0;
Index: src/external/bsd/dhcpcd/dist/src/ipv6nd.c
diff -u src/external/bsd/dhcpcd/dist/src/ipv6nd.c:1.32 src/external/bsd/dhcpcd/dist/src/ipv6nd.c:1.33
--- src/external/bsd/dhcpcd/dist/src/ipv6nd.c:1.32 Wed Feb 12 19:23:13 2025
+++ src/external/bsd/dhcpcd/dist/src/ipv6nd.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd - IPv6 ND handling
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
Index: src/external/bsd/dhcpcd/dist/src/if-options.c
diff -u src/external/bsd/dhcpcd/dist/src/if-options.c:1.40 src/external/bsd/dhcpcd/dist/src/if-options.c:1.41
--- src/external/bsd/dhcpcd/dist/src/if-options.c:1.40 Thu Feb 13 02:53:06 2025
+++ src/external/bsd/dhcpcd/dist/src/if-options.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -33,6 +33,7 @@
#include <ctype.h>
#include <errno.h>
+#include <fnmatch.h>
#include <getopt.h>
#include <grp.h>
#include <inttypes.h>
@@ -174,6 +175,7 @@ const struct option cf_options[] = {
{"request_time", required_argument, NULL, O_REQUEST_TIME},
{"fallback_time", required_argument, NULL, O_FALLBACK_TIME},
{"ipv4ll_time", required_argument, NULL, O_IPV4LL_TIME},
+ {"nosyslog", no_argument, NULL, O_NOSYSLOG},
{NULL, 0, NULL, '\0'}
};
@@ -650,34 +652,38 @@ parse_option(struct dhcpcd_ctx *ctx, con
ssize_t s;
struct in_addr addr, addr2;
in_addr_t *naddr;
- struct rt *rt;
const struct dhcp_opt *d, *od;
uint8_t *request, *require, *no, *reject;
struct dhcp_opt **dop, *ndop;
size_t *dop_len, dl, odl;
struct group *grp;
-#ifndef SMALL
- struct vivco *vivco;
- const struct vivco *vivco_endp = ifo->vivco + ifo->vivco_len;
-#endif
#ifdef AUTH
struct token *token;
#endif
#ifdef _REENTRANT
struct group grpbuf;
#endif
+#ifdef INET
+ struct rt *rt;
+#endif
#ifdef DHCP6
- size_t sl;
struct if_ia *ia;
uint8_t iaid[4];
+#endif
+#if defined(DHCP6) || ((defined(INET) || defined(INET6)) && !defined(SMALL))
+ size_t sl;
+#endif
#ifndef SMALL
- struct in6_addr in6addr;
+#ifdef DHCP6
struct if_sla *sla, *slap;
+#endif
+ struct vivco *vivco;
+ const struct vivco *vivco_endp = ifo->vivco + ifo->vivco_len;
+ struct in6_addr in6addr;
struct vsio **vsiop = NULL, *vsio;
size_t *vsio_lenp = NULL, opt_max, opt_header;
struct vsio_so *vsio_so;
#endif
-#endif
dop = NULL;
dop_len = NULL;
@@ -736,7 +742,7 @@ parse_option(struct dhcpcd_ctx *ctx, con
}
break;
case 'd':
- ifo->options |= DHCPCD_DEBUG;
+ logsetopts(loggetopts() | LOGERR_DEBUG);
break;
case 'e':
ARG_REQUIRED;
@@ -1310,6 +1316,7 @@ parse_option(struct dhcpcd_ctx *ctx, con
strncmp(arg, "ms_classless_static_routes=",
strlen("ms_classless_static_routes=")) == 0)
{
+#ifdef INET
struct in_addr addr3;
if (p == NULL) {
@@ -1339,7 +1346,12 @@ parse_option(struct dhcpcd_ctx *ctx, con
sa_in_init(&rt->rt_gateway, &addr3);
if (rt_proto_add_ctx(&ifo->routes, rt, ctx))
add_environ(&ifo->config, arg, 0);
+#else
+ logerrx("no inet support for option: %s", arg);
+ return -1;
+#endif
} else if (strncmp(arg, "routers=", strlen("routers=")) == 0) {
+#ifdef INET
if (p == NULL) {
rt_headclear(&ifo->routes, AF_INET);
add_environ(&ifo->config, arg, 1);
@@ -1355,6 +1367,10 @@ parse_option(struct dhcpcd_ctx *ctx, con
sa_in_init(&rt->rt_gateway, &addr);
if (rt_proto_add_ctx(&ifo->routes, rt, ctx))
add_environ(&ifo->config, arg, 0);
+#else
+ logerrx("no inet support for option: %s", arg);
+ return -1;
+#endif
} else if (strncmp(arg, "interface_mtu=",
strlen("interface_mtu=")) == 0 ||
strncmp(arg, "mtu=", strlen("mtu=")) == 0)
@@ -1368,6 +1384,7 @@ parse_option(struct dhcpcd_ctx *ctx, con
return -1;
}
} else if (strncmp(arg, "ip6_address=", strlen("ip6_address=")) == 0) {
+#ifdef INET6
if (p == NULL) {
memset(&ifo->req_addr6, 0,
sizeof(ifo->req_addr6));
@@ -1398,6 +1415,10 @@ parse_option(struct dhcpcd_ctx *ctx, con
sizeof(ifo->req_addr6));
return -1;
}
+#else
+ logerrx("no inet6 support for option: %s", arg);
+ return -1;
+#endif
} else
add_environ(&ifo->config, arg, p == NULL ? 1 : 0);
break;
@@ -2529,6 +2550,14 @@ invalid_token:
}
break;
#endif
+ case O_NOSYSLOG:
+ {
+ unsigned int logopts = loggetopts();
+
+ logopts &= ~LOGERR_LOG;
+ logsetopts(logopts);
+ }
+ break;
default:
return 0;
}
@@ -2847,7 +2876,7 @@ read_config(struct dhcpcd_ctx *ctx,
skip = 1;
continue;
}
- if (ifname && strcmp(line, ifname) == 0)
+ if (ifname && fnmatch(line, ifname, 0) == 0)
skip = 0;
else
skip = 1;
Index: src/external/bsd/dhcpcd/dist/src/ipv6.c
diff -u src/external/bsd/dhcpcd/dist/src/ipv6.c:1.21 src/external/bsd/dhcpcd/dist/src/ipv6.c:1.22
--- src/external/bsd/dhcpcd/dist/src/ipv6.c:1.21 Thu Feb 13 02:56:03 2025
+++ src/external/bsd/dhcpcd/dist/src/ipv6.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -709,9 +709,7 @@ ipv6_addaddr1(struct ipv6_addr *ia, stru
* The saved times will be re-applied to the ia
* before exiting this function. */
ia->prefix_vltime = ia->prefix_pltime = ND6_INFINITE_LIFETIME;
- }
-
- if (timespecisset(&ia->acquired)) {
+ } else if (timespecisset(&ia->acquired)) {
ia->prefix_pltime = lifetime_left(ia->prefix_pltime,
&ia->acquired, now);
ia->prefix_vltime = lifetime_left(ia->prefix_vltime,
@@ -2274,13 +2272,10 @@ inet6_raroutes(rb_tree_t *routes, struct
const struct routeinfo *rinfo;
const struct ipv6_addr *addr;
struct in6_addr netmask;
- struct timespec now;
if (ctx->ra_routers == NULL)
return 0;
- timespecclear(&now);
-
TAILQ_FOREACH(rap, ctx->ra_routers, next) {
if (rap->expired)
continue;
@@ -2302,8 +2297,8 @@ inet6_raroutes(rb_tree_t *routes, struct
rt->rt_pref = ipv6nd_rtpref(rinfo->flags);
#endif
#ifdef HAVE_ROUTE_LIFETIME
- rt->rt_lifetime = lifetime_left(rinfo->lifetime,
- &rinfo->acquired, &now);
+ rt->rt_aquired = rinfo->acquired;
+ rt->rt_lifetime = rinfo->lifetime,
#endif
rt_proto_add(routes, rt);
}
@@ -2319,9 +2314,8 @@ inet6_raroutes(rb_tree_t *routes, struct
rt->rt_pref = ipv6nd_rtpref(rap->flags);
#endif
#ifdef HAVE_ROUTE_LIFETIME
- rt->rt_lifetime =
- lifetime_left(addr->prefix_vltime,
- &addr->acquired, &now);
+ rt->rt_aquired = addr->acquired;
+ rt->rt_lifetime = addr->prefix_vltime;
#endif
rt_proto_add(routes, rt);
@@ -2356,8 +2350,8 @@ inet6_raroutes(rb_tree_t *routes, struct
rt->rt_pref = ipv6nd_rtpref(rap->flags);
#endif
#ifdef HAVE_ROUTE_LIFETIME
- rt->rt_lifetime = lifetime_left(rap->lifetime,
- &rap->acquired, &now);
+ rt->rt_aquired = rap->acquired;
+ rt->rt_lifetime = rap->lifetime;
#endif
rt_proto_add(routes, rt);
@@ -2395,6 +2389,10 @@ inet6_dhcproutes(rb_tree_t *routes, stru
if (rt == NULL)
continue;
rt->rt_dflags |= RTDF_DHCP;
+#ifdef HAVE_ROUTE_LIFETIME
+ rt->rt_aquired = ia->acquired;
+ rt->rt_lifetime = ia->prefix_vltime;
+#endif
rt_proto_add(routes, rt);
}
}
Index: src/external/bsd/dhcpcd/dist/src/ipv6.h
diff -u src/external/bsd/dhcpcd/dist/src/ipv6.h:1.15 src/external/bsd/dhcpcd/dist/src/ipv6.h:1.16
--- src/external/bsd/dhcpcd/dist/src/ipv6.h:1.15 Wed Feb 12 19:23:13 2025
+++ src/external/bsd/dhcpcd/dist/src/ipv6.h Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
Index: src/external/bsd/dhcpcd/dist/src/logerr.c
diff -u src/external/bsd/dhcpcd/dist/src/logerr.c:1.15 src/external/bsd/dhcpcd/dist/src/logerr.c:1.16
--- src/external/bsd/dhcpcd/dist/src/logerr.c:1.15 Wed Feb 12 19:23:13 2025
+++ src/external/bsd/dhcpcd/dist/src/logerr.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* logerr: errx with logging
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -427,6 +427,8 @@ logsetopts(unsigned int opts)
ctx->log_opts = opts;
setlogmask(LOG_UPTO(opts & LOGERR_DEBUG ? LOG_DEBUG : LOG_INFO));
+ if (!(ctx->log_opts & LOGERR_LOG))
+ closelog();
}
#ifdef LOGERR_TAG
@@ -463,7 +465,8 @@ logopen(const char *path)
if (ctx->log_opts & LOGERR_LOG_PID)
opts |= LOG_PID;
- openlog(getprogname(), opts, LOGERR_SYSLOG_FACILITY);
+ if (ctx->log_opts & LOGERR_LOG)
+ openlog(getprogname(), opts, LOGERR_SYSLOG_FACILITY);
if (path == NULL)
return 1;
Index: src/external/bsd/dhcpcd/dist/src/privsep.c
diff -u src/external/bsd/dhcpcd/dist/src/privsep.c:1.20 src/external/bsd/dhcpcd/dist/src/privsep.c:1.21
--- src/external/bsd/dhcpcd/dist/src/privsep.c:1.20 Wed Feb 12 19:23:13 2025
+++ src/external/bsd/dhcpcd/dist/src/privsep.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Privilege Separation for dhcpcd
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
Index: src/external/bsd/dhcpcd/dist/src/script.c
diff -u src/external/bsd/dhcpcd/dist/src/script.c:1.18 src/external/bsd/dhcpcd/dist/src/script.c:1.19
--- src/external/bsd/dhcpcd/dist/src/script.c:1.18 Wed Feb 12 19:23:13 2025
+++ src/external/bsd/dhcpcd/dist/src/script.c Tue Feb 25 12:50:53 2025
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2024 Roy Marples <[email protected]>
+ * Copyright (c) 2006-2025 Roy Marples <[email protected]>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -471,7 +471,7 @@ make_env(struct dhcpcd_ctx *ctx, const s
if (efprintf(fp, "af_waiting=%d", af) == -1)
goto eexit;
}
- if (ifo->options & DHCPCD_DEBUG) {
+ if (loggetopts() & LOGERR_DEBUG) {
if (efprintf(fp, "syslog_debug=true") == -1)
goto eexit;
}