chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
check ifindex > 0 instead of subsystem == "net"
[elogind.git]
/
udev
/
udev-event.c
diff --git
a/udev/udev-event.c
b/udev/udev-event.c
index 9b5326bf224948dc7bfcc0de49eae5cbf6862a6f..02a1767b1f8d7bd78c5d66af37344d3f66bc571e 100644
(file)
--- a/
udev/udev-event.c
+++ b/
udev/udev-event.c
@@
-454,8
+454,8
@@
static void rename_netif_kernel_log(struct ifreq ifr)
return;
}
return;
}
- fprintf(f, "<6>udev: renamed network interface %s to %s\n",
- ifr.ifr_name, ifr.ifr_newname);
+ fprintf(f, "<6>udev
[%u]
: renamed network interface %s to %s\n",
+
getpid(),
ifr.ifr_name, ifr.ifr_newname);
fclose(f);
}
fclose(f);
}
@@
-472,8
+472,9
@@
static int rename_netif(struct udev_event *event)
sk = socket(PF_INET, SOCK_DGRAM, 0);
if (sk < 0) {
sk = socket(PF_INET, SOCK_DGRAM, 0);
if (sk < 0) {
+ err = -errno;
err(event->udev, "error opening socket: %m\n");
err(event->udev, "error opening socket: %m\n");
- return
-errno
;
+ return
err
;
}
memset(&ifr, 0x00, sizeof(struct ifreq));
}
memset(&ifr, 0x00, sizeof(struct ifreq));
@@
-534,6
+535,9
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
struct udev_device *dev = event->dev;
int err = 0;
struct udev_device *dev = event->dev;
int err = 0;
+ if (udev_device_get_subsystem(dev) == NULL)
+ return -1;
+
if (strcmp(udev_device_get_action(dev), "remove") == 0) {
udev_device_read_db(dev);
udev_device_delete_db(dev);
if (strcmp(udev_device_get_action(dev), "remove") == 0) {
udev_device_read_db(dev);
udev_device_delete_db(dev);
@@
-560,7
+564,7
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
udev_rules_apply_to_event(rules, event);
/* rename a new network interface, if needed */
udev_rules_apply_to_event(rules, event);
/* rename a new network interface, if needed */
- if (
strcmp(udev_device_get_subsystem(dev), "net") ==
0 && strcmp(udev_device_get_action(dev), "add") == 0 &&
+ if (
udev_device_get_ifindex(dev) >
0 && strcmp(udev_device_get_action(dev), "add") == 0 &&
event->name != NULL && strcmp(event->name, udev_device_get_sysname(dev)) != 0) {
char syspath[UTIL_PATH_SIZE];
char *pos;
event->name != NULL && strcmp(event->name, udev_device_get_sysname(dev)) != 0) {
char syspath[UTIL_PATH_SIZE];
char *pos;