From 0b3acf4f94241905ff36df5c1d9f9f389e45d191 Mon Sep 17 00:00:00 2001 From: paul Date: Fri, 17 Sep 2004 08:39:08 +0000 Subject: 2004-09-17 Paul Jakma * ripngd/ripngd.c: move setsockopt_so_recvbuf to lib. * lib/sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd. * ripd/ripd.c: set receive buffer to a decent size, some systems have low defaults. Problem noted and fix suggested by Stephan Schweizer in [zebra 20967]. --- lib/ChangeLog | 4 ++++ lib/sockopt.c | 12 ++++++++++++ lib/sockopt.h | 2 ++ 3 files changed, 18 insertions(+) (limited to 'lib') diff --git a/lib/ChangeLog b/lib/ChangeLog index 2ce2302f..a4ed5dd9 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,7 @@ +2004-09-17 Paul Jakma + + * sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd. + 2004-09-13 Paul Jakma * command.c: Update the copyright string in the default motd. diff --git a/lib/sockopt.c b/lib/sockopt.c index d0b034f5..dbd5df57 100644 --- a/lib/sockopt.c +++ b/lib/sockopt.c @@ -23,6 +23,18 @@ #include "log.h" #include "sockopt.h" +int +setsockopt_so_recvbuf (int sock, int size) +{ + int ret; + + if ( (ret = setsockopt (sock, SOL_SOCKET, SO_RCVBUF, (char *) + &size, sizeof (int)) < 0); + zlog_err ("can't setsockopt SO_RCVBUF"); + + return ret; +} + static void * getsockopt_cmsg_data (struct msghdr *msgh, int level, int type) { diff --git a/lib/sockopt.h b/lib/sockopt.h index 8d775cdc..3f4a7050 100644 --- a/lib/sockopt.h +++ b/lib/sockopt.h @@ -22,6 +22,8 @@ #ifndef _ZEBRA_SOCKOPT_H #define _ZEBRA_SOCKOPT_H +int setsockopt_so_recvbuf (int sock, int size); + #ifdef HAVE_IPV6 int setsockopt_ipv6_pktinfo (int, int); int setsockopt_ipv6_checksum (int, int); -- cgit v1.2.1