]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-netlink: do not set route type and table by default for RTM_GETROUTE or friends
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 24 May 2021 21:49:51 +0000 (06:49 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 24 May 2021 23:26:00 +0000 (08:26 +0900)
src/libsystemd/sd-netlink/rtnl-message.c
src/network/networkd-route.c
src/shared/local-addresses.c

index 5dba9c573426b5d915e305ae18393241efbea270..e771b95e0848bf5064d3592a4a94306d21766b7a 100644 (file)
@@ -265,9 +265,6 @@ int sd_rtnl_message_new_route(sd_netlink *rtnl, sd_netlink_message **ret,
         rtm = NLMSG_DATA((*ret)->hdr);
 
         rtm->rtm_family = rtm_family;
-        rtm->rtm_scope = RT_SCOPE_UNIVERSE;
-        rtm->rtm_type = RTN_UNICAST;
-        rtm->rtm_table = RT_TABLE_MAIN;
         rtm->rtm_protocol = rtm_protocol;
 
         return 0;
index 257255d4e6222e4c7f019f4094f39e1a71a2a3fe..7d93825813f486d842beb328c82e58fb5254dac5 100644 (file)
@@ -893,21 +893,19 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *req
         if (r < 0)
                 return log_link_error_errno(link, r, "Could not set flags: %m");
 
-        if (route->table != RT_TABLE_MAIN) {
-                if (route->table < 256) {
-                        r = sd_rtnl_message_route_set_table(req, route->table);
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not set route table: %m");
-                } else {
-                        r = sd_rtnl_message_route_set_table(req, RT_TABLE_UNSPEC);
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not set route table: %m");
+        if (route->table < 256) {
+                r = sd_rtnl_message_route_set_table(req, route->table);
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not set route table: %m");
+        } else {
+                r = sd_rtnl_message_route_set_table(req, RT_TABLE_UNSPEC);
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not set route table: %m");
 
-                        /* Table attribute to allow more than 256. */
-                        r = sd_netlink_message_append_data(req, RTA_TABLE, &route->table, sizeof(route->table));
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append RTA_TABLE attribute: %m");
-                }
+                /* Table attribute to allow more than 256. */
+                r = sd_netlink_message_append_data(req, RTA_TABLE, &route->table, sizeof(route->table));
+                if (r < 0)
+                        return log_link_error_errno(link, r, "Could not append RTA_TABLE attribute: %m");
         }
 
         if (!route_type_is_reject(route) && route->nexthop_id == 0) {
index f037c5281f4b6ff76f05c7bedcf712bc869d5d5f..29ab9241e9168e8fa0ee37ae456c515137405928 100644 (file)
@@ -228,6 +228,14 @@ int local_gateways(
         if (r < 0)
                 return r;
 
+        r = sd_rtnl_message_route_set_type(req, RTN_UNICAST);
+        if (r < 0)
+                return r;
+
+        r = sd_rtnl_message_route_set_table(req, RT_TABLE_MAIN);
+        if (r < 0)
+                return r;
+
         r = sd_netlink_message_request_dump(req, true);
         if (r < 0)
                 return r;