summaryrefslogtreecommitdiffstats
path: root/usr.sbin/syslogd
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2004-11-11 09:39:04 +0000
committerglebius <glebius@FreeBSD.org>2004-11-11 09:39:04 +0000
commitdc109677f9c0d4a165d01451145032213f8278d0 (patch)
treee10f5566bade0e90e48d1a055642ab70ebb1519b /usr.sbin/syslogd
parent385d6f2851b5108bd2615ea8e79b3124a832dd06 (diff)
downloadFreeBSD-src-dc109677f9c0d4a165d01451145032213f8278d0.zip
FreeBSD-src-dc109677f9c0d4a165d01451145032213f8278d0.tar.gz
Double receive buffer size on sockets.
PR: bin/72366 Ok'd by: dwmalone Approved by: julian (mentor) Obtained from: OpenBSD MFC after: 1 month
Diffstat (limited to 'usr.sbin/syslogd')
-rw-r--r--usr.sbin/syslogd/syslogd.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index ed266d4..247ca21 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -336,6 +336,7 @@ static void unmapped(struct sockaddr *);
static void wallmsg(struct filed *, struct iovec *);
static int waitdaemon(int, int, int);
static void timedout(int);
+static void double_rbuf(int);
int
main(int argc, char *argv[])
@@ -510,8 +511,11 @@ main(int argc, char *argv[])
dprintf("cannot create %s (%d)\n", fx->name, errno);
if (fx == &funix_default || fx == &funix_secure)
die(0);
- else
+ else {
STAILQ_REMOVE(&funixes, fx, funix, next);
+ continue;
+ }
+ double_rbuf(fx->s);
}
}
if (SecureMode <= 1)
@@ -2560,6 +2564,8 @@ socksetup(int af, const char *bindhostname)
continue;
}
+ double_rbuf(*s);
+
(*socks)++;
s++;
}
@@ -2576,3 +2582,14 @@ socksetup(int af, const char *bindhostname)
return (socks);
}
+
+static void
+double_rbuf(int fd)
+{
+ socklen_t slen, len;
+
+ if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &len, &slen) == 0) {
+ len *= 2;
+ setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &len, slen);
+ }
+}
OpenPOWER on IntegriCloud