diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index cd4f8f423d..771146830a 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=netifd -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git diff --git a/package/network/config/netifd/patches/001-don-t-touch-interfaces-that-with-none-proto.patch b/package/network/config/netifd/patches/001-don-t-touch-interfaces-that-with-none-proto.patch new file mode 100644 index 0000000000..d10e047eb4 --- /dev/null +++ b/package/network/config/netifd/patches/001-don-t-touch-interfaces-that-with-none-proto.patch @@ -0,0 +1,53 @@ +From 5233a5c4e27a4d2dd311da5f12ce910d81583127 Mon Sep 17 00:00:00 2001 +From: jjm2473 <1129525450@qq.com> +Date: Tue, 19 Apr 2022 17:05:41 +0800 +Subject: [PATCH] don't touch interfaces that with none proto + +some interfaces like docker0 just for firewall handling, generated by dockerd, should not be touched +--- + interface.c | 2 +- + proto.c | 2 +- + proto.h | 1 + + 3 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/interface.c b/interface.c +index b3bb601..55f8e84 100644 +--- a/interface.c ++++ b/interface.c +@@ -647,7 +647,7 @@ interface_claim_device(struct interface *iface) + interface_add_user(&iface->parent_iface, parent); + } else if (iface->device && + !(iface->proto_handler->flags & PROTO_FLAG_NODEV)) { +- dev = device_get(iface->device, true); ++ dev = device_get(iface->device, (iface->proto_handler->flags & PROTO_FLAG_EXTDEV)?2:1); + interface_set_device_config(iface, dev); + } else { + dev = iface->ext_dev.dev; +diff --git a/proto.c b/proto.c +index 01473f2..2838a91 100644 +--- a/proto.c ++++ b/proto.c +@@ -565,7 +565,7 @@ default_proto_attach(const struct proto_handler *h, + + static const struct proto_handler no_proto = { + .name = "none", +- .flags = PROTO_FLAG_IMMEDIATE, ++ .flags = PROTO_FLAG_IMMEDIATE|PROTO_FLAG_EXTDEV, + .attach = default_proto_attach, + }; + +diff --git a/proto.h b/proto.h +index 26a54bd..31b619b 100644 +--- a/proto.h ++++ b/proto.h +@@ -40,6 +40,7 @@ enum { + PROTO_FLAG_LASTERROR = (1 << 5), + PROTO_FLAG_TEARDOWN_ON_L3_LINK_DOWN = (1 << 6), + PROTO_FLAG_NO_TASK = (1 << 7), ++ PROTO_FLAG_EXTDEV = (1 << 8), + }; + + struct interface_proto_state { +-- +2.24.3 (Apple Git-128) +