Module Name:    src
Committed By:   martin
Date:           Mon Nov  5 08:34:20 UTC 2018

Modified Files:
        src/usr.sbin/syslogd: syslogd.c

Log Message:
Make it compilable with gcc


To generate a diff of this commit:
cvs rdiff -u -r1.127 -r1.128 src/usr.sbin/syslogd/syslogd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/syslogd/syslogd.c
diff -u src/usr.sbin/syslogd/syslogd.c:1.127 src/usr.sbin/syslogd/syslogd.c:1.128
--- src/usr.sbin/syslogd/syslogd.c:1.127	Sun Nov  4 20:45:21 2018
+++ src/usr.sbin/syslogd/syslogd.c	Mon Nov  5 08:34:20 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: syslogd.c,v 1.127 2018/11/04 20:45:21 roy Exp $	*/
+/*	$NetBSD: syslogd.c,v 1.128 2018/11/05 08:34:20 martin Exp $	*/
 
 /*
  * Copyright (c) 1983, 1988, 1993, 1994
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 19
 #if 0
 static char sccsid[] = "@(#)syslogd.c	8.3 (Berkeley) 4/4/94";
 #else
-__RCSID("$NetBSD: syslogd.c,v 1.127 2018/11/04 20:45:21 roy Exp $");
+__RCSID("$NetBSD: syslogd.c,v 1.128 2018/11/05 08:34:20 martin Exp $");
 #endif
 #endif /* not lint */
 
@@ -75,6 +75,9 @@ __RCSID("$NetBSD: syslogd.c,v 1.127 2018
 #include "syslogd.h"
 #include "extern.h"
 
+/* Minimum size of the logpath socket buffer */
+#define	RCVBUFLEN		16384
+
 #ifndef DISABLE_SIGN
 #include "sign.h"
 struct sign_global_t GlobalSign = {
@@ -493,6 +496,9 @@ getgroup:
 		die(0, 0, NULL);
 	}
 	for (j = 0, pp = LogPaths; *pp; pp++, j++) {
+		int buf_len;
+		socklen_t socklen = sizeof(buf_len);
+
 		DPRINTF(D_NET, "Making unix dgram socket `%s'\n", *pp);
 		unlink(*pp);
 		memset(&sunx, 0, sizeof(sunx));
@@ -507,6 +513,19 @@ getgroup:
 		}
 		setsockbuf(funix[j], *pp);
 		DPRINTF(D_NET, "Listening on unix dgram socket `%s'\n", *pp);
+		if (getsockopt(funix[j], SOL_SOCKET, SO_RCVBUF,
+			       &buf_len, &socklen) == -1) {
+			logerror("getsockopt: SO_RCVBUF: `%s'", *pp);
+			continue;
+		}
+		if (buf_len >= RCVBUFLEN)
+			continue;
+		buf_len = RCVBUFLEN;
+		if (setsockopt(funix[j], SOL_SOCKET, SO_RCVBUF,
+			       &buf_len, socklen) == -1) {
+			logerror("setsockopt: SO_RCVBUF: `%s'", *pp);
+			continue;
+		}
 	}
 
 	if ((fklog = open(_PATH_KLOG, O_RDONLY, 0)) < 0) {

Reply via email to