From: Yu Watanabe Date: Fri, 11 Mar 2022 01:40:59 +0000 (+0900) Subject: network: make address_configure() and friends take Request object X-Git-Tag: v251-rc1~164^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=54ff39f7aecbefeb6f480ea61fbacc4ee554dacc;p=thirdparty%2Fsystemd.git network: make address_configure() and friends take Request object This should not change any behavior. Just a preparation for a later commit which introduces request_call_netlink_async(). --- diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c index c3cdb4f6214..30b29707120 100644 --- a/src/network/netdev/netdev.c +++ b/src/network/netdev/netdev.c @@ -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"); diff --git a/src/network/networkd-address-label.c b/src/network/networkd-address-label.c index da9a1794b7d..3447d96cf9c 100644 --- a/src/network/networkd-address-label.c +++ b/src/network/networkd-address-label.c @@ -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"); diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index f883c79a9ee..bf56335e316 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -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"); diff --git a/src/network/networkd-bridge-fdb.c b/src/network/networkd-bridge-fdb.c index b09b2ad7357..a7ba2239c6a 100644 --- a/src/network/networkd-bridge-fdb.c +++ b/src/network/networkd-bridge-fdb.c @@ -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"); diff --git a/src/network/networkd-bridge-mdb.c b/src/network/networkd-bridge-mdb.c index af01a89f47b..4cd98f3545e 100644 --- a/src/network/networkd-bridge-mdb.c +++ b/src/network/networkd-bridge-mdb.c @@ -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"); diff --git a/src/network/networkd-ipv6-proxy-ndp.c b/src/network/networkd-ipv6-proxy-ndp.c index 22a75bf56b2..5844273be98 100644 --- a/src/network/networkd-ipv6-proxy-ndp.c +++ b/src/network/networkd-ipv6-proxy-ndp.c @@ -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"); diff --git a/src/network/networkd-neighbor.c b/src/network/networkd-neighbor.c index 8887389807c..13dcba82864 100644 --- a/src/network/networkd-neighbor.c +++ b/src/network/networkd-neighbor.c @@ -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"); diff --git a/src/network/networkd-nexthop.c b/src/network/networkd-nexthop.c index 8f555d96852..ed9d621587c 100644 --- a/src/network/networkd-nexthop.c +++ b/src/network/networkd-nexthop.c @@ -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"); diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index 2de75f2485d..a33ab92f3a7 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -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"); diff --git a/src/network/networkd-routing-policy-rule.c b/src/network/networkd-routing-policy-rule.c index 5812aee03b6..8ff6b0980ce 100644 --- a/src/network/networkd-routing-policy-rule.c +++ b/src/network/networkd-routing-policy-rule.c @@ -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"); diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c index 8878de3a2c7..69bbff061d8 100644 --- a/src/network/networkd-setlink.c +++ b/src/network/networkd-setlink.c @@ -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));