diff options
author | Tom Gundersen <teg@jklm.no> | 2014-01-03 18:20:11 +0100 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-01-03 18:20:11 +0100 |
commit | aa3437a573ed2a2b2a03c9649fe11d27b40a772b (patch) | |
tree | 052599e81fc960b1dbfa8dfb0162967ae5b47051 /src/network | |
parent | 2672953bde548f3648eb6a24dbda415604262cea (diff) |
networkd: print the ifindex of added links
This debug information may be useful when comapring to dropped rtnetlink messages.
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/networkd-link.c | 12 | ||||
-rw-r--r-- | src/network/networkd-manager.c | 7 | ||||
-rw-r--r-- | src/network/networkd.h | 2 |
3 files changed, 13 insertions, 8 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 889efc8c2f..bc8ca21c82 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -89,7 +89,7 @@ void link_free(Link *link) { free(link); } -int link_add(Manager *m, struct udev_device *device) { +int link_add(Manager *m, struct udev_device *device, Link **ret) { Link *link; Network *network; int r; @@ -101,18 +101,22 @@ int link_add(Manager *m, struct udev_device *device) { ifindex = udev_device_get_ifindex(device); link = hashmap_get(m->links, &ifindex); - if (link) + if (link) { + *ret = link; return -EEXIST; + } r = link_new(m, device, &link); if (r < 0) return r; + *ret = link; + devtype = udev_device_get_devtype(device); if (streq_ptr(devtype, "bridge")) { r = bridge_set_link(m, link); - if (r < 0) - return r == -ENOENT ? 0 : r; + if (r < 0 && r != -ENOENT) + return r; } r = network_get(m, device, &network); diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 11c3efe901..7b0c5d7653 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -143,17 +143,18 @@ static int manager_process_link(Manager *m, struct udev_device *device) { link_free(link); } else { - r = link_add(m, device); + r = link_add(m, device, &link); if (r < 0) { if (r == -EEXIST) log_debug("%s: link already exists, ignoring", - udev_device_get_sysname(device)); + link->ifname); else log_error("%s: could not handle link: %s", udev_device_get_sysname(device), strerror(-r)); } else - log_debug("%s: link added", udev_device_get_sysname(device)); + log_debug("%s: link (with ifindex %" PRIu64") added", + link->ifname, link->ifindex); } return 0; diff --git a/src/network/networkd.h b/src/network/networkd.h index cad81d9b71..3b2908090f 100644 --- a/src/network/networkd.h +++ b/src/network/networkd.h @@ -269,7 +269,7 @@ int config_parse_label(const char *unit, const char *filename, unsigned line, int link_new(Manager *manager, struct udev_device *device, Link **ret); void link_free(Link *link); -int link_add(Manager *manager, struct udev_device *device); +int link_add(Manager *manager, struct udev_device *device, Link **ret); int link_configure(Link *link); int link_update(Link *link, sd_rtnl_message *message); |