udp_wide_broadcast.patch (1832B)
1 --- linux/include/linux/sysctl.h.orig 2002-08-17 19:52:27.000000000 -0500 2 +++ linux/include/linux/sysctl.h 2002-08-17 19:53:00.000000000 -0500 3 @@ -291,7 +291,8 @@ 4 NET_IPV4_NONLOCAL_BIND=88, 5 NET_IPV4_ICMP_RATELIMIT=89, 6 NET_IPV4_ICMP_RATEMASK=90, 7 - NET_TCP_TW_REUSE=91 8 + NET_TCP_TW_REUSE=91, 9 + NET_UDP_WIDE_BROADCAST=92 10 }; 11 12 enum { 13 --- linux-modified/net/ipv4/sysctl_net_ipv4.c.orig 2002-08-17 19:48:19.000000000 -0500 14 +++ linux-modified/net/ipv4/sysctl_net_ipv4.c 2002-08-17 19:52:03.000000000 -0500 15 @@ -45,6 +45,9 @@ 16 extern int inet_peer_gc_mintime; 17 extern int inet_peer_gc_maxtime; 18 19 +/* From udp.c */ 20 +extern int sysctl_udp_wide_broadcast; 21 + 22 #ifdef CONFIG_SYSCTL 23 static int tcp_retr1_max = 255; 24 static int ip_local_port_range_min[] = { 1, 1 }; 25 @@ -221,6 +224,8 @@ 26 &sysctl_icmp_ratemask, sizeof(int), 0644, NULL, &proc_dointvec}, 27 {NET_TCP_TW_REUSE, "tcp_tw_reuse", 28 &sysctl_tcp_tw_reuse, sizeof(int), 0644, NULL, &proc_dointvec}, 29 + {NET_UDP_WIDE_BROADCAST, "udp_wide_broadcast", 30 + &sysctl_udp_wide_broadcast, sizeof(int), 0644, NULL, &proc_dointvec}, 31 {0} 32 }; 33 34 --- linux-modified/net/ipv4/udp.c.orig 2002-08-17 19:40:59.000000000 -0500 35 +++ linux-modified/net/ipv4/udp.c 2002-08-17 23:37:47.000000000 -0500 36 @@ -94,6 +94,8 @@ 37 #include <net/inet_common.h> 38 #include <net/checksum.h> 39 40 +int sysctl_udp_wide_broadcast = 0; 41 + 42 /* 43 * Snmp MIB for the UDP layer 44 */ 45 @@ -272,9 +274,10 @@ 46 if ((s->num != hnum) || 47 (s->daddr && s->daddr!=rmt_addr) || 48 (s->dport != rmt_port && s->dport != 0) || 49 - (s->rcv_saddr && s->rcv_saddr != loc_addr) || 50 - (s->bound_dev_if && s->bound_dev_if != dif)) 51 + !(sysctl_udp_wide_broadcast || !(s->rcv_saddr && s->rcv_saddr != loc_addr)) || 52 + (s->bound_dev_if && s->bound_dev_if != dif)) { 53 continue; 54 + } 55 break; 56 } 57 return s;