]> git.ipfire.org Git - thirdparty/lldpd.git/commitdiff
netlink: make the netlink socket totally non blocking
authorVincent Bernat <vincent@bernat.ch>
Mon, 10 Jun 2019 09:17:52 +0000 (11:17 +0200)
committerVincent Bernat <vincent@bernat.ch>
Wed, 12 Jun 2019 19:50:58 +0000 (21:50 +0200)
See #333.

src/daemon/event.c
src/daemon/netlink.c

index a82c19e8e6776bf0e19d930b21e87693391bf049..0963c1ef35b3693bbff121830ddb2b0b1c59b527 100644 (file)
@@ -756,8 +756,7 @@ levent_iface_subscribe(struct lldpd *cfg, int socket)
 {
        log_debug("event", "subscribe to interface changes from socket %d",
            socket);
-       if (cfg->g_iface_cb == NULL)
-               levent_make_socket_nonblocking(socket);
+       levent_make_socket_nonblocking(socket);
        cfg->g_iface_event = event_new(cfg->g_base, socket,
            EV_READ | EV_PERSIST, levent_iface_recv, cfg);
        if (cfg->g_iface_event == NULL) {
index d3e26dec67db524f67f37fb8b5853a69d5f7cb22..c89e14902768fd3d7bb8d22811eff4ccfbdd840a 100644 (file)
@@ -472,7 +472,7 @@ netlink_recv(struct lldpd *cfg,
                };
                flags = MSG_PEEK | MSG_TRUNC;
 retry:
-               len = recvmsg(s, &rtnl_reply, flags | MSG_DONTWAIT);
+               len = recvmsg(s, &rtnl_reply, flags);
                if (len == -1) {
                        if (errno == EAGAIN || errno == EWOULDBLOCK) {
                                if (retry++ == 0) {