aboutsummaryrefslogtreecommitdiffstats
path: root/code/unix/LinuxSupport/udp_wide_broadcast.patch
diff options
context:
space:
mode:
Diffstat (limited to 'code/unix/LinuxSupport/udp_wide_broadcast.patch')
-rwxr-xr-xcode/unix/LinuxSupport/udp_wide_broadcast.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/code/unix/LinuxSupport/udp_wide_broadcast.patch b/code/unix/LinuxSupport/udp_wide_broadcast.patch
new file mode 100755
index 0000000..b6f86eb
--- /dev/null
+++ b/code/unix/LinuxSupport/udp_wide_broadcast.patch
@@ -0,0 +1,57 @@
+--- linux/include/linux/sysctl.h.orig 2002-08-17 19:52:27.000000000 -0500
++++ linux/include/linux/sysctl.h 2002-08-17 19:53:00.000000000 -0500
+@@ -291,7 +291,8 @@
+ NET_IPV4_NONLOCAL_BIND=88,
+ NET_IPV4_ICMP_RATELIMIT=89,
+ NET_IPV4_ICMP_RATEMASK=90,
+- NET_TCP_TW_REUSE=91
++ NET_TCP_TW_REUSE=91,
++ NET_UDP_WIDE_BROADCAST=92
+ };
+
+ enum {
+--- linux-modified/net/ipv4/sysctl_net_ipv4.c.orig 2002-08-17 19:48:19.000000000 -0500
++++ linux-modified/net/ipv4/sysctl_net_ipv4.c 2002-08-17 19:52:03.000000000 -0500
+@@ -45,6 +45,9 @@
+ extern int inet_peer_gc_mintime;
+ extern int inet_peer_gc_maxtime;
+
++/* From udp.c */
++extern int sysctl_udp_wide_broadcast;
++
+ #ifdef CONFIG_SYSCTL
+ static int tcp_retr1_max = 255;
+ static int ip_local_port_range_min[] = { 1, 1 };
+@@ -221,6 +224,8 @@
+ &sysctl_icmp_ratemask, sizeof(int), 0644, NULL, &proc_dointvec},
+ {NET_TCP_TW_REUSE, "tcp_tw_reuse",
+ &sysctl_tcp_tw_reuse, sizeof(int), 0644, NULL, &proc_dointvec},
++ {NET_UDP_WIDE_BROADCAST, "udp_wide_broadcast",
++ &sysctl_udp_wide_broadcast, sizeof(int), 0644, NULL, &proc_dointvec},
+ {0}
+ };
+
+--- linux-modified/net/ipv4/udp.c.orig 2002-08-17 19:40:59.000000000 -0500
++++ linux-modified/net/ipv4/udp.c 2002-08-17 23:37:47.000000000 -0500
+@@ -94,6 +94,8 @@
+ #include <net/inet_common.h>
+ #include <net/checksum.h>
+
++int sysctl_udp_wide_broadcast = 0;
++
+ /*
+ * Snmp MIB for the UDP layer
+ */
+@@ -272,9 +274,10 @@
+ if ((s->num != hnum) ||
+ (s->daddr && s->daddr!=rmt_addr) ||
+ (s->dport != rmt_port && s->dport != 0) ||
+- (s->rcv_saddr && s->rcv_saddr != loc_addr) ||
+- (s->bound_dev_if && s->bound_dev_if != dif))
++ !(sysctl_udp_wide_broadcast || !(s->rcv_saddr && s->rcv_saddr != loc_addr)) ||
++ (s->bound_dev_if && s->bound_dev_if != dif)) {
+ continue;
++ }
+ break;
+ }
+ return s;