From: Lennart Poettering Date: Fri, 23 Apr 2010 20:11:13 +0000 (+0200) Subject: socket: fix bitfields in fd watches X-Git-Tag: v1~468 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=cabab516b38fbb2146bb62980b6770b1f70403fa socket: fix bitfields in fd watches --- diff --git a/manager.h b/manager.h index a6c330ae2..3790cfd28 100644 --- a/manager.h +++ b/manager.h @@ -71,9 +71,9 @@ struct Watch { union Unit *unit; DBusWatch *bus_watch; DBusTimeout *bus_timeout; - bool socket_accept; } data; - bool fd_is_dupped; + bool fd_is_dupped:1; + bool socket_accept:1; }; #include "unit.h" diff --git a/socket.c b/socket.c index b517344e7..cb065b75b 100644 --- a/socket.c +++ b/socket.c @@ -453,7 +453,7 @@ static int socket_watch_fds(Socket *s) { if (p->fd < 0) continue; - p->fd_watch.data.socket_accept = + p->fd_watch.socket_accept = s->accept && p->type == SOCKET_SOCKET && socket_address_can_accept(&p->address); @@ -1094,7 +1094,7 @@ static void socket_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { goto fail; } - if (w->data.socket_accept) { + if (w->socket_accept) { for (;;) { if ((cfd = accept4(fd, NULL, NULL, SOCK_NONBLOCK)) < 0) {