]> git.puffer.fish Git - matthieu/frr.git/commitdiff
2004-08-19 Paul Jakma <paul@dishone.st>
authorpaul <paul>
Thu, 19 Aug 2004 04:03:08 +0000 (04:03 +0000)
committerpaul <paul>
Thu, 19 Aug 2004 04:03:08 +0000 (04:03 +0000)
        * rip_interface.c: (rip_interface_multicast_set) get rid
          of extraneous if_pointopoint arg. ifp is accessible via connected.
          pass connected->ifp->ifindex to setsockopt_multicast_ipv4.
        * ripd.c: (rip_send_packet) update call to
          rip_interface_multicast_set
        * ripd.h: update rip_interface_multicast_set prototype

ripd/ChangeLog
ripd/rip_interface.c
ripd/ripd.c
ripd/ripd.h

index 2080333806088405a03fa45635c7f97746f1b378..8ab8a10310be0916ce0c338fb894b7c88a0b46e5 100644 (file)
@@ -1,3 +1,12 @@
+2004-08-19 Paul Jakma <paul@dishone.st>
+
+       * rip_interface.c: (rip_interface_multicast_set) get rid
+         of extraneous if_pointopoint arg. ifp is accessible via connected.
+         pass connected->ifp->ifindex to setsockopt_multicast_ipv4.
+       * ripd.c: (rip_send_packet) update call to
+         rip_interface_multicast_set
+       * ripd.h: update rip_interface_multicast_set prototype
+       
 2004-06-11 Sowmini Varadhan <sowmini.varadhan@sun.com>
 
        * ripd.c: (rip_distribute_update_all) distribute list hook
index 4daa5b3816297ef280bcf6c140a228586311e260..cb6044ed666e28ad5cad08f3bb5d6105eda82bd2 100644 (file)
@@ -138,8 +138,7 @@ rip_interface_new ()
 }
 
 void
-rip_interface_multicast_set (int sock, struct connected *connected, 
-                             int if_pointopoint)
+rip_interface_multicast_set (int sock, struct connected *connected)
 {
   int ret;
   struct servent *sp;
@@ -149,7 +148,7 @@ rip_interface_multicast_set (int sock, struct connected *connected,
 
   if (connected != NULL) 
     {
-  if (if_pointopoint)
+  if (if_is_pointopoint(connected->ifp))
     p = (struct prefix_ipv4 *) connected->destination;
   else
       p = (struct prefix_ipv4 *) connected->address;
@@ -160,9 +159,11 @@ rip_interface_multicast_set (int sock, struct connected *connected,
       addr.s_addr = INADDR_ANY;
     }
 
-  if (setsockopt_multicast_ipv4 (sock, IP_MULTICAST_IF, addr, 0, 0) < 0) 
+  if (setsockopt_multicast_ipv4 (sock, IP_MULTICAST_IF, addr, 0, 
+                                 connected->ifp->ifindex) < 0) 
            {
-             zlog_warn ("Can't setsockopt IP_MULTICAST_IF to fd %d", sock);
+             zlog_warn ("Can't setsockopt IP_MULTICAST_IF to fd %d, ifindex %d", 
+                        sock, connected->ifp->ifindex);
              return;
            }
 
index 8b76073c0251bb8fdc9f83efcba0023cb895cde1..af0e186d1ed9482cbdd30b70291a116492a5207b 100644 (file)
@@ -1355,7 +1355,7 @@ rip_send_packet (u_char * buf, int size, struct sockaddr_in *to,
 #ifdef RIP_RECVMSG
       setsockopt_pktinfo (send_sock);
 #endif /* RIP_RECVMSG */
-      rip_interface_multicast_set(send_sock, connected, if_is_pointopoint(ifp));
+      rip_interface_multicast_set (send_sock, connected);
     }
 
   ret = sendto (send_sock, buf, size, 0, (struct sockaddr *)&sin,
index 5c50c576fe5976a10650c81e042e6cf82d9eb270..0334888bbcc12851fe07768c6a5da12cd4a82f40 100644 (file)
@@ -395,7 +395,7 @@ void rip_redistribute_delete (int, int, struct prefix_ipv4 *, unsigned int);
 void rip_redistribute_withdraw (int);
 void rip_zebra_ipv4_add (struct prefix_ipv4 *, struct in_addr *, u_int32_t, u_char);
 void rip_zebra_ipv4_delete (struct prefix_ipv4 *, struct in_addr *, u_int32_t);
-void rip_interface_multicast_set (int, struct connected *, int);
+void rip_interface_multicast_set (int, struct connected *);
 void rip_distribute_update_interface (struct interface *);
 void rip_if_rmap_update_interface (struct interface *);