From 7db07767d5c96c6d18531eec2168dc332cda44c2 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Sat, 1 Apr 2023 19:42:56 +0800 Subject: networkctl: use FOREACH_ARRAY more --- src/network/networkctl.c | 58 ++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/src/network/networkctl.c b/src/network/networkctl.c index 6ea79115a2..c289ee535c 100644 --- a/src/network/networkctl.c +++ b/src/network/networkctl.c @@ -825,8 +825,8 @@ static int acquire_link_info(sd_bus *bus, sd_netlink *rtnl, char **patterns, Lin typesafe_qsort(links, c, link_info_compare); if (bus) - for (size_t j = 0; j < c; j++) - (void) acquire_link_bitrates(bus, links + j); + FOREACH_ARRAY(link, links, c) + (void) acquire_link_bitrates(bus, link); *ret = TAKE_PTR(links); @@ -884,24 +884,24 @@ static int list_links(int argc, char *argv[], void *userdata) { assert_se(cell = table_get_cell(table, 0, 1)); (void) table_set_ellipsize_percent(table, cell, 100); - for (int i = 0; i < c; i++) { + FOREACH_ARRAY(link, links, c) { _cleanup_free_ char *setup_state = NULL, *operational_state = NULL; - const char *on_color_operational, *on_color_setup; _cleanup_free_ char *t = NULL; + const char *on_color_operational, *on_color_setup; - (void) sd_network_link_get_operational_state(links[i].ifindex, &operational_state); - operational_state_to_color(links[i].name, operational_state, &on_color_operational, NULL); + (void) sd_network_link_get_operational_state(link->ifindex, &operational_state); + operational_state_to_color(link->name, operational_state, &on_color_operational, NULL); - (void) sd_network_link_get_setup_state(links[i].ifindex, &setup_state); + (void) sd_network_link_get_setup_state(link->ifindex, &setup_state); setup_state_to_color(setup_state, &on_color_setup, NULL); - r = net_get_type_string(links[i].sd_device, links[i].iftype, &t); + r = net_get_type_string(link->sd_device, link->iftype, &t); if (r == -ENOMEM) return log_oom(); r = table_add_many(table, - TABLE_INT, links[i].ifindex, - TABLE_STRING, links[i].name, + TABLE_INT, link->ifindex, + TABLE_STRING, link->name, TABLE_STRING, t, TABLE_STRING, operational_state, TABLE_SET_COLOR, on_color_operational, @@ -1076,37 +1076,33 @@ static int dump_list(Table *table, const char *prefix, char * const *l) { return 0; } -static int dump_gateways( - sd_netlink *rtnl, - sd_hwdb *hwdb, - Table *table, - int ifindex) { - _cleanup_free_ struct local_address *local = NULL; +static int dump_gateways(sd_netlink *rtnl, sd_hwdb *hwdb, Table *table, int ifindex) { + _cleanup_free_ struct local_address *local_addrs = NULL; _cleanup_strv_free_ char **buf = NULL; int r, n; assert(rtnl); assert(table); - n = local_gateways(rtnl, ifindex, AF_UNSPEC, &local); + n = local_gateways(rtnl, ifindex, AF_UNSPEC, &local_addrs); if (n <= 0) return n; - for (int i = 0; i < n; i++) { + FOREACH_ARRAY(local, local_addrs, n) { _cleanup_free_ char *description = NULL; - r = get_gateway_description(rtnl, hwdb, local[i].ifindex, local[i].family, &local[i].address, &description); + r = get_gateway_description(rtnl, hwdb, local->ifindex, local->family, &local->address, &description); if (r < 0) log_debug_errno(r, "Could not get description of gateway, ignoring: %m"); /* Show interface name for the entry if we show entries for all interfaces */ r = strv_extendf(&buf, "%s%s%s%s%s%s", - IN_ADDR_TO_STRING(local[i].family, &local[i].address), + IN_ADDR_TO_STRING(local->family, &local->address), description ? " (" : "", strempty(description), description ? ")" : "", ifindex <= 0 ? " on " : "", - ifindex <= 0 ? FORMAT_IFNAME_FULL(local[i].ifindex, FORMAT_IFNAME_IFINDEX_WITH_PERCENT) : ""); + ifindex <= 0 ? FORMAT_IFNAME_FULL(local->ifindex, FORMAT_IFNAME_IFINDEX_WITH_PERCENT) : ""); if (r < 0) return log_oom(); } @@ -1120,7 +1116,7 @@ static int dump_addresses( Table *table, int ifindex) { - _cleanup_free_ struct local_address *local = NULL; + _cleanup_free_ struct local_address *local_addrs = NULL; _cleanup_strv_free_ char **buf = NULL; struct in_addr dhcp4_address = {}; int r, n; @@ -1128,27 +1124,27 @@ static int dump_addresses( assert(rtnl); assert(table); - n = local_addresses(rtnl, ifindex, AF_UNSPEC, &local); + n = local_addresses(rtnl, ifindex, AF_UNSPEC, &local_addrs); if (n <= 0) return n; if (lease) (void) sd_dhcp_lease_get_address(lease, &dhcp4_address); - for (int i = 0; i < n; i++) { + FOREACH_ARRAY(local, local_addrs, n) { struct in_addr server_address; bool dhcp4 = false; - if (local[i].family == AF_INET && in4_addr_equal(&local[i].address.in, &dhcp4_address)) + if (local->family == AF_INET && in4_addr_equal(&local->address.in, &dhcp4_address)) dhcp4 = sd_dhcp_lease_get_server_identifier(lease, &server_address) >= 0; r = strv_extendf(&buf, "%s%s%s%s%s%s", - IN_ADDR_TO_STRING(local[i].family, &local[i].address), + IN_ADDR_TO_STRING(local->family, &local->address), dhcp4 ? " (DHCP4 via " : "", dhcp4 ? IN4_ADDR_TO_STRING(&server_address) : "", dhcp4 ? ")" : "", ifindex <= 0 ? " on " : "", - ifindex <= 0 ? FORMAT_IFNAME_FULL(local[i].ifindex, FORMAT_IFNAME_IFINDEX_WITH_PERCENT) : ""); + ifindex <= 0 ? FORMAT_IFNAME_FULL(local->ifindex, FORMAT_IFNAME_IFINDEX_WITH_PERCENT) : ""); if (r < 0) return log_oom(); } @@ -2575,14 +2571,14 @@ static int link_lldp_status(int argc, char *argv[], void *userdata) { table_set_minimum_width(table, cell, 11); table_set_ersatz_string(table, TABLE_ERSATZ_DASH); - for (int i = 0; i < c; i++) { + FOREACH_ARRAY(link, links, c) { _cleanup_fclose_ FILE *f = NULL; - r = open_lldp_neighbors(links[i].ifindex, &f); + r = open_lldp_neighbors(link->ifindex, &f); if (r == -ENOENT) continue; if (r < 0) { - log_warning_errno(r, "Failed to open LLDP data for %i, ignoring: %m", links[i].ifindex); + log_warning_errno(r, "Failed to open LLDP data for %i, ignoring: %m", link->ifindex); continue; } @@ -2611,7 +2607,7 @@ static int link_lldp_status(int argc, char *argv[], void *userdata) { } r = table_add_many(table, - TABLE_STRING, links[i].name, + TABLE_STRING, link->name, TABLE_STRING, chassis_id, TABLE_STRING, system_name, TABLE_STRING, capabilities, -- cgit v1.2.1