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);
}
sk = socket(PF_INET, SOCK_DGRAM, 0);
if (sk < 0) {
+ err = -errno;
err(event->udev, "error opening socket: %m\n");
- return -errno;
+ return err;
}
memset(&ifr, 0x00, sizeof(struct ifreq));
struct udev_device *dev = event->dev;
int err = 0;
- if (udev_device_get_sysname_old(dev) != NULL &&
- strcmp(udev_device_get_sysname_old(dev), udev_device_get_sysname(dev)) != 0) {
- udev_device_rename_db(dev);
- info(event->udev, "moved database from '%s:%s' to '%s:%s'\n",
- udev_device_get_subsystem(dev), udev_device_get_sysname_old(dev),
- udev_device_get_subsystem(dev), udev_device_get_sysname(dev));
- }
+ if (udev_device_get_subsystem(dev) == NULL)
+ return -1;
if (strcmp(udev_device_get_action(dev), "remove") == 0) {
udev_device_read_db(dev);
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;
/* set device node name */
util_strscpyl(filename, sizeof(filename), udev_get_dev_path(event->udev), "/", event->name, NULL);
udev_device_set_devnode(dev, filename);
- }
-
- udev_device_update_db(dev);
- udev_device_tag_index(dev, event->dev_db, true);
- if (major(udev_device_get_devnum(dev)) != 0) {
/* remove/update possible left-over symlinks from old database entry */
if (event->dev_db != NULL)
udev_node_update_old_links(dev, event->dev_db);
err = udev_node_add(dev, event->mode, event->uid, event->gid);
}
+ udev_device_update_db(dev);
+ udev_device_tag_index(dev, event->dev_db, true);
+ udev_device_set_is_initialized(dev);
+
udev_device_unref(event->dev_db);
event->dev_db = NULL;
}