]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Check setsockopt return codes
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 16 Oct 2019 11:58:44 +0000 (07:58 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 16 Oct 2019 17:38:29 +0000 (13:38 -0400)
Let end user know that a setsockopt failed and we may
be experiencing degraded performance.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_bmp.c

index ff655048a8cd4fb94608b6b205f0c0a5405ed1dc..9f1fe648135c24c984df3b15ab48902aba2d489f 100644 (file)
@@ -1307,8 +1307,12 @@ static struct bmp *bmp_open(struct bmp_targets *bt, int bmp_sock)
        }
        bt->cnt_accept++;
 
-       setsockopt(bmp_sock, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on));
-       setsockopt(bmp_sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
+       if (setsockopt(bmp_sock, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on)) < 0)
+               flog_err(EC_LIB_SOCKET, "bmp: %d can't setsockopt SO_KEEPALIVE: %s(%d)",
+                        bmp_sock, safe_strerror(errno), errno);
+       if (setsockopt(bmp_sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) < 0)
+               flog_err(EC_LIB_SOCKET, "bmp: %d can't setsockopt TCP_NODELAY: %s(%d)",
+                        bmp_sock, safe_strerror(errno), errno);
 
        zlog_info("bmp[%s] connection established", buf);