Multipathd was shutting down whenever I tried to start up gdb monitoring
on it, because uxlsnr code didn't like getting a signal.
Also, having a lot of overlapping calls to the uxlsnr code caused really
bad things to happen because of a linked list oversight.
This patch corrects both.
Benjamin Marzinski, Redhat
#include <unistd.h>
#include <stdarg.h>
#include <fcntl.h>
+#include <errno.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
memset(c, 0, sizeof(*c));
c->fd = fd;
c->next = clients;
+ if (c->next) c->next->prev = c;
clients = c;
num_clients++;
}
poll_count = poll(polls, i, SLEEP_TIME);
if (poll_count == -1) {
+ if (errno == EINTR)
+ continue;
+
/* something went badly wrong! */
condlog(0, "poll");
exit(1);