chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
scsi_id: fix truncated model in by-id device links
[elogind.git]
/
src
/
udev
/
udev-event.c
diff --git
a/src/udev/udev-event.c
b/src/udev/udev-event.c
index afbfebb3a9934394da7cff77dc248fda9650836a..e6f405b74a48d0055381fdb60d859932f2012c6a 100644
(file)
--- a/
src/udev/udev-event.c
+++ b/
src/udev/udev-event.c
@@
-86,8
+86,8
@@
size_t udev_event_apply_format(struct udev_event *event, const char *src, char *
SUBST_SYS,
};
static const struct subst_map {
SUBST_SYS,
};
static const struct subst_map {
- char *name;
- char fmt;
+ c
onst c
har *name;
+ c
onst c
har fmt;
enum subst_type type;
} map[] = {
{ .name = "devnode", .fmt = 'N', .type = SUBST_DEVNODE },
enum subst_type type;
} map[] = {
{ .name = "devnode", .fmt = 'N', .type = SUBST_DEVNODE },
@@
-132,8
+132,8
@@
size_t udev_event_apply_format(struct udev_event *event, const char *src, char *
goto copy;
}
goto copy;
}
- for (i = 0; i <
ARRAY_SIZE
(map); i++) {
- if (st
rncmp(&from[1], map[i].name, strlen(map[i].name)) == 0
) {
+ for (i = 0; i <
ELEMENTSOF
(map); i++) {
+ if (st
artswith(&from[1], map[i].name)
) {
type = map[i].type;
from += strlen(map[i].name)+1;
goto subst;
type = map[i].type;
from += strlen(map[i].name)+1;
goto subst;
@@
-148,7
+148,7
@@
size_t udev_event_apply_format(struct udev_event *event, const char *src, char *
goto copy;
}
goto copy;
}
- for (i = 0; i <
ARRAY_SIZE
(map); i++) {
+ for (i = 0; i <
ELEMENTSOF
(map); i++) {
if (from[1] == map[i].fmt) {
type = map[i].type;
from += 2;
if (from[1] == map[i].fmt) {
type = map[i].type;
from += 2;
@@
-318,46
+318,38
@@
subst:
if (dev_parent == NULL)
break;
devnode = udev_device_get_devnode(dev_parent);
if (dev_parent == NULL)
break;
devnode = udev_device_get_devnode(dev_parent);
- if (devnode != NULL) {
- size_t devlen = strlen(udev_get_dev_path(event->udev))+1;
-
- l = util_strpcpy(&s, l, &devnode[devlen]);
- }
+ if (devnode != NULL)
+ l = util_strpcpy(&s, l, devnode + strlen(TEST_PREFIX "/dev/"));
break;
}
case SUBST_DEVNODE:
if (udev_device_get_devnode(dev) != NULL)
l = util_strpcpy(&s, l, udev_device_get_devnode(dev));
break;
break;
}
case SUBST_DEVNODE:
if (udev_device_get_devnode(dev) != NULL)
l = util_strpcpy(&s, l, udev_device_get_devnode(dev));
break;
- case SUBST_NAME:
{
- if (event->name != NULL)
{
+ case SUBST_NAME:
+ if (event->name != NULL)
l = util_strpcpy(&s, l, event->name);
l = util_strpcpy(&s, l, event->name);
- } else if (udev_device_get_devnode(dev) != NULL) {
- size_t devlen = strlen(udev_get_dev_path(event->udev))+1;
-
- l = util_strpcpy(&s, l, &udev_device_get_devnode(dev)[devlen]);
- } else {
+ else if (udev_device_get_devnode(dev) != NULL)
+ l = util_strpcpy(&s, l, udev_device_get_devnode(dev) + strlen(TEST_PREFIX "/dev/"));
+ else
l = util_strpcpy(&s, l, udev_device_get_sysname(dev));
l = util_strpcpy(&s, l, udev_device_get_sysname(dev));
- }
break;
break;
- }
case SUBST_LINKS: {
case SUBST_LINKS: {
- size_t devlen = strlen(udev_get_dev_path(event->udev))+1;
struct udev_list_entry *list_entry;
list_entry = udev_device_get_devlinks_list_entry(dev);
if (list_entry == NULL)
break;
struct udev_list_entry *list_entry;
list_entry = udev_device_get_devlinks_list_entry(dev);
if (list_entry == NULL)
break;
- l = util_strpcpy(&s, l,
&udev_list_entry_get_name(list_entry)[devlen]
);
+ l = util_strpcpy(&s, l,
udev_list_entry_get_name(list_entry) + strlen(TEST_PREFIX "/dev/")
);
udev_list_entry_foreach(list_entry, udev_list_entry_get_next(list_entry))
udev_list_entry_foreach(list_entry, udev_list_entry_get_next(list_entry))
- l = util_strpcpyl(&s, l, " ",
&udev_list_entry_get_name(list_entry)[devlen]
, NULL);
+ l = util_strpcpyl(&s, l, " ",
udev_list_entry_get_name(list_entry) + strlen(TEST_PREFIX "/dev/")
, NULL);
break;
}
case SUBST_ROOT:
break;
}
case SUBST_ROOT:
- l = util_strpcpy(&s, l,
udev_get_dev_path(event->udev)
);
+ l = util_strpcpy(&s, l,
TEST_PREFIX "/dev"
);
break;
case SUBST_SYS:
break;
case SUBST_SYS:
- l = util_strpcpy(&s, l,
udev_get_sys_path(event->udev)
);
+ l = util_strpcpy(&s, l,
TEST_PREFIX "/sys"
);
break;
case SUBST_ENV:
if (attr == NULL) {
break;
case SUBST_ENV:
if (attr == NULL) {
@@
-386,7
+378,6
@@
static int spawn_exec(struct udev_event *event,
const char *cmd, char *const argv[], char **envp, const sigset_t *sigmask,
int fd_stdout, int fd_stderr)
{
const char *cmd, char *const argv[], char **envp, const sigset_t *sigmask,
int fd_stdout, int fd_stderr)
{
- struct udev *udev = event->udev;
int err;
int fd;
int err;
int fd;
@@
-433,7
+424,6
@@
static void spawn_read(struct udev_event *event,
int fd_stdout, int fd_stderr,
char *result, size_t ressize)
{
int fd_stdout, int fd_stderr,
char *result, size_t ressize)
{
- struct udev *udev = event->udev;
size_t respos = 0;
int fd_ep = -1;
struct epoll_event ep_outpipe, ep_errpipe;
size_t respos = 0;
int fd_ep = -1;
struct epoll_event ep_outpipe, ep_errpipe;
@@
-488,7
+478,7
@@
static void spawn_read(struct udev_event *event,
timeout = -1;
}
timeout = -1;
}
- fdcount = epoll_wait(fd_ep, ev,
ARRAY_SIZE
(ev), timeout);
+ fdcount = epoll_wait(fd_ep, ev,
ELEMENTSOF
(ev), timeout);
if (fdcount < 0) {
if (errno == EINTR)
continue;
if (fdcount < 0) {
if (errno == EINTR)
continue;
@@
-553,7
+543,6
@@
out:
static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid)
{
static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid)
{
- struct udev *udev = event->udev;
struct pollfd pfd[1];
int err = 0;
struct pollfd pfd[1];
int err = 0;
@@
-718,8
+707,8
@@
int udev_event_spawn(struct udev_event *event,
log_debug("starting '%s'\n", cmd);
log_debug("starting '%s'\n", cmd);
-
err =
spawn_exec(event, cmd, argv, envp, sigmask,
-
outpipe[WRITE_END], errpipe[WRITE_END]);
+ spawn_exec(event, cmd, argv, envp, sigmask,
+ outpipe[WRITE_END], errpipe[WRITE_END]);
_exit(2 );
case -1:
_exit(2 );
case -1:
@@
-939,7
+928,6
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
udev_device_unref(event->dev_db);
event->dev_db = NULL;
}
udev_device_unref(event->dev_db);
event->dev_db = NULL;
}
-out:
return err;
}
return err;
}