]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/network/networkd-route.c
Merge pull request #19603 from yuwata/network-link-get-by-name
[thirdparty/systemd.git] / src / network / networkd-route.c
index e588f3a21512f7d8f853403eb432ffe20deaf36d..60eef08074c1ef08ed378ecf159f42145681efb0 100644 (file)
@@ -903,13 +903,12 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *req
         return 0;
 }
 
-int link_route_remove_handler_internal(sd_netlink *rtnl, sd_netlink_message *m, Link *link, const char *error_msg) {
+static int link_route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) {
         int r;
 
         assert(m);
         assert(link);
         assert(link->route_remove_messages > 0);
-        assert(error_msg);
 
         link->route_remove_messages--;
 
@@ -918,15 +917,11 @@ int link_route_remove_handler_internal(sd_netlink *rtnl, sd_netlink_message *m,
 
         r = sd_netlink_message_get_errno(m);
         if (r < 0 && r != -ESRCH)
-                log_link_message_warning_errno(link, m, r, error_msg);
+                log_link_message_warning_errno(link, m, r, "Could not drop route, ignoring");
 
         return 1;
 }
 
-static int link_route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) {
-        return link_route_remove_handler_internal(rtnl, m, link, "Could not drop route, ignoring");
-}
-
 static int manager_route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Manager *manager) {
         int r;
 
@@ -943,12 +938,7 @@ static int manager_route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m,
         return 1;
 }
 
-int route_remove(
-                const Route *route,
-                Manager *manager,
-                Link *link,
-                link_netlink_message_handler_t callback) {
-
+int route_remove(const Route *route, Manager *manager, Link *link) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL;
         unsigned char type;
         int r;
@@ -988,7 +978,7 @@ int route_remove(
 
         if (link) {
                 r = netlink_call_async(manager->rtnl, NULL, req,
-                                       callback ?: link_route_remove_handler,
+                                       link_route_remove_handler,
                                        link_netlink_destroy_callback, link);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Could not send rtnetlink message: %m");
@@ -1062,7 +1052,7 @@ static int manager_drop_routes_internal(Manager *manager, bool foreign, const Li
 
                 /* The existing links do not have the route. Let's drop this now. It may be
                  * re-configured later. */
-                k = route_remove(route, manager, NULL, NULL);
+                k = route_remove(route, manager, NULL);
                 if (k < 0 && r >= 0)
                         r = k;
 
@@ -1112,7 +1102,7 @@ int link_drop_foreign_routes(Link *link) {
                 if (link_has_static_route(link, route))
                         k = route_add(NULL, link, route, NULL, NULL, NULL);
                 else
-                        k = route_remove(route, NULL, link, NULL);
+                        k = route_remove(route, NULL, link);
                 if (k < 0 && r >= 0)
                         r = k;
         }
@@ -1135,7 +1125,7 @@ int link_drop_routes(Link *link) {
                 if (route->protocol == RTPROT_KERNEL)
                         continue;
 
-                k = route_remove(route, NULL, link, NULL);
+                k = route_remove(route, NULL, link);
                 if (k < 0 && r >= 0)
                         r = k;
         }
@@ -1153,7 +1143,7 @@ static int route_expire_handler(sd_event_source *s, uint64_t usec, void *userdat
 
         assert(route);
 
-        r = route_remove(route, route->manager, route->link, NULL);
+        r = route_remove(route, route->manager, route->link);
         if (r < 0) {
                 log_link_warning_errno(route->link, r, "Could not remove route: %m");
                 route_free(route);