summaryrefslogtreecommitdiff
path: root/package/busybox/patches/802-brctl_linux24.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/patches/802-brctl_linux24.patch')
-rw-r--r--package/busybox/patches/802-brctl_linux24.patch74
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