]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
CONFIG_SKIP_MC_BIND added.
authorOndrej Filip <feela@network.cz>
Thu, 3 Jun 2004 08:18:14 +0000 (08:18 +0000)
committerOndrej Filip <feela@network.cz>
Thu, 3 Jun 2004 08:18:14 +0000 (08:18 +0000)
BSD hates it, Linux needs it.

sysdep/cf/README
sysdep/cf/bsd-v6.h
sysdep/cf/bsd.h
sysdep/cf/linux-20.h
sysdep/cf/linux-21.h
sysdep/cf/linux-22.h
sysdep/unix/io.c

index b278fc5affe8a29cace3317e96a16a2f077369ad..b3b84a838c9cde04084c8a8f77a1cf3336f19542 100644 (file)
@@ -9,6 +9,7 @@ CONFIG_ALL_TABLES_AT_ONCE       Kernel scanner wants to process all tables at once
 CONFIG_UNIX_IFACE      Use Unix interface scanner
 CONFIG_UNIX_SET                Use Unix route setting
 CONFIG_UNIX_DONTROUTE   Use setsockopts DONTROUTE (undef for *BSD)
+CONFIG_SKIP_MC_BIND    Don't call bird on multicast socket (def for *BSD)
 CONFIG_LINUX_SCAN      Use Linux /proc/net/route scanner
 
 CONFIG_ALL_MULTICAST   krt-iface: All devices support multicasting (i.e., ignore IFF_MULTICAST)
index 5f66e5623c7479f311b63c08b40ce5b8afc0808c..f3aefeb4b58f69996f7b8cd03a01d343168085d0 100644 (file)
@@ -15,6 +15,7 @@
 #undef CONFIG_UNIX_IFACE
 #undef CONFIG_UNIX_SET
 
+#define CONFIG_SKIP_MC_BIND
 #define CONFIG_ALL_MULTICAST
 #define CONFIG_UNNUM_MULTICAST
 
index f147506498f786f8180a8ff8360b0a45fcbe841c..72b24720bfb209c9f0994e61c450730fbe98086c 100644 (file)
@@ -14,6 +14,7 @@
 #undef CONFIG_UNIX_SET
 #undef CONFIG_UNIX_DONTROUTE
 
+#define CONFIG_SKIP_MC_BIND
 #define CONFIG_ALL_MULTICAST
 #define CONFIG_UNNUM_MULTICAST
 
index 247f0f1d65b1f3366cd2b6e4446464370648c49f..e409706aba06cff71a4e3bc4854ba60095c68c12 100644 (file)
@@ -13,6 +13,7 @@
 #define CONFIG_UNIX_IFACE
 #define CONFIG_UNIX_SET
 #define CONFIG_UNIX_DONTROUTE
+#undef CONFIG_SKIP_MC_BIND
 #define CONFIG_LINUX_SCAN
 
 #define CONFIG_LINUX_MC_MREQ_BIND
index 57ae796263f350752863d2f909f51b6ad166fa38..0fce705329ebd0c96ade71e223648ad119e63759 100644 (file)
@@ -13,6 +13,7 @@
 #define CONFIG_UNIX_IFACE
 #define CONFIG_UNIX_SET
 #define CONFIG_UNIX_DONTROUTE
+#undef CONFIG_SKIP_MC_BIND
 #define CONFIG_LINUX_SCAN
 
 #define CONFIG_LINUX_MC_MREQN
index f3629433e58f209cbed8b764014a3508771af1ae..92ffb4cafa819f424389a7334afabad3346b671f 100644 (file)
@@ -11,6 +11,8 @@
 #define CONFIG_MULTIPLE_TABLES
 #define CONFIG_ALL_TABLES_AT_ONCE
 
+#undef CONFIG_SKIP_MC_BIND
+
 #define CONFIG_LINUX_MC_MREQN
 #define CONFIG_UNIX_DONTROUTE
 
index 070150f67f161e6432aad3e936a32b3aacdb3c51..bf97e53e354f6b581a7de60f30f5f1ebf74eda09 100644 (file)
@@ -754,7 +754,11 @@ sk_open(sock *s)
            ERR("SO_REUSEADDR");
        }
       fill_in_sockaddr(&sa, s->saddr, port);
+#ifdef CONFIG_SKIP_MC_BIND
+      if (type == SK_IP && bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
+#else
       if (bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
+#endif
        ERR("bind");
     }
   fill_in_sockaddr(&sa, s->daddr, s->dport);