]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network/netdev: downgrade log level in netdev_set_ifindex()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 9 Sep 2024 13:39:50 +0000 (22:39 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 10 Sep 2024 10:29:05 +0000 (19:29 +0900)
This also makes netdev_enter_failed() called on caller side.

No functional change, just refactoring.

src/network/netdev/netdev.c
src/network/networkd-link.c

index 6a59a8f2dfb1760954d46bdd61b6584d6e4a2906..f24ec02f7f6ffd72ae64bdc088c2b60aeade7f6b 100644 (file)
@@ -358,10 +358,10 @@ int netdev_set_ifindex(NetDev *netdev, sd_netlink_message *message) {
 
         r = sd_netlink_message_get_type(message, &type);
         if (r < 0)
-                return log_netdev_error_errno(netdev, r, "Could not get rtnl message type: %m");
+                return log_netdev_warning_errno(netdev, r, "Could not get rtnl message type: %m");
 
         if (type != RTM_NEWLINK)
-                return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL), "Cannot set ifindex from unexpected rtnl message type.");
+                return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL), "Cannot set ifindex from unexpected rtnl message type.");
 
         r = sd_rtnl_message_get_family(message, &family);
         if (r < 0)
@@ -371,69 +371,54 @@ int netdev_set_ifindex(NetDev *netdev, sd_netlink_message *message) {
                 return 0; /* IFLA_LINKINFO is only contained in the message with AF_UNSPEC. */
 
         r = sd_rtnl_message_link_get_ifindex(message, &ifindex);
-        if (r < 0) {
-                log_netdev_error_errno(netdev, r, "Could not get ifindex: %m");
-                netdev_enter_failed(netdev);
-                return r;
-        } else if (ifindex <= 0) {
-                log_netdev_error(netdev, "Got invalid ifindex: %d", ifindex);
-                netdev_enter_failed(netdev);
-                return -EINVAL;
-        }
+        if (r < 0)
+                return log_netdev_warning_errno(netdev, r, "Could not get ifindex: %m");
+        if (ifindex <= 0)
+                return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL), "Got invalid ifindex: %d", ifindex);
 
         if (netdev->ifindex > 0) {
-                if (netdev->ifindex != ifindex) {
-                        log_netdev_error(netdev, "Could not set ifindex to %d, already set to %d",
-                                         ifindex, netdev->ifindex);
-                        netdev_enter_failed(netdev);
-                        return -EEXIST;
-                } else
-                        /* ifindex already set to the same for this netdev */
-                        return 0;
+                if (netdev->ifindex != ifindex)
+                        return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EEXIST),
+                                                        "Could not set ifindex to %d, already set to %d",
+                                                        ifindex, netdev->ifindex);
+
+                /* ifindex already set to the same for this netdev */
+                return 0;
         }
 
         r = sd_netlink_message_read_string(message, IFLA_IFNAME, &received_name);
         if (r < 0)
-                return log_netdev_error_errno(netdev, r, "Could not get IFNAME: %m");
+                return log_netdev_warning_errno(netdev, r, "Could not get IFNAME: %m");
 
-        if (!streq(netdev->ifname, received_name)) {
-                log_netdev_error(netdev, "Received newlink with wrong IFNAME %s", received_name);
-                netdev_enter_failed(netdev);
-                return -EINVAL;
-        }
+        if (!streq(netdev->ifname, received_name))
+                return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL), "Received newlink with wrong IFNAME %s", received_name);
 
         if (!NETDEV_VTABLE(netdev)->skip_netdev_kind_check) {
 
                 r = sd_netlink_message_enter_container(message, IFLA_LINKINFO);
                 if (r < 0)
-                        return log_netdev_error_errno(netdev, r, "Could not get LINKINFO: %m");
+                        return log_netdev_warning_errno(netdev, r, "Could not get LINKINFO: %m");
 
                 r = sd_netlink_message_read_string(message, IFLA_INFO_KIND, &received_kind);
                 if (r < 0)
-                        return log_netdev_error_errno(netdev, r, "Could not get KIND: %m");
+                        return log_netdev_warning_errno(netdev, r, "Could not get KIND: %m");
 
                 r = sd_netlink_message_exit_container(message);
                 if (r < 0)
-                        return log_netdev_error_errno(netdev, r, "Could not exit container: %m");
+                        return log_netdev_warning_errno(netdev, r, "Could not exit container: %m");
 
                 if (netdev->kind == NETDEV_KIND_TAP)
                         /* the kernel does not distinguish between tun and tap */
                         kind = "tun";
-                else {
+                else
                         kind = netdev_kind_to_string(netdev->kind);
-                        if (!kind) {
-                                log_netdev_error(netdev, "Could not get kind");
-                                netdev_enter_failed(netdev);
-                                return -EINVAL;
-                        }
-                }
+                if (!kind)
+                        return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL), "Could not get netdev kind.");
 
-                if (!streq(kind, received_kind)) {
-                        log_netdev_error(netdev, "Received newlink with wrong KIND %s, expected %s",
-                                         received_kind, kind);
-                        netdev_enter_failed(netdev);
-                        return -EINVAL;
-                }
+                if (!streq(kind, received_kind))
+                        return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
+                                                        "Received newlink with wrong KIND %s, expected %s",
+                                                        received_kind, kind);
         }
 
         netdev->ifindex = ifindex;
index f3131a6195f70176b6668779d0bc04a87828bc72..0eeab6e8b0088a666df204853dc13103a7e398f0 100644 (file)
@@ -2804,6 +2804,7 @@ int manager_rtnl_process_link(sd_netlink *rtnl, sd_netlink_message *message, Man
                         r = netdev_set_ifindex(netdev, message);
                         if (r < 0) {
                                 log_netdev_warning_errno(netdev, r, "Could not process new link message for netdev, ignoring: %m");
+                                netdev_enter_failed(netdev);
                                 return 0;
                         }
                 }