]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/network/networkd-lldp-tx.c
hwdb: add scancodes for AYANEO devices (#33378)
[thirdparty/systemd.git] / src / network / networkd-lldp-tx.c
index a32f6b8e2702939ab18306e41f00573514a798f9..f48781ef8bb61c20cb6c148cae6e37470f8e32ad 100644 (file)
@@ -8,6 +8,7 @@
 #include "networkd-link.h"
 #include "networkd-lldp-tx.h"
 #include "networkd-manager.h"
+#include "networkd-sysctl.h"
 #include "parse-util.h"
 #include "string-table.h"
 #include "string-util.h"
@@ -59,6 +60,8 @@ int link_lldp_tx_configure(Link *link) {
         if (r < 0)
                 return r;
 
+        assert(link->network);
+
         r = sd_lldp_tx_set_multicast_mode(link->lldp_tx, link->network->lldp_multicast_mode);
         if (r < 0)
                 return r;
@@ -67,9 +70,8 @@ int link_lldp_tx_configure(Link *link) {
                                         SD_LLDP_SYSTEM_CAPABILITIES_STATION |
                                         SD_LLDP_SYSTEM_CAPABILITIES_BRIDGE |
                                         SD_LLDP_SYSTEM_CAPABILITIES_ROUTER,
-                                        (link->network && link->network->ip_forward != ADDRESS_FAMILY_NO) ?
-                                        SD_LLDP_SYSTEM_CAPABILITIES_ROUTER :
-                                        SD_LLDP_SYSTEM_CAPABILITIES_STATION);
+                                        (link_get_ip_forwarding(link, AF_INET) > 0 || link_get_ip_forwarding(link, AF_INET6) > 0) ?
+                                        SD_LLDP_SYSTEM_CAPABILITIES_ROUTER : SD_LLDP_SYSTEM_CAPABILITIES_STATION);
         if (r < 0)
                 return r;
 
@@ -104,14 +106,13 @@ int config_parse_lldp_multicast_mode(
                 void *data,
                 void *userdata) {
 
-        sd_lldp_multicast_mode_t m, *mode = data;
+        sd_lldp_multicast_mode_t m, *mode = ASSERT_PTR(data);
         int r;
 
         assert(filename);
         assert(section);
         assert(lvalue);
         assert(rvalue);
-        assert(mode);
 
         if (isempty(rvalue)) {
                 *mode = _SD_LLDP_MULTICAST_MODE_INVALID;