mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
udev-builtin-net_driver: use correct interface name
Previously, when the interface name contains '!', the builtin command failed to get the driver of the interface.
This commit is contained in:
parent
bec2f4dc3e
commit
e3bc8d3449
@ -1,6 +1,7 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include "alloc-util.h"
|
||||
#include "device-private.h"
|
||||
#include "device-util.h"
|
||||
#include "errno-util.h"
|
||||
#include "ethtool-util.h"
|
||||
@ -13,16 +14,16 @@ static int builtin_net_driver_set_driver(UdevEvent *event, int argc, char **argv
|
||||
sd_device *dev = ASSERT_PTR(ASSERT_PTR(event)->dev);
|
||||
_cleanup_close_ int ethtool_fd = -EBADF;
|
||||
_cleanup_free_ char *driver = NULL;
|
||||
const char *sysname;
|
||||
const char *ifname;
|
||||
int r;
|
||||
|
||||
r = sd_device_get_sysname(dev, &sysname);
|
||||
r = device_get_ifname(dev, &ifname);
|
||||
if (r < 0)
|
||||
return log_device_warning_errno(dev, r, "Failed to get sysname: %m");
|
||||
return log_device_warning_errno(dev, r, "Failed to get network interface name: %m");
|
||||
|
||||
r = ethtool_get_driver(ðtool_fd, sysname, &driver);
|
||||
r = ethtool_get_driver(ðtool_fd, ifname, &driver);
|
||||
if (ERRNO_IS_NEG_NOT_SUPPORTED(r)) {
|
||||
log_device_debug_errno(dev, r, "Querying driver name via ethtool API is not supported by device '%s', ignoring: %m", sysname);
|
||||
log_device_debug_errno(dev, r, "Querying driver name via ethtool API is not supported by device '%s', ignoring: %m", ifname);
|
||||
return 0;
|
||||
}
|
||||
if (r == -ENODEV) {
|
||||
@ -30,7 +31,7 @@ static int builtin_net_driver_set_driver(UdevEvent *event, int argc, char **argv
|
||||
return 0;
|
||||
}
|
||||
if (r < 0)
|
||||
return log_device_warning_errno(dev, r, "Failed to get driver for '%s': %m", sysname);
|
||||
return log_device_warning_errno(dev, r, "Failed to get driver for '%s': %m", ifname);
|
||||
|
||||
return udev_builtin_add_property(event, "ID_NET_DRIVER", driver);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user