]> git.puffer.fish Git - mirror/frr.git/commitdiff
2005-06-03 Paul Jakma <paul.jakma@sun.com>
authorpaul <paul>
Fri, 3 Jun 2005 17:46:49 +0000 (17:46 +0000)
committerpaul <paul>
Fri, 3 Jun 2005 17:46:49 +0000 (17:46 +0000)
* ripd.c: (rip_create_socket) move it up so rip_send_packet
  can use it too.

ripd/ChangeLog
ripd/ripd.c

index 5d2c164451f66495c65a867afafdfbb2f991910d..ebd9325513d804a273d1a50ede7a6c7a1295465f 100644 (file)
@@ -1,3 +1,8 @@
+2005-06-03 Paul Jakma <paul.jakma@sun.com>
+
+       * ripd.c: (rip_create_socket) move it up so rip_send_packet
+         can use it too.
+
 2005-06-01 Paul Jakma <paul.jakma@sun.com>
 
        * rip_interface.c: Fix authentication, no-auth impossible to specify
index 4723ebe03a575489d982597386ff96fb161513ce..c40e2acebe2fa98d89468c86f2f3df71f0848be7 100644 (file)
@@ -1319,6 +1319,62 @@ rip_response_process (struct rip_packet *packet, int size,
     }
 }
 
+/* Make socket for RIP protocol. */
+int 
+rip_create_socket ()
+{
+  int ret;
+  int sock;
+  struct sockaddr_in addr;
+  struct servent *sp;
+
+  memset (&addr, 0, sizeof (struct sockaddr_in));
+
+  /* Set RIP port. */
+  sp = getservbyname ("router", "udp");
+  if (sp) 
+    addr.sin_port = sp->s_port;
+  else 
+    addr.sin_port = htons (RIP_PORT_DEFAULT);
+
+  /* Address shoud be any address. */
+  addr.sin_family = AF_INET;
+  addr.sin_addr.s_addr = INADDR_ANY;
+
+  /* Make datagram socket. */
+  sock = socket (AF_INET, SOCK_DGRAM, 0);
+  if (sock < 0) 
+    {
+      zlog_err("Cannot create UDP socket: %s", safe_strerror(errno));
+      exit (1);
+    }
+
+  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 */
+
+  if (ripd_privs.change (ZPRIVS_RAISE))
+      zlog_err ("rip_create_socket: could not raise privs");
+  ret = bind (sock, (struct sockaddr *) & addr, sizeof (addr));
+  if (ret < 0)
+    {
+      int save_errno = errno;
+      if (ripd_privs.change (ZPRIVS_LOWER))
+        zlog_err ("rip_create_socket: could not lower privs");
+      zlog_err("cannot bind to port %d: %s",
+              (int)ntohs(addr.sin_port), safe_strerror(save_errno));
+      return ret;
+    }
+  if (ripd_privs.change (ZPRIVS_LOWER))
+      zlog_err ("rip_create_socket: could not lower privs");
+      
+  return sock;
+}
+
 /* RIP packet send to destination address, on interface denoted by
  * by connected argument. NULL to argument denotes destination should be
  * should be RIP multicast group
@@ -2004,63 +2060,6 @@ rip_read (struct thread *t)
   return len;
 }
 
-/* Make socket for RIP protocol. */
-int 
-rip_create_socket ()
-{
-  int ret;
-  int sock;
-  struct sockaddr_in addr;
-  struct servent *sp;
-
-  memset (&addr, 0, sizeof (struct sockaddr_in));
-
-  /* Set RIP port. */
-  sp = getservbyname ("router", "udp");
-  if (sp) 
-    addr.sin_port = sp->s_port;
-  else 
-    addr.sin_port = htons (RIP_PORT_DEFAULT);
-
-  /* Address shoud be any address. */
-  addr.sin_family = AF_INET;
-  addr.sin_addr.s_addr = INADDR_ANY;
-
-  /* Make datagram socket. */
-  sock = socket (AF_INET, SOCK_DGRAM, 0);
-  if (sock < 0) 
-    {
-      zlog_err("Cannot create UDP socket: %s", safe_strerror(errno));
-      exit (1);
-    }
-
-  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 */
-
-  if (ripd_privs.change (ZPRIVS_RAISE))
-      zlog_err ("rip_create_socket: could not raise privs");
-  ret = bind (sock, (struct sockaddr *) & addr, sizeof (addr));
-  if (ret < 0)
-    {
-      int save_errno = errno;
-      if (ripd_privs.change (ZPRIVS_LOWER))
-        zlog_err ("rip_create_socket: could not lower privs");
-      zlog_err("cannot bind to port %d: %s",
-              (int)ntohs(addr.sin_port), safe_strerror(save_errno));
-      return ret;
-    }
-  if (ripd_privs.change (ZPRIVS_LOWER))
-      zlog_err ("rip_create_socket: could not lower privs");
-      
-  return sock;
-}
-
-
 /* Write routing table entry to the stream and return next index of
    the routing table entry in the stream. */
 int