2005-10-17 Vincent Jardin <vincent.jardin@6wind.com>

        * ripd.c: rip_create_socket() for each packet, it does not bind to the
          proper interfaces because we forget to use the from address when
          it is specified.
diff --git a/ripd/ChangeLog b/ripd/ChangeLog
index 24369e0..3399868 100644
--- a/ripd/ChangeLog
+++ b/ripd/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-17 Vincent Jardin <vincent.jardin@6wind.com>
+
+	* ripd.c: rip_create_socket() for each packet, it does not bind to the
+	  proper interfaces because we forget to use the from address when
+	  it is specified.
+
 2005-10-06 Alain Ritoux <alain.ritoux@6wind.com>
 
 	* rip_interface.c: Now the command "no ip rip split-horizon
diff --git a/ripd/ripd.c b/ripd/ripd.c
index fd1f2da..3267e15 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -1358,6 +1358,8 @@
 #ifdef HAVE_SINLEN
       addr.sin_len = sizeof (struct sockaddr_in);
 #endif /* HAVE_SINLEN */
+    } else {
+      memcpy(&addr, from, sizeof(addr));
     }
   
   /* sending port must always be the RIP port */