chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
delete outdated and unmaintained writing_udev_rules
[elogind.git]
/
udev
/
udev-event.c
diff --git
a/udev/udev-event.c
b/udev/udev-event.c
index 3a6c71abe904efeeacb40f3a464dce4edd4e75aa..4e1773ffeaf156807385d625f7499d62da12da0d 100644
(file)
--- a/
udev/udev-event.c
+++ b/
udev/udev-event.c
@@
-23,9
+23,10
@@
#include <errno.h>
#include <ctype.h>
#include <string.h>
#include <errno.h>
#include <ctype.h>
#include <string.h>
+#include <time.h>
+#include <net/if.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
-#include <net/if.h>
#include <linux/sockios.h>
#include "udev.h"
#include <linux/sockios.h>
#include "udev.h"
@@
-491,8
+492,7
@@
static int rename_netif(struct udev_event *event)
}
/* free our own name, another process may wait for us */
}
/* free our own name, another process may wait for us */
- util_strscpy(ifr.ifr_newname, IFNAMSIZ, udev_device_get_sysname(dev));
- util_strscpy(ifr.ifr_newname, IFNAMSIZ, "_rename");
+ util_strscpyl(ifr.ifr_newname, IFNAMSIZ, udev_device_get_sysname(dev), "_rename", NULL);
err = ioctl(sk, SIOCSIFNAME, &ifr);
if (err != 0) {
err(event->udev, "error changing netif name %s to %s: %m\n",
err = ioctl(sk, SIOCSIFNAME, &ifr);
if (err != 0) {
err(event->udev, "error changing netif name %s to %s: %m\n",
@@
-505,6
+505,8
@@
static int rename_netif(struct udev_event *event)
util_strscpy(ifr.ifr_newname, IFNAMSIZ, event->name);
loop = 90 * 20;
while (loop--) {
util_strscpy(ifr.ifr_newname, IFNAMSIZ, event->name);
loop = 90 * 20;
while (loop--) {
+ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 };
+
err = ioctl(sk, SIOCSIFNAME, &ifr);
if (err == 0) {
rename_netif_kernel_log(ifr);
err = ioctl(sk, SIOCSIFNAME, &ifr);
if (err == 0) {
rename_netif_kernel_log(ifr);
@@
-518,7
+520,7
@@
static int rename_netif(struct udev_event *event)
}
dbg(event->udev, "wait for netif '%s' to become free, loop=%i\n",
event->name, (90 * 20) - loop);
}
dbg(event->udev, "wait for netif '%s' to become free, loop=%i\n",
event->name, (90 * 20) - loop);
-
usleep(1000 * 1000 / 20
);
+
nanosleep(&duration, NULL
);
}
}
exit:
}
}
exit:
@@
-566,12
+568,6
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
event->tmp_node = NULL;
}
event->tmp_node = NULL;
}
- if (event->ignore_device) {
- info(event->udev, "device event will be ignored\n");
- delete_kdevnode = 1;
- goto exit_add;
- }
-
if (event->name != NULL && event->name[0] == '\0') {
info(event->udev, "device node creation suppressed\n");
delete_kdevnode = 1;
if (event->name != NULL && event->name[0] == '\0') {
info(event->udev, "device node creation suppressed\n");
delete_kdevnode = 1;
@@
-636,10
+632,6
@@
exit_add:
udev_device_delete_db(dev);
udev_rules_apply_to_event(rules, event);
udev_device_delete_db(dev);
udev_rules_apply_to_event(rules, event);
- if (event->ignore_device) {
- info(event->udev, "device event will be ignored\n");
- goto exit;
- }
if (event->name == NULL)
goto exit;
if (event->name == NULL)
goto exit;
@@
-685,17
+677,13
@@
exit_add:
char devnode[UTIL_PATH_SIZE];
info(event->udev, "'%s' not found in database, using kernel name '%s'\n",
char devnode[UTIL_PATH_SIZE];
info(event->udev, "'%s' not found in database, using kernel name '%s'\n",
- udev_device_get_syspath(dev), udev_device_get_
sys
name(dev));
+ udev_device_get_syspath(dev), udev_device_get_
knode
name(dev));
util_strscpyl(devnode, sizeof(devnode),
util_strscpyl(devnode, sizeof(devnode),
- udev_get_dev_path(event->udev), "/", udev_device_get_
sys
name(dev), NULL);
+ udev_get_dev_path(event->udev), "/", udev_device_get_
knode
name(dev), NULL);
udev_device_set_devnode(dev, devnode);
}
udev_rules_apply_to_event(rules, event);
udev_device_set_devnode(dev, devnode);
}
udev_rules_apply_to_event(rules, event);
- if (event->ignore_device) {
- info(event->udev, "device event will be ignored\n");
- goto exit;
- }
if (udev_device_get_ignore_remove(dev)) {
info(event->udev, "ignore_remove for '%s'\n", udev_device_get_devnode(dev));
if (udev_device_get_ignore_remove(dev)) {
info(event->udev, "ignore_remove for '%s'\n", udev_device_get_devnode(dev));
@@
-708,8
+696,6
@@
exit_add:
/* default devices */
udev_rules_apply_to_event(rules, event);
/* default devices */
udev_rules_apply_to_event(rules, event);
- if (event->ignore_device)
- info(event->udev, "device event will be ignored\n");
if (strcmp(udev_device_get_action(dev), "remove") != 0)
udev_device_update_db(dev);
if (strcmp(udev_device_get_action(dev), "remove") != 0)
udev_device_update_db(dev);
@@
-719,7
+705,7
@@
exit:
return err;
}
return err;
}
-int udev_event_execute_run(struct udev_event *event)
+int udev_event_execute_run(struct udev_event *event
, const sigset_t *sigmask
)
{
struct udev_list_entry *list_entry;
int err = 0;
{
struct udev_list_entry *list_entry;
int err = 0;
@@
-742,7
+728,7
@@
int udev_event_execute_run(struct udev_event *event)
udev_event_apply_format(event, cmd, program, sizeof(program));
envp = udev_device_get_properties_envp(event->dev);
udev_event_apply_format(event, cmd, program, sizeof(program));
envp = udev_device_get_properties_envp(event->dev);
- if (util_run_program(event->udev, program, envp, NULL, 0, NULL) != 0) {
+ if (util_run_program(event->udev, program, envp, NULL, 0, NULL
, sigmask
) != 0) {
if (udev_list_entry_get_flag(list_entry))
err = -1;
}
if (udev_list_entry_get_flag(list_entry))
err = -1;
}