]> git.puffer.fish Git - matthieu/frr.git/commitdiff
2004-09-17 Paul Jakma <paul@dishone.st>
authorpaul <paul>
Fri, 17 Sep 2004 08:39:08 +0000 (08:39 +0000)
committerpaul <paul>
Fri, 17 Sep 2004 08:39:08 +0000 (08:39 +0000)
        * 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
lib/sockopt.c
lib/sockopt.h
ripd/ChangeLog
ripd/ripd.c
ripngd/ChangeLog
ripngd/ripngd.c

index 2ce2302f3d8d53038749fa56990761b711ede638..a4ed5dd91df6abf46cb031b38bd02831ab53306d 100644 (file)
@@ -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.
index d0b034f597d802727ee0743af318a8f69fb31d92..dbd5df5719d1670aa8695a47bcaace7b8aa40f3a 100644 (file)
 #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)
 {
index 8d775cdc5b37cce06376be02ae9a11bc14b3ff1e..3f4a7050cbd6680f2354c0345b53c96f0c4f92ba 100644 (file)
@@ -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);
index 8ab8a10310be0916ce0c338fb894b7c88a0b46e5..1921b7891c4f57b72313df9d4b0ad5d48009eecf 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-17 Paul Jakma <paul@dishone.st>
+
+       * 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].
+
 2004-08-19 Paul Jakma <paul@dishone.st>
 
        * rip_interface.c: (rip_interface_multicast_set) get rid
index af0e186d1ed9482cbdd30b70291a116492a5207b..5fbb349219342bc0093752aad7ae46c3a284e4c9 100644 (file)
 #include "ripd/ripd.h"
 #include "ripd/rip_debug.h"
 
+/* UDP receive buffer size */
+#define RIP_UDP_RCV_BUF 41600
+
+/* privileges global */
 extern struct zebra_privs_t ripd_privs;
 
 /* RIP Structure. */
@@ -1977,6 +1981,7 @@ rip_create_socket ()
   sockopt_broadcast (sock);
   sockopt_reuseaddr (sock);
   sockopt_reuseport (sock);
+  setsockopt_so_recvbuf (sock, RIP_UDP_RCV_BUF);
 #ifdef RIP_RECVMSG
   setsockopt_pktinfo (sock);
 #endif /* RIP_RECVMSG */
index 6b05f3de4d0fb8e73e960fa863782f361f15bf6e..64ee7d88309330628feed928a166257d68e23c29 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-17 Paul Jakma <paul@dishone.st>
+
+       * ripngd.c: move setsockopt_so_recvbuf to lib.
+
 2004-07-23  Hasso Tepper  <hasso@estpak.ee>
 
        * ripng_interface.c, ripng_nexthop.c: use ifp->mtu6 instead of
index b1edd6f2ffaaeab747dd0f167a9c61c22b317b9e..77e47547a4d5aeec34851e2129497e18c807d268 100644 (file)
@@ -107,17 +107,6 @@ ripng_info_free (struct ripng_info *rinfo)
   XFREE (MTYPE_RIPNG_ROUTE, rinfo);
 }
 \f
-static int
-setsockopt_so_recvbuf (int sock, int size)
-{
-  int ret;
-
-  ret = setsockopt (sock, SOL_SOCKET, SO_RCVBUF, (char *) &size, sizeof (int));
-  if (ret < 0)
-    zlog (NULL, LOG_ERR, "can't setsockopt SO_RCVBUF");
-  return ret;
-}
-
 /* Create ripng socket. */
 int 
 ripng_make_socket (void)