chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libudev: ctrl - log accept4() errors
[elogind.git]
/
libudev
/
libudev-ctrl.c
diff --git
a/libudev/libudev-ctrl.c
b/libudev/libudev-ctrl.c
index 7fa2d1d535cd7ad38c49b75d34f77ba37518e129..61e02433834e5a73e1d88748652230fd38925c1c 100644
(file)
--- a/
libudev/libudev-ctrl.c
+++ b/
libudev/libudev-ctrl.c
@@
-91,7
+91,7
@@
struct udev_ctrl *udev_ctrl_new_from_socket_fd(struct udev *udev, const char *so
return NULL;
if (fd < 0) {
return NULL;
if (fd < 0) {
- uctrl->sock = socket(AF_LOCAL, SOCK_SEQPACKET|SOCK_CLOEXEC, 0);
+ uctrl->sock = socket(AF_LOCAL, SOCK_SEQPACKET|SOCK_
NONBLOCK|SOCK_
CLOEXEC, 0);
if (uctrl->sock < 0) {
err(udev, "error getting socket: %m\n");
udev_ctrl_unref(uctrl);
if (uctrl->sock < 0) {
err(udev, "error getting socket: %m\n");
udev_ctrl_unref(uctrl);
@@
-184,8
+184,10
@@
struct udev_ctrl_connection *udev_ctrl_get_connection(struct udev_ctrl *uctrl)
conn->refcount = 1;
conn->uctrl = uctrl;
conn->refcount = 1;
conn->uctrl = uctrl;
- conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC);
+ conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC
|SOCK_NONBLOCK
);
if (conn->sock < 0) {
if (conn->sock < 0) {
+ if (errno != EINTR)
+ err(uctrl->udev, "unable to receive ctrl connection: %m\n");
free(conn);
return NULL;
}
free(conn);
return NULL;
}