chiark / gitweb /
socket: don't call accept() on FIFOs ever
authorLennart Poettering <lennart@poettering.net>
Fri, 23 Apr 2010 19:56:38 +0000 (21:56 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 23 Apr 2010 19:56:38 +0000 (21:56 +0200)
socket.c

index 827d7b5e97600f5771a5b7d828782e8da650702d..b517344e70ab19b52efb9a47677921c553373eab 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -119,9 +119,14 @@ static bool have_non_accept_socket(Socket *s) {
         if (!s->accept)
                 return true;
 
-        LIST_FOREACH(port, p, s->ports)
+        LIST_FOREACH(port, p, s->ports) {
+
+                if (p->type != SOCKET_SOCKET)
+                        return true;
+
                 if (!socket_address_can_accept(&p->address))
                         return true;
+        }
 
         return false;
 }
@@ -450,6 +455,7 @@ static int socket_watch_fds(Socket *s) {
 
                 p->fd_watch.data.socket_accept =
                         s->accept &&
+                        p->type == SOCKET_SOCKET &&
                         socket_address_can_accept(&p->address);
 
                 if ((r = unit_watch_fd(UNIT(s), p->fd, EPOLLIN, &p->fd_watch)) < 0)