From: Donald Sharp Date: Wed, 10 May 2017 12:36:20 +0000 (-0400) Subject: pimd: Use setsockopt_so_recvbuf instead of doing it ourselves X-Git-Tag: frr-4.0-dev~468^2~150 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=fe232c19489b0ff9003aaa5c37f475d060a1e222;p=mirror%2Ffrr.git pimd: Use setsockopt_so_recvbuf instead of doing it ourselves This change allows other non-linux platforms to be a bit more forgiving if we ask for a very very large size. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c index ad641c2d9c..c92bad6c4d 100644 --- a/pimd/pim_mroute.c +++ b/pimd/pim_mroute.c @@ -24,6 +24,7 @@ #include "prefix.h" #include "vty.h" #include "plist.h" +#include "sockopt.h" #include "pimd.h" #include "pim_rpf.h" @@ -50,7 +51,6 @@ static int pim_mroute_set(int fd, int enable) int err; int opt = enable ? MRT_INIT : MRT_DONE; socklen_t opt_len = sizeof(opt); - int rcvbuf = 1024 * 1024 * 8; long flags; err = setsockopt(fd, IPPROTO_IP, opt, &opt, opt_len); @@ -63,13 +63,7 @@ static int pim_mroute_set(int fd, int enable) return -1; } - err = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &rcvbuf, sizeof(rcvbuf)); - if (err) { - zlog_warn( - "%s: failure: setsockopt(fd=%d, SOL_SOCKET, %d): errno=%d: %s", - __PRETTY_FUNCTION__, fd, rcvbuf, errno, - safe_strerror(errno)); - } + setsockopt_so_recvbuf(fd, 1024 * 1024 * 8); flags = fcntl(fd, F_GETFL, 0); if (flags < 0) {