]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fixes bug on TCP passive socket binding on BSD.
authorOndrej Zajicek <santiago@crfreenet.org>
Fri, 26 Jun 2009 11:33:41 +0000 (13:33 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Fri, 26 Jun 2009 11:33:41 +0000 (13:33 +0200)
BGP on BSD was bound to random port. I am surprised that
nobody noticed it already.

sysdep/unix/io.c

index c86c1200d186e9724e584845341b7b3160d81955..a5e0522255255c5c6d9a143aba5c67b4e75d4370 100644 (file)
@@ -934,7 +934,8 @@ sk_open(sock *s)
        }
       fill_in_sockaddr(&sa, s->saddr, port);
 #ifdef CONFIG_SKIP_MC_BIND
-      if (type == SK_IP && bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
+      if ((type != SK_UDP_MC) && (type != SK_IP_MC) &&
+         bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
 #else
       if (bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
 #endif