diff options
Diffstat (limited to 'package/busybox/patches/802-brctl_linux24.patch')
-rw-r--r-- | package/busybox/patches/802-brctl_linux24.patch | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/package/busybox/patches/802-brctl_linux24.patch b/package/busybox/patches/802-brctl_linux24.patch deleted file mode 100644 index 8cc19779a2..0000000000 --- a/package/busybox/patches/802-brctl_linux24.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- a/networking/brctl.c -+++ b/networking/brctl.c -@@ -56,7 +56,7 @@ - - /* Maximum number of ports supported per bridge interface. */ - #ifndef MAX_PORTS --# define MAX_PORTS 32 -+# define MAX_PORTS 1024 - #endif - - /* Use internal number parsing and not the "exact" conversion. */ -@@ -193,6 +193,7 @@ int brctl_main(int argc UNUSED_PARAM, ch - printf(bi.stp_enabled ? "\tyes" : "\tno"); - - /* print interface list */ -+ memset(ifidx, 0, sizeof ifidx); - arm_ioctl(args, BRCTL_GET_PORT_LIST, - (unsigned long) ifidx, MAX_PORTS); - xioctl(fd, SIOCDEVPRIVATE, &ifr); -@@ -221,9 +222,19 @@ int brctl_main(int argc UNUSED_PARAM, ch - br = *argv++; - - if (key == ARG_addbr || key == ARG_delbr) { /* addbr or delbr */ -- ioctl_or_perror_and_die(fd, -- key == ARG_addbr ? SIOCBRADDBR : SIOCBRDELBR, -- br, "bridge %s", br); -+ int ret; -+ ret = ioctl(fd, -+ key == ARG_addbr ? SIOCBRADDBR : SIOCBRDELBR, -+ br); -+ if (ret < 0) { -+ arm_ioctl(args, -+ key == ARG_addbr ? BRCTL_ADD_BRIDGE : BRCTL_DEL_BRIDGE, -+ (unsigned long) br, 0); -+ ret = ioctl(fd, SIOCSIFBR, args); -+ } -+ if (ret < 0) { -+ bb_perror_msg_and_die("bridge %s", br); -+ } - goto done; - } - -@@ -232,14 +243,27 @@ int brctl_main(int argc UNUSED_PARAM, ch - - strncpy_IFNAMSIZ(ifr.ifr_name, br); - if (key == ARG_addif || key == ARG_delif) { /* addif or delif */ -+ int ret; -+ int if_index; - brif = *argv; -- ifr.ifr_ifindex = if_nametoindex(brif); -- if (!ifr.ifr_ifindex) { -+ if_index = if_nametoindex(brif); -+ if (!if_index) { - bb_perror_msg_and_die("iface %s", brif); - } -- ioctl_or_perror_and_die(fd, -+ ifr.ifr_ifindex = if_index; -+ ret = ioctl(fd, - key == ARG_addif ? SIOCBRADDIF : SIOCBRDELIF, -- &ifr, "bridge %s", br); -+ &ifr); -+ if (ret < 0) { -+ arm_ioctl(args, -+ key == ARG_addif ? BRCTL_ADD_IF : BRCTL_DEL_IF, -+ if_index, 0); -+ ifr.ifr_data = (char *) &args; -+ ret = ioctl(fd, SIOCDEVPRIVATE, &ifr); -+ } -+ if (ret < 0) { -+ bb_perror_msg_and_die("bridge %s", br); -+ } - goto done_next_argv; - } - #if ENABLE_FEATURE_BRCTL_FANCY |