networkd: netdev - improve logging when setting ifindex
This commit is contained in:
parent
d8e538ecd9
commit
ba5596ec2e
|
@ -323,12 +323,8 @@ static int manager_rtnl_process_link(sd_rtnl *rtnl, sd_rtnl_message *message, vo
|
||||||
NetDev *netdev;
|
NetDev *netdev;
|
||||||
|
|
||||||
r = netdev_get(m, name, &netdev);
|
r = netdev_get(m, name, &netdev);
|
||||||
if (r >= 0) {
|
if (r >= 0)
|
||||||
r = netdev_set_ifindex(netdev, message);
|
netdev_set_ifindex(netdev, message);
|
||||||
if (r < 0)
|
|
||||||
log_debug("could not set ifindex of netdev '%s' to %d: %s",
|
|
||||||
name, ifindex, strerror(-r));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
r = link_get(m, ifindex, &link);
|
r = link_get(m, ifindex, &link);
|
||||||
|
|
|
@ -146,6 +146,9 @@ static int netdev_enter_ready(NetDev *netdev) {
|
||||||
assert(netdev);
|
assert(netdev);
|
||||||
assert(netdev->name);
|
assert(netdev->name);
|
||||||
|
|
||||||
|
if (netdev->state != NETDEV_STATE_CREATING)
|
||||||
|
return 0;
|
||||||
|
|
||||||
netdev->state = NETDEV_STATE_READY;
|
netdev->state = NETDEV_STATE_READY;
|
||||||
|
|
||||||
log_info_netdev(netdev, "netdev ready");
|
log_info_netdev(netdev, "netdev ready");
|
||||||
|
@ -385,11 +388,15 @@ int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *message) {
|
||||||
assert(message);
|
assert(message);
|
||||||
|
|
||||||
r = sd_rtnl_message_get_type(message, &type);
|
r = sd_rtnl_message_get_type(message, &type);
|
||||||
if (r < 0)
|
if (r < 0) {
|
||||||
|
log_error_netdev(netdev, "Could not get rtnl message type");
|
||||||
return r;
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
if (type != RTM_NEWLINK)
|
if (type != RTM_NEWLINK) {
|
||||||
|
log_error_netdev(netdev, "Can not set ifindex from unexpected rtnl message type");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
r = sd_rtnl_message_enter_container(message, IFLA_LINKINFO);
|
r = sd_rtnl_message_enter_container(message, IFLA_LINKINFO);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
|
@ -427,11 +434,11 @@ int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *message) {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (netdev->ifindex > 0) {
|
if (netdev->ifindex > 0 && netdev->ifindex != ifindex) {
|
||||||
if (netdev->ifindex == ifindex)
|
log_error_netdev(netdev, "Could not set ifindex to %d, already set to %d",
|
||||||
return 0;
|
ifindex, netdev->ifindex);
|
||||||
else
|
netdev_enter_failed(netdev);
|
||||||
return -EEXIST;
|
return -EEXIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
netdev->ifindex = ifindex;
|
netdev->ifindex = ifindex;
|
||||||
|
|
Loading…
Reference in a new issue