network: include NLMSGERR_ATTR_MSG attribute in error message
This commit is contained in:
parent
e4a1e68d7a
commit
5ecb131d94
|
@ -95,7 +95,7 @@ static int address_label_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_warning_errno(link, r, "could not set address label: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set address label");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
} else if (r >= 0)
|
||||
|
|
|
@ -431,7 +431,7 @@ static int address_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EADDRNOTAVAIL)
|
||||
log_link_warning_errno(link, r, "Could not drop address: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not drop address");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -141,7 +141,7 @@ static int set_brvlan_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *lin
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST)
|
||||
log_link_error_errno(link, r, "Could not add VLAN to bridge port: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not add VLAN to bridge port");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ static int link_up_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link)
|
|||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
/* we warn but don't fail the link, as it may be brought up later */
|
||||
log_link_warning_errno(link, r, "Could not bring up interface: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not bring up interface");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ static int link_set_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link)
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Failed to configure CAN link: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Failed to configure CAN link");
|
||||
link_enter_failed(link);
|
||||
}
|
||||
|
||||
|
@ -183,7 +183,7 @@ static int link_down_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0) {
|
||||
log_link_warning_errno(link, r, "Could not bring down interface: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not bring down interface");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -65,11 +65,11 @@ static int dhcp4_route_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *li
|
|||
/* It seems kernel does not support that the prefix route cannot be configured with
|
||||
* route table. Let's once drop the config and reconfigure them later. */
|
||||
|
||||
log_link_debug_errno(link, r, "Could not set DHCPv4 route, retrying later: %m");
|
||||
log_link_message_debug_errno(link, m, r, "Could not set DHCPv4 route, retrying later: %m");
|
||||
link->dhcp4_route_failed = true;
|
||||
link->manager->dhcp4_prefix_root_cannot_set_table = true;
|
||||
} else if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Could not set DHCPv4 route: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set DHCPv4 route: %m");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
@ -543,7 +543,7 @@ static int dhcp_remove_address_handler(sd_netlink *rtnl, sd_netlink_message *m,
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
log_link_debug_errno(link, r, "Failed to remove DHCPv4 address, ignoring: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Failed to remove DHCPv4 address, ignoring");
|
||||
else
|
||||
(void) manager_rtnl_process_address(rtnl, m, link->manager);
|
||||
|
||||
|
@ -665,7 +665,7 @@ static int dhcp4_address_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Could not set DHCPv4 address: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set DHCPv4 address");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
} else if (r >= 0)
|
||||
|
|
|
@ -112,7 +112,7 @@ static int dhcp6_route_remove_handler(sd_netlink *nl, sd_netlink_message *m, Lin
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
log_link_debug_errno(link, r, "Received error on unreachable route removal for DHCPv6 delegated subnet: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Received error on unreachable route removal for DHCPv6 delegated subnet");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -251,7 +251,7 @@ static int dhcp6_route_handler(sd_netlink *nl, sd_netlink_message *m, Link *link
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST)
|
||||
log_link_debug_errno(link, r, "Received error when adding unreachable route for DHCPv6 delegated subnet: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Received error when adding unreachable route for DHCPv6 delegated subnet");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -402,7 +402,7 @@ static int dhcp6_address_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Could not set DHCPv6 address: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set DHCPv6 address");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
} else if (r >= 0)
|
||||
|
@ -714,7 +714,7 @@ static int dhcp6_route_add_handler(sd_netlink *nl, sd_netlink_message *m, Link *
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_debug_errno(link, r, "Received error adding DHCPv6 Prefix Delegation route: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Received error adding DHCPv6 Prefix Delegation route");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
@ -780,7 +780,7 @@ static int dhcp6_prefix_remove_handler(sd_netlink *nl, sd_netlink_message *m, Li
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0) {
|
||||
log_link_debug_errno(link, r, "Received error on DHCPv6 Prefix Delegation route removal: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Received error on DHCPv6 Prefix Delegation route removal");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ static int set_fdb_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link)
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Could not add FDB entry: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not add FDB entry");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ static int ipv4ll_address_handler(sd_netlink *rtnl, sd_netlink_message *m, Link
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "could not set ipv4ll address: %m");
|
||||
log_link_message_warning_errno(link, m, r, "could not set ipv4ll address");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
} else if (r >= 0)
|
||||
|
|
|
@ -141,7 +141,7 @@ static int set_ipv6_proxy_ndp_address_handler(sd_netlink *rtnl, sd_netlink_messa
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST)
|
||||
log_link_error_errno(link, r, "Could not add IPv6 proxy ndp address entry: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not add IPv6 proxy ndp address entry, ignoring");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -929,7 +929,7 @@ static int nexthop_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link)
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_warning_errno(link, r, "Could not set nexthop: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set nexthop");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
@ -981,7 +981,7 @@ static int route_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) {
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_warning_errno(link, r, "Could not set route: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set route");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
@ -1170,7 +1170,7 @@ static int address_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link)
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_warning_errno(link, r, "could not set address: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set address");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
} else if (r >= 0)
|
||||
|
@ -1303,7 +1303,7 @@ static int set_mtu_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link)
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
log_link_warning_errno(link, r, "Could not set MTU, ignoring: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set MTU, ignoring");
|
||||
else
|
||||
log_link_debug(link, "Setting MTU done.");
|
||||
|
||||
|
@ -1415,7 +1415,7 @@ static int set_flags_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
log_link_warning_errno(link, r, "Could not set link flags, ignoring: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set link flags, ignoring");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -1582,7 +1582,7 @@ static int link_address_genmode_handler(sd_netlink *rtnl, sd_netlink_message *m,
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
log_link_warning_errno(link, r, "Could not set address genmode for interface, ignoring: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set address genmode for interface, ignoring");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -1656,7 +1656,7 @@ static int link_up_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link)
|
|||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
/* we warn but don't fail the link, as it may be brought up later */
|
||||
log_link_warning_errno(link, r, "Could not bring up interface: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not bring up interface");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -1713,7 +1713,7 @@ static int link_down_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
log_link_warning_errno(link, r, "Could not bring down interface: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not bring down interface");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -2118,7 +2118,7 @@ static int netdev_join_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *li
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Could not join netdev: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not join netdev");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
@ -4053,3 +4053,10 @@ static const char* const link_state_table[_LINK_STATE_MAX] = {
|
|||
};
|
||||
|
||||
DEFINE_STRING_TABLE_LOOKUP(link_state, LinkState);
|
||||
|
||||
int log_link_message_full_errno(Link *link, sd_netlink_message *m, int level, int err, const char *msg) {
|
||||
const char *err_msg = NULL;
|
||||
|
||||
(void) sd_netlink_message_read_string(m, NLMSGERR_ATTR_MSG, &err_msg);
|
||||
return log_link_full(link, level, err, "%s: %s%s%m", msg, strempty(err_msg), err_msg ? " " : "");
|
||||
}
|
||||
|
|
|
@ -213,6 +213,13 @@ int link_request_set_nexthop(Link *link);
|
|||
|
||||
int link_reconfigure(Link *link, bool force);
|
||||
|
||||
int log_link_message_full_errno(Link *link, sd_netlink_message *m, int level, int err, const char *msg);
|
||||
#define log_link_message_error_errno(link, m, err, msg) log_link_message_full_errno(link, m, LOG_ERR, err, msg)
|
||||
#define log_link_message_warning_errno(link, m, err, msg) log_link_message_full_errno(link, m, LOG_WARNING, err, msg)
|
||||
#define log_link_message_notice_errno(link, m, err, msg) log_link_message_full_errno(link, m, LOG_NOTICE, err, msg)
|
||||
#define log_link_message_info_errno(link, m, err, msg) log_link_message_full_errno(link, m, LOG_INFO, err, msg)
|
||||
#define log_link_message_debug_errno(link, m, err, msg) log_link_message_full_errno(link, m, LOG_DEBUG, err, msg)
|
||||
|
||||
#define ADDRESS_FMT_VAL(address) \
|
||||
be32toh((address).s_addr) >> 24, \
|
||||
(be32toh((address).s_addr) >> 16) & 0xFFu, \
|
||||
|
|
|
@ -41,6 +41,13 @@
|
|||
/* use 8 MB for receive socket kernel queue. */
|
||||
#define RCVBUF_SIZE (8*1024*1024)
|
||||
|
||||
static int log_message_warning_errno(sd_netlink_message *m, int err, const char *msg) {
|
||||
const char *err_msg = NULL;
|
||||
|
||||
(void) sd_netlink_message_read_string(m, NLMSGERR_ATTR_MSG, &err_msg);
|
||||
return log_warning_errno(err, "%s: %s%s%m", msg, strempty(err_msg), err_msg ? " " : "");
|
||||
}
|
||||
|
||||
static int setup_default_address_pool(Manager *m) {
|
||||
AddressPool *p;
|
||||
int r;
|
||||
|
@ -283,7 +290,7 @@ int manager_rtnl_process_route(sd_netlink *rtnl, sd_netlink_message *message, vo
|
|||
if (sd_netlink_message_is_error(message)) {
|
||||
r = sd_netlink_message_get_errno(message);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "rtnl: failed to receive route message, ignoring: %m");
|
||||
log_message_warning_errno(message, r, "rtnl: failed to receive route message, ignoring");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -576,7 +583,7 @@ int manager_rtnl_process_neighbor(sd_netlink *rtnl, sd_netlink_message *message,
|
|||
if (sd_netlink_message_is_error(message)) {
|
||||
r = sd_netlink_message_get_errno(message);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "rtnl: failed to receive neighbor message, ignoring: %m");
|
||||
log_message_warning_errno(message, r, "rtnl: failed to receive neighbor message, ignoring");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -714,7 +721,7 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message,
|
|||
if (sd_netlink_message_is_error(message)) {
|
||||
r = sd_netlink_message_get_errno(message);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "rtnl: failed to receive address message, ignoring: %m");
|
||||
log_message_warning_errno(message, r, "rtnl: failed to receive address message, ignoring");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -867,7 +874,7 @@ static int manager_rtnl_process_link(sd_netlink *rtnl, sd_netlink_message *messa
|
|||
if (sd_netlink_message_is_error(message)) {
|
||||
r = sd_netlink_message_get_errno(message);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "rtnl: Could not receive link message, ignoring: %m");
|
||||
log_message_warning_errno(message, r, "rtnl: Could not receive link message, ignoring");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -957,7 +964,7 @@ int manager_rtnl_process_rule(sd_netlink *rtnl, sd_netlink_message *message, voi
|
|||
if (sd_netlink_message_is_error(message)) {
|
||||
r = sd_netlink_message_get_errno(message);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "rtnl: failed to receive rule message, ignoring: %m");
|
||||
log_message_warning_errno(message, r, "rtnl: failed to receive rule message, ignoring");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1170,7 +1177,7 @@ int manager_rtnl_process_nexthop(sd_netlink *rtnl, sd_netlink_message *message,
|
|||
if (sd_netlink_message_is_error(message)) {
|
||||
r = sd_netlink_message_get_errno(message);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "rtnl: failed to receive rule message, ignoring: %m");
|
||||
log_message_warning_errno(message, r, "rtnl: failed to receive rule message, ignoring");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ static int ndisc_netlink_route_message_handler(sd_netlink *rtnl, sd_netlink_mess
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Could not set NDisc route or address: %m");
|
||||
log_link_message_error_errno(link, m, r, "Could not set NDisc route or address");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ static int ndisc_netlink_address_message_handler(sd_netlink *rtnl, sd_netlink_me
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Could not set NDisc route or address: %m");
|
||||
log_link_message_error_errno(link, m, r, "Could not set NDisc route or address");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
} else if (r >= 0)
|
||||
|
|
|
@ -102,7 +102,7 @@ static int neighbor_configure_handler(sd_netlink *rtnl, sd_netlink_message *m, L
|
|||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST)
|
||||
/* Neighbor may not exist yet. So, do not enter failed state here. */
|
||||
log_link_warning_errno(link, r, "Could not set neighbor, ignoring: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not set neighbor, ignoring");
|
||||
|
||||
if (link->neighbor_messages == 0) {
|
||||
log_link_debug(link, "Neighbors set");
|
||||
|
@ -171,7 +171,7 @@ static int neighbor_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link
|
|||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -ESRCH)
|
||||
/* Neighbor may not exist because it already got deleted, ignore that. */
|
||||
log_link_warning_errno(link, r, "Could not remove neighbor: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not remove neighbor");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -278,7 +278,7 @@ static int nexthop_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -ESRCH)
|
||||
log_link_warning_errno(link, r, "Could not drop nexthop: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not drop nexthop, ignoring");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -398,7 +398,7 @@ static int route_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *l
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -ESRCH)
|
||||
log_link_warning_errno(link, r, "Could not drop route: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not drop route, ignoring");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -317,7 +317,7 @@ static int routing_policy_rule_remove_handler(sd_netlink *rtnl, sd_netlink_messa
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0)
|
||||
log_link_warning_errno(link, r, "Could not drop routing policy rule: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not drop routing policy rule");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -431,7 +431,7 @@ static int routing_policy_rule_handler(sd_netlink *rtnl, sd_netlink_message *m,
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_warning_errno(link, r, "Could not add routing policy rule: %m");
|
||||
log_link_message_warning_errno(link, m, r, "Could not add routing policy rule");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ static int qdisc_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) {
|
|||
|
||||
r = sd_netlink_message_get_errno(m);
|
||||
if (r < 0 && r != -EEXIST) {
|
||||
log_link_error_errno(link, r, "Could not set QDisc: %m");
|
||||
log_link_message_error_errno(link, m, r, "Could not set QDisc: %m");
|
||||
link_enter_failed(link);
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue