From e60fa01486fe2cd1a5f38f059064ff091a4b21b0 Mon Sep 17 00:00:00 2001 From: Joe Marcus Clarke Date: Wed, 13 Jul 2005 17:28:11 +0000 Subject: [PATCH] * Open permissions on /var/run/devd.pipe so that any user can read devd events from this socket * Enable non-blocking I/O on devd.pipe to keep clients from wedging devd. If a write(2) on devd.pipe would block, the client in question will be removed [1] Requested by: rwatson [1] Approved by: imp --- sbin/devd/devd.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sbin/devd/devd.cc b/sbin/devd/devd.cc index 9101ecf05571..ad3ef4389505 100644 --- a/sbin/devd/devd.cc +++ b/sbin/devd/devd.cc @@ -672,11 +672,13 @@ create_socket(const char *name) strlcpy(sun.sun_path, name, sizeof(sun.sun_path)); slen = SUN_LEN(&sun); unlink(name); + if (fcntl(fd, F_SETFL, O_NONBLOCK) < 0) + err(1, "fcntl"); if (bind(fd, (struct sockaddr *) & sun, slen) < 0) err(1, "bind"); listen(fd, 4); chown(name, 0, 0); /* XXX - root.wheel */ - chmod(name, 0660); + chmod(name, 0666); return (fd); }