1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-01-21 18:03:41 +03:00

socket: if SO_RCVBUFFORCE fails, fall back to SO_RCVBUF, to have at least a little effect

This commit is contained in:
Lennart Poettering 2012-01-27 18:58:02 +01:00
parent bb99a35a87
commit 7d9eaa8461

View File

@ -680,14 +680,19 @@ static void socket_apply_socket_options(Socket *s, int fd) {
if (s->receive_buffer > 0) {
int value = (int) s->receive_buffer;
/* We first try with SO_RCVBUFFORCE, in case we have the perms for that */
if (setsockopt(fd, SOL_SOCKET, SO_RCVBUFFORCE, &value, sizeof(value)) < 0)
log_warning("SO_RCVBUFFORCE failed: %m");
if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &value, sizeof(value)) < 0)
log_warning("SO_RCVBUF failed: %m");
}
if (s->send_buffer > 0) {
int value = (int) s->send_buffer;
if (setsockopt(fd, SOL_SOCKET, SO_SNDBUFFORCE, &value, sizeof(value)) < 0)
log_warning("SO_SNDBUFFORCE failed: %m");
if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &value, sizeof(value)) < 0)
log_warning("SO_SNDBUF failed: %m");
}
if (s->mark >= 0)