[syslog-ng] "MSG_DONTWAIT undeclared"-error during compiling
libol-0.3.17 on HP-UX 11.00/11.11
Balazs Scheidler
bazsi at balabit.hu
Mon Jan 23 10:01:51 CET 2006
On Fri, 2006-01-20 at 15:37 +0100, Tob_Sch at gmx.de wrote:
> Hi,
>
> compiling libol-0.3.16 (and syslog-ng-1.6.8) on HP-UX 11.00/11.11 worked
> without any problems.
> Today, I tried to compile libol-0.3.17 (and syslog-ng-1.6.9).
Can you check if the below patch works?
diff -u -r1.45 io.c
--- io.c 23 Nov 2005 08:49:21 -0000 1.45
+++ io.c 23 Jan 2006 09:01:03 -0000
@@ -490,13 +490,27 @@
int res;
UINT8 eofbuf[1];
+#ifdef MSG_DONTWAIT
res = recv(self->fd, eofbuf, 1, MSG_PEEK | MSG_DONTWAIT);
+#else
+ {
+ int old_flags;
+
+ old_flags = fcntl(self->fd, F_GETFL);
+ fcntl(self->fd, F_SETFL, old_flags | O_NONBLOCK);
+ res = recv(self->fd, eofbuf, 1, MSG_PEEK);
+ if ((old_flags & O_NONBLOCK) == 0)
+ fcntl(self->fd, F_SETFL, old_flags);
+ }
+#endif
+
if (res == 0) {
/* EOF detected */
werror("io.c: do_write: write() failed, EOF detected\n");
errno = ECONNRESET;
return -1;
}
+
res = write(self->fd, data, length);
saved_errno = errno;
--
Bazsi
More information about the syslog-ng
mailing list