#include <fcntl.h>
#include <stdio.h>
-#include <avahi-common/llist.h>
-#include <avahi-common/malloc.h>
-
+#include "llist.h"
+#include "malloc.h"
+#include "timeval.h"
#include "simple-watch.h"
struct AvahiWatch {
int avahi_simple_poll_run(AvahiSimplePoll *s) {
assert(s);
- assert(s->state == STATE_PREPARED);
+ assert(s->state == STATE_PREPARED || s->state == STATE_FAILURE);
s->state = STATE_RUNNING;
return &s->api;
}
-static int system_poll(struct pollfd *ufds, unsigned int nfds, int timeout, void *userdata) {
+static int system_poll(struct pollfd *ufds, unsigned int nfds, int timeout, AVAHI_GCC_UNUSED void *userdata) {
return poll(ufds, nfds, timeout);
}
for (;;)
if ((r = avahi_simple_poll_iterate(s, -1)) != 0)
- return r;
+ if (r >= 0 || errno != EINTR)
+ return r;
}