summaryrefslogtreecommitdiff
path: root/package/busybox/patches/260-broadcast_plus.patch
blob: 60b2afc242b5a648b0a3a892a33ccd159467a9fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Index: busybox-1.4.2/networking/ifconfig.c
===================================================================
--- busybox-1.4.2.orig/networking/ifconfig.c	2007-06-29 02:03:17.046772952 +0200
+++ busybox-1.4.2/networking/ifconfig.c	2007-06-29 02:03:49.938772608 +0200
@@ -376,18 +376,18 @@
 #endif
 						sai.sin_family = AF_INET;
 						sai.sin_port = 0;
-						if (!strcmp(host, bb_str_default)) {
-							/* Default is special, meaning 0.0.0.0. */
-							sai.sin_addr.s_addr = INADDR_ANY;
-						}
 #if ENABLE_FEATURE_IFCONFIG_BROADCAST_PLUS
-						else if ((host[0] == '+' && !host[1]) && (mask & A_BROADCAST)
+						if ((host[0] == '+' && !host[1]) && (mask & A_BROADCAST)
 						 && (did_flags & (A_NETMASK|A_HOSTNAME)) == (A_NETMASK|A_HOSTNAME)
 						) {
 							/* + is special, meaning broadcast is derived. */
 							sai.sin_addr.s_addr = (~sai_netmask) | (sai_hostname & sai_netmask);
-						}
+						} else
 #endif
+						if (!strcmp(host, bb_str_default)) {
+							/* Default is special, meaning 0.0.0.0. */
+							sai.sin_addr.s_addr = INADDR_ANY;
+						}
 #if ENABLE_FEATURE_IPV6
 						else if (inet_pton(AF_INET6, host, &sai6.sin6_addr) > 0) {
 							int sockfd6;