summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--libudev/docs/libudev-sections.txt1
-rw-r--r--libudev/libudev-monitor.c6
-rw-r--r--libudev/libudev-private.h1
-rw-r--r--libudev/libudev-util.c12
-rw-r--r--udev/udev-watch.c6
-rw-r--r--udev/udevd.c4
7 files changed, 7 insertions, 25 deletions
diff --git a/Makefile.am b/Makefile.am
index 84f165476d..2185614c43 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,7 +30,7 @@ CLEANFILES =
# libudev
# ------------------------------------------------------------------------------
LIBUDEV_CURRENT=5
-LIBUDEV_REVISION=0
+LIBUDEV_REVISION=1
LIBUDEV_AGE=5
SUBDIRS += libudev/docs
diff --git a/libudev/docs/libudev-sections.txt b/libudev/docs/libudev-sections.txt
index 4d70bca322..ff2dd363b1 100644
--- a/libudev/docs/libudev-sections.txt
+++ b/libudev/docs/libudev-sections.txt
@@ -83,6 +83,7 @@ udev_enumerate_add_nomatch_subsystem
udev_enumerate_add_match_sysattr
udev_enumerate_add_nomatch_sysattr
udev_enumerate_add_match_property
+udev_enumerate_add_match_sysname
udev_enumerate_add_syspath
udev_enumerate_scan_devices
udev_enumerate_scan_subsystems
diff --git a/libudev/libudev-monitor.c b/libudev/libudev-monitor.c
index ee855afac4..96c153fbd7 100644
--- a/libudev/libudev-monitor.c
+++ b/libudev/libudev-monitor.c
@@ -139,13 +139,12 @@ struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char
util_strscpy(&udev_monitor->sun.sun_path[1], sizeof(udev_monitor->sun.sun_path)-1, socket_path);
udev_monitor->addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(socket_path)+1;
}
- udev_monitor->sock = socket(AF_LOCAL, SOCK_DGRAM, 0);
+ udev_monitor->sock = socket(AF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0);
if (udev_monitor->sock == -1) {
err(udev, "error getting socket: %m\n");
free(udev_monitor);
return NULL;
}
- util_set_fd_cloexec(udev_monitor->sock);
dbg(udev, "monitor %p created with '%s'\n", udev_monitor, socket_path);
return udev_monitor;
@@ -197,13 +196,12 @@ struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char
if (udev_monitor == NULL)
return NULL;
- udev_monitor->sock = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
+ udev_monitor->sock = socket(PF_NETLINK, SOCK_DGRAM|SOCK_CLOEXEC, NETLINK_KOBJECT_UEVENT);
if (udev_monitor->sock == -1) {
err(udev, "error getting socket: %m\n");
free(udev_monitor);
return NULL;
}
- util_set_fd_cloexec(udev_monitor->sock);
udev_monitor->snl.nl_family = AF_NETLINK;
udev_monitor->snl.nl_groups = group;
diff --git a/libudev/libudev-private.h b/libudev/libudev-private.h
index 285b9d48c1..28110d191c 100644
--- a/libudev/libudev-private.h
+++ b/libudev/libudev-private.h
@@ -205,7 +205,6 @@ size_t util_strscpyl(char *dest, size_t size, const char *src, ...) __attribute_
int udev_util_replace_whitespace(const char *str, char *to, size_t len);
int udev_util_replace_chars(char *str, const char *white);
int udev_util_encode_string(const char *str, char *str_enc, size_t len);
-void util_set_fd_cloexec(int fd);
unsigned int util_string_hash32(const char *str);
/* libudev-util-private.c */
diff --git a/libudev/libudev-util.c b/libudev/libudev-util.c
index 9a656b5a98..c0209f9cc6 100644
--- a/libudev/libudev-util.c
+++ b/libudev/libudev-util.c
@@ -481,18 +481,6 @@ err:
return -1;
}
-void util_set_fd_cloexec(int fd)
-{
- int flags;
-
- flags = fcntl(fd, F_GETFD);
- if (flags < 0)
- flags = FD_CLOEXEC;
- else
- flags |= FD_CLOEXEC;
- fcntl(fd, F_SETFD, flags);
-}
-
unsigned int util_string_hash32(const char *str)
{
unsigned int hash = 0;
diff --git a/udev/udev-watch.c b/udev/udev-watch.c
index 102e16f81d..d67083b51b 100644
--- a/udev/udev-watch.c
+++ b/udev/udev-watch.c
@@ -38,10 +38,8 @@ static int inotify_fd = -1;
*/
int udev_watch_init(struct udev *udev)
{
- inotify_fd = inotify_init();
- if (inotify_fd >= 0)
- util_set_fd_cloexec(inotify_fd);
- else
+ inotify_fd = inotify_init1(IN_CLOEXEC);
+ if (inotify_fd < 0)
err(udev, "inotify_init failed: %m\n");
return inotify_fd;
}
diff --git a/udev/udevd.c b/udev/udevd.c
index dfdbb4c245..88e117f50a 100644
--- a/udev/udevd.c
+++ b/udev/udevd.c
@@ -223,7 +223,6 @@ static void worker_new(struct event *event)
/* allow the main daemon netlink address to send devices to the worker */
udev_monitor_allow_unicast_sender(worker_monitor, monitor);
udev_monitor_enable_receiving(worker_monitor);
- util_set_fd_cloexec(udev_monitor_get_fd(worker_monitor));
worker = calloc(1, sizeof(struct worker));
if (worker == NULL)
@@ -945,14 +944,13 @@ int main(int argc, char *argv[])
}
/* unnamed socket from workers to the main daemon */
- if (socketpair(AF_LOCAL, SOCK_DGRAM, 0, worker_watch) < 0) {
+ if (socketpair(AF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0, worker_watch) < 0) {
fprintf(stderr, "error getting socketpair\n");
err(udev, "error getting socketpair\n");
rc = 6;
goto exit;
}
pfd[FD_WORKER].fd = worker_watch[READ_END];
- util_set_fd_cloexec(worker_watch[WRITE_END]);
rules = udev_rules_new(udev, resolve_names);
if (rules == NULL) {