if (ifp->ctx->udp_fd == -1) {
ifp->ctx->udp_fd = dhcp_openudp(NULL);
if (ifp->ctx->udp_fd == -1) {
- syslog(LOG_ERR, "dhcp_openudp: %m");
- return;
- }
- eloop_event_add(ifp->ctx->eloop,
- ifp->ctx->udp_fd, dhcp_handleudp, ifp->ctx, NULL, NULL);
+ /* Don't log an error if some other process
+ * is handling this. */
+ if (errno != EADDRINUSE)
+ syslog(LOG_ERR, "dhcp_openudp: %m");
+ } else
+ eloop_event_add(ifp->ctx->eloop,
+ ifp->ctx->udp_fd, dhcp_handleudp,
+ ifp->ctx, NULL, NULL);
}
if (dhcp_init(ifp) == -1) {