sd-netlink: always append new bridge FDB entries v246.16
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 4 Aug 2021 09:16:44 +0000 (18:16 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 6 Aug 2021 11:09:30 +0000 (13:09 +0200)
This partially reverts 192a9d95ea3e058afd824d38a9cea16ad0a84a57 (#19432).

Fixes #20305.

(cherry picked from commit 74c1ab841fbad9d4f237c819577fcd1d46a072b6)
(cherry picked from commit 38388b95d71b7701922f90854ce568f74e11ed12)
(cherry picked from commit 2e12f3ad804f2ac5a220d3260fa6cf52a4684731)
(cherry picked from commit 9c78b82c6abe97e4e690b430136d98989ad32ba1)

src/libsystemd/sd-netlink/rtnl-message.c

index 5e36b2ffdd165c9dfba615c1b90d47239d754f23..4a5faf9f8b3cb2dfa1376807708f2ef6b5d7e0ef 100644 (file)
@@ -443,8 +443,12 @@ int sd_rtnl_message_new_neigh(sd_netlink *rtnl, sd_netlink_message **ret, uint16
         if (r < 0)
                 return r;
 
-        if (nlmsg_type == RTM_NEWNEIGH)
-                (*ret)->hdr->nlmsg_flags |= NLM_F_CREATE | NLM_F_REPLACE;
+        if (nlmsg_type == RTM_NEWNEIGH) {
+                if (ndm_family == AF_BRIDGE)
+                        (*ret)->hdr->nlmsg_flags |= NLM_F_CREATE | NLM_F_APPEND;
+                else
+                        (*ret)->hdr->nlmsg_flags |= NLM_F_CREATE | NLM_F_REPLACE;
+        }
 
         ndm = NLMSG_DATA((*ret)->hdr);