chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bb99a35
)
socket: if SO_RCVBUFFORCE fails, fall back to SO_RCVBUF, to have at least a little...
author
Lennart Poettering
<lennart@poettering.net>
Fri, 27 Jan 2012 17:58:02 +0000
(18:58 +0100)
committer
Lennart Poettering
<lennart@poettering.net>
Fri, 27 Jan 2012 17:58:02 +0000
(18:58 +0100)
src/socket.c
patch
|
blob
|
history
diff --git
a/src/socket.c
b/src/socket.c
index 7409aea5eec4b539b5ef5b78b93443d7d080b586..67cd0cce8ebf5db54cba9fa8b372201ca1788051 100644
(file)
--- a/
src/socket.c
+++ b/
src/socket.c
@@
-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;
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)
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)
}
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)
}
if (s->mark >= 0)