diff options
author | paul <paul> | 2004-09-17 08:39:08 +0000 |
---|---|---|
committer | paul <paul> | 2004-09-17 08:39:08 +0000 |
commit | 0b3acf4f94241905ff36df5c1d9f9f389e45d191 (patch) | |
tree | 48b312ab2de446208d966d234fc37539bed98861 /lib | |
parent | bf731011ef7038f5766432fec862301c123d4736 (diff) |
2004-09-17 Paul Jakma <paul@dishone.st>
* 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].
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ChangeLog | 4 | ||||
-rw-r--r-- | lib/sockopt.c | 12 | ||||
-rw-r--r-- | lib/sockopt.h | 2 |
3 files changed, 18 insertions, 0 deletions
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 <paul@dishone.st> + + * sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd. + 2004-09-13 Paul Jakma <paul@dishone.st> * 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); |