]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: make address_configure() and friends take Request object
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 11 Mar 2022 01:40:59 +0000 (10:40 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 11 Mar 2022 01:40:59 +0000 (10:40 +0900)
This should not change any behavior.
Just a preparation for a later commit which introduces
request_call_netlink_async().

src/network/netdev/netdev.c
src/network/networkd-address-label.c
src/network/networkd-address.c
src/network/networkd-bridge-fdb.c
src/network/networkd-bridge-mdb.c
src/network/networkd-ipv6-proxy-ndp.c
src/network/networkd-neighbor.c
src/network/networkd-nexthop.c
src/network/networkd-route.c
src/network/networkd-routing-policy-rule.c
src/network/networkd-setlink.c

index c3cdb4f62141b8b18db6c21c276fea70d9d4a348..30b29707120ad0dc073a1640d8eda11a06bc0603 100644 (file)
@@ -578,14 +578,14 @@ static int independent_netdev_create(NetDev *netdev) {
         return 0;
 }
 
-static int stacked_netdev_create(NetDev *netdev, Link *link, link_netlink_message_handler_t callback) {
+static int stacked_netdev_create(NetDev *netdev, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
         assert(netdev);
         assert(netdev->manager);
         assert(link);
-        assert(callback);
+        assert(req);
 
         r = sd_rtnl_message_new_link(netdev->manager->rtnl, &m, RTM_NEWLINK, 0);
         if (r < 0)
@@ -595,7 +595,7 @@ static int stacked_netdev_create(NetDev *netdev, Link *link, link_netlink_messag
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(netdev->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(netdev->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -639,7 +639,6 @@ int request_process_stacked_netdev(Request *req) {
 
         assert(req);
         assert(req->type == REQUEST_TYPE_NETDEV_STACKED);
-        assert(req->netlink_handler);
 
         netdev = ASSERT_PTR(req->netdev);
         link = ASSERT_PTR(req->link);
@@ -648,7 +647,7 @@ int request_process_stacked_netdev(Request *req) {
         if (r <= 0)
                 return r;
 
-        r = stacked_netdev_create(netdev, link, req->netlink_handler);
+        r = stacked_netdev_create(netdev, link, req);
         if (r < 0)
                 return log_netdev_warning_errno(netdev, r, "Failed to create netdev: %m");
 
index da9a1794b7de01afe91b616087b6bd7b9bf3cf65..3447d96cf9c0ae70502e3a306e3ffc0dcabd3d76 100644 (file)
@@ -95,7 +95,7 @@ static int address_label_configure_handler(sd_netlink *rtnl, sd_netlink_message
         return 1;
 }
 
-static int address_label_configure(AddressLabel *label, Link *link, link_netlink_message_handler_t callback) {
+static int address_label_configure(AddressLabel *label, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
@@ -104,7 +104,7 @@ static int address_label_configure(AddressLabel *label, Link *link, link_netlink
         assert(link->ifindex > 0);
         assert(link->manager);
         assert(link->manager->rtnl);
-        assert(callback);
+        assert(req);
 
         r = sd_rtnl_message_new_addrlabel(link->manager->rtnl, &m, RTM_NEWADDRLABEL,
                                           link->ifindex, AF_INET6);
@@ -123,7 +123,7 @@ static int address_label_configure(AddressLabel *label, Link *link, link_netlink
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -145,7 +145,7 @@ int request_process_address_label(Request *req) {
         if (!link_is_ready_to_configure(link, false))
                 return 0;
 
-        r = address_label_configure(req->label, link, req->netlink_handler);
+        r = address_label_configure(req->label, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure address label: %m");
 
index f883c79a9eee376f7f2bf5a7ef13d641264ceef8..bf56335e316829bd04c75a0c2b251ae5e9e78b75 100644 (file)
@@ -1036,11 +1036,7 @@ int address_configure_handler_internal(sd_netlink *rtnl, sd_netlink_message *m,
         return 1;
 }
 
-static int address_configure(
-                const Address *address,
-                Link *link,
-                link_netlink_message_handler_t callback) {
-
+static int address_configure(const Address *address, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
@@ -1050,7 +1046,7 @@ static int address_configure(
         assert(link->ifindex > 0);
         assert(link->manager);
         assert(link->manager->rtnl);
-        assert(callback);
+        assert(req);
 
         log_address_debug(address, "Configuring", link);
 
@@ -1091,7 +1087,7 @@ static int address_configure(
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback, link_netlink_destroy_callback, link);
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler, link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
 
@@ -1130,7 +1126,7 @@ int request_process_address(Request *req) {
         if (!address_is_ready_to_configure(link, address))
                 return 0;
 
-        r = address_configure(address, link, req->netlink_handler);
+        r = address_configure(address, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure address: %m");
 
index b09b2ad7357939aa1a263a4f4685aa314ff75211..a7ba2239c6aa020010eb193fdc958e1f34af07b7 100644 (file)
@@ -168,14 +168,14 @@ static int bridge_fdb_configure_message(const BridgeFDB *fdb, Link *link, sd_net
         return 0;
 }
 
-static int bridge_fdb_configure(BridgeFDB *fdb, Link *link, link_netlink_message_handler_t callback) {
+static int bridge_fdb_configure(BridgeFDB *fdb, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
         assert(fdb);
         assert(link);
         assert(link->manager);
-        assert(callback);
+        assert(req);
 
         r = sd_rtnl_message_new_neigh(link->manager->rtnl, &m, RTM_NEWNEIGH, link->ifindex, AF_BRIDGE);
         if (r < 0)
@@ -185,7 +185,7 @@ static int bridge_fdb_configure(BridgeFDB *fdb, Link *link, link_netlink_message
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -232,7 +232,7 @@ int request_process_bridge_fdb(Request *req) {
         if (!bridge_fdb_is_ready_to_configure(fdb, link))
                 return 0;
 
-        r = bridge_fdb_configure(fdb, link, req->netlink_handler);
+        r = bridge_fdb_configure(fdb, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure bridge FDB: %m");
 
index af01a89f47bae5f0f946c06e8fce75d04112dd38..4cd98f3545e1eda7d953ffc2c68d31fb0437f9d2 100644 (file)
@@ -114,7 +114,7 @@ static int bridge_mdb_configure_handler(sd_netlink *rtnl, sd_netlink_message *m,
 }
 
 /* send a request to the kernel to add an MDB entry */
-static int bridge_mdb_configure(BridgeMDB *mdb, Link *link, link_netlink_message_handler_t callback) {
+static int bridge_mdb_configure(BridgeMDB *mdb, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         struct br_mdb_entry entry;
         int r;
@@ -122,7 +122,7 @@ static int bridge_mdb_configure(BridgeMDB *mdb, Link *link, link_netlink_message
         assert(mdb);
         assert(link);
         assert(link->manager);
-        assert(callback);
+        assert(req);
 
         if (DEBUG_LOGGING) {
                 _cleanup_free_ char *a = NULL;
@@ -164,7 +164,7 @@ static int bridge_mdb_configure(BridgeMDB *mdb, Link *link, link_netlink_message
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -217,7 +217,7 @@ int request_process_bridge_mdb(Request *req) {
         if (!bridge_mdb_is_ready_to_configure(link))
                 return 0;
 
-        r = bridge_mdb_configure(req->mdb, link, req->netlink_handler);
+        r = bridge_mdb_configure(req->mdb, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure bridge MDB: %m");
 
index 22a75bf56b26b35c1bba430535ab3b8bcf469513..5844273be98ab9d0efaa64bfd9750b390e69a4c5 100644 (file)
@@ -48,11 +48,7 @@ static int ipv6_proxy_ndp_address_configure_handler(sd_netlink *rtnl, sd_netlink
 }
 
 /* send a request to the kernel to add an IPv6 Proxy entry to the neighbour table */
-static int ipv6_proxy_ndp_address_configure(
-                const struct in6_addr *address,
-                Link *link,
-                link_netlink_message_handler_t callback) {
-
+static int ipv6_proxy_ndp_address_configure(const struct in6_addr *address, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
@@ -60,7 +56,7 @@ static int ipv6_proxy_ndp_address_configure(
         assert(link);
         assert(link->manager);
         assert(link->manager->rtnl);
-        assert(callback);
+        assert(req);
 
         /* create new netlink message */
         r = sd_rtnl_message_new_neigh(link->manager->rtnl, &m, RTM_NEWNEIGH, link->ifindex, AF_INET6);
@@ -75,7 +71,7 @@ static int ipv6_proxy_ndp_address_configure(
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -96,7 +92,7 @@ int request_process_ipv6_proxy_ndp_address(Request *req) {
         if (!link_is_ready_to_configure(link, false))
                 return 0;
 
-        r = ipv6_proxy_ndp_address_configure(req->ipv6_proxy_ndp, link, req->netlink_handler);
+        r = ipv6_proxy_ndp_address_configure(req->ipv6_proxy_ndp, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure IPv6 proxy NDP address: %m");
 
index 8887389807c6446c0ec678008689e1b609960cfe..13dcba82864de08c6596f632120ff81c3163d3f4 100644 (file)
@@ -193,11 +193,7 @@ static int neighbor_configure_message(Neighbor *neighbor, Link *link, sd_netlink
         return 0;
 }
 
-static int neighbor_configure(
-                Neighbor *neighbor,
-                Link *link,
-                link_netlink_message_handler_t callback) {
-
+static int neighbor_configure(Neighbor *neighbor, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
@@ -206,7 +202,7 @@ static int neighbor_configure(
         assert(link->ifindex > 0);
         assert(link->manager);
         assert(link->manager->rtnl);
-        assert(callback);
+        assert(req);
 
         log_neighbor_debug(neighbor, "Configuring", link);
 
@@ -219,7 +215,7 @@ static int neighbor_configure(
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -243,7 +239,7 @@ int request_process_neighbor(Request *req) {
         if (!link_is_ready_to_configure(link, false))
                 return 0;
 
-        r = neighbor_configure(neighbor, link, req->netlink_handler);
+        r = neighbor_configure(neighbor, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure neighbor: %m");
 
index 8f555d96852f2e34a4bc3693981411a374a64ce3..ed9d621587c64ceb750c031b06953827efcea455 100644 (file)
@@ -425,11 +425,7 @@ static int nexthop_remove(NextHop *nexthop) {
         return 0;
 }
 
-static int nexthop_configure(
-                NextHop *nexthop,
-                Link *link,
-                link_netlink_message_handler_t callback) {
-
+static int nexthop_configure(NextHop *nexthop, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
@@ -439,7 +435,7 @@ static int nexthop_configure(
         assert(link->manager);
         assert(link->manager->rtnl);
         assert(link->ifindex > 0);
-        assert(callback);
+        assert(req);
 
         log_nexthop_debug(nexthop, "Configuring", link);
 
@@ -489,7 +485,7 @@ static int nexthop_configure(
                 }
         }
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -583,7 +579,7 @@ int request_process_nexthop(Request *req) {
         if (!nexthop_is_ready_to_configure(link, nexthop))
                 return 0;
 
-        r = nexthop_configure(nexthop, link, req->netlink_handler);
+        r = nexthop_configure(nexthop, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure nexthop");
 
index 2de75f2485d669c4c435a575cfb5cc52ba3a61a2..a33ab92f3a7ac75f5db73393ea52f2fc5778cb85 100644 (file)
@@ -1154,11 +1154,7 @@ int route_configure_handler_internal(sd_netlink *rtnl, sd_netlink_message *m, Li
         return 1;
 }
 
-static int route_configure(
-                const Route *route,
-                Link *link,
-                link_netlink_message_handler_t callback) {
-
+static int route_configure(const Route *route, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
@@ -1168,7 +1164,7 @@ static int route_configure(
         assert(link->manager);
         assert(link->manager->rtnl);
         assert(link->ifindex > 0);
-        assert(callback);
+        assert(req);
 
         log_route_debug(route, "Configuring", link, link->manager);
 
@@ -1250,7 +1246,7 @@ static int route_configure(
                         return r;
         }
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -1373,7 +1369,7 @@ int request_process_route(Request *req) {
                 }
         }
 
-        r = route_configure(route, link, req->netlink_handler);
+        r = route_configure(route, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure route: %m");
 
index 5812aee03b6c64de3ca10a5cdab9191ff5af0b09..8ff6b0980ceef6feed560c7b655c486bb1613d52 100644 (file)
@@ -604,11 +604,7 @@ static int routing_policy_rule_remove(RoutingPolicyRule *rule) {
         return 0;
 }
 
-static int routing_policy_rule_configure(
-                RoutingPolicyRule *rule,
-                Link *link,
-                link_netlink_message_handler_t callback) {
-
+static int routing_policy_rule_configure(RoutingPolicyRule *rule, Link *link, Request *req) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
@@ -618,7 +614,7 @@ static int routing_policy_rule_configure(
         assert(link->ifindex > 0);
         assert(link->manager);
         assert(link->manager->rtnl);
-        assert(callback);
+        assert(req);
 
         log_routing_policy_rule_debug(rule, "Configuring", link, link->manager);
 
@@ -630,7 +626,7 @@ static int routing_policy_rule_configure(
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, m, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -742,7 +738,7 @@ int request_process_routing_policy_rule(Request *req) {
         if (!link_is_ready_to_configure(link, false))
                 return 0;
 
-        r = routing_policy_rule_configure(rule, link, req->netlink_handler);
+        r = routing_policy_rule_configure(rule, link, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to configure routing policy rule: %m");
 
index 8878de3a2c703640dbefab711cae0edc4078a6da..69bbff061d8dd3146d224948c3301c3ee3c21285 100644 (file)
@@ -1055,26 +1055,26 @@ static const char *up_or_down(bool up) {
         return up ? "up" : "down";
 }
 
-static int link_up_or_down(Link *link, bool up, link_netlink_message_handler_t callback) {
-        _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *req = NULL;
+static int link_up_or_down(Link *link, bool up, Request *req) {
+        _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         int r;
 
         assert(link);
         assert(link->manager);
         assert(link->manager->rtnl);
-        assert(callback);
+        assert(req);
 
         log_link_debug(link, "Bringing link %s", up_or_down(up));
 
-        r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_SETLINK, link->ifindex);
+        r = sd_rtnl_message_new_link(link->manager->rtnl, &m, RTM_SETLINK, link->ifindex);
         if (r < 0)
                 return r;
 
-        r = sd_rtnl_message_link_set_flags(req, up ? IFF_UP : 0, IFF_UP);
+        r = sd_rtnl_message_link_set_flags(m, up ? IFF_UP : 0, IFF_UP);
         if (r < 0)
                 return r;
 
-        r = netlink_call_async(link->manager->rtnl, NULL, req, callback,
+        r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
                 return r;
@@ -1104,7 +1104,6 @@ int request_process_activation(Request *req) {
         assert(req);
         assert(req->link);
         assert(req->type == REQUEST_TYPE_ACTIVATE_LINK);
-        assert(req->netlink_handler);
 
         link = req->link;
         up = PTR_TO_INT(req->userdata);
@@ -1112,7 +1111,7 @@ int request_process_activation(Request *req) {
         if (!link_is_ready_to_activate(link))
                 return 0;
 
-        r = link_up_or_down(link, up, req->netlink_handler);
+        r = link_up_or_down(link, up, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to activate link: %m");
 
@@ -1207,7 +1206,7 @@ int request_process_link_up_or_down(Request *req) {
         if (!link_is_ready_to_bring_up_or_down(link, up))
                 return 0;
 
-        r = link_up_or_down(link, up, req->netlink_handler);
+        r = link_up_or_down(link, up, req);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Failed to bring link %s: %m", up_or_down(up));