core: socket options fix SCTP_NODELAY
SCTP_NODELAY is diffrent to TCP_NODELAY. Apply proper options in case of SCTP.
This commit is contained in:
parent
b485d2003e
commit
62bc4efc7a
|
@ -131,6 +131,10 @@
|
||||||
#define NETLINK_LIST_MEMBERSHIPS 9
|
#define NETLINK_LIST_MEMBERSHIPS 9
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef SOL_SCTP
|
||||||
|
#define SOL_SCTP 132
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !HAVE_DECL_PIVOT_ROOT
|
#if !HAVE_DECL_PIVOT_ROOT
|
||||||
static inline int pivot_root(const char *new_root, const char *put_old) {
|
static inline int pivot_root(const char *new_root, const char *put_old) {
|
||||||
return syscall(SYS_pivot_root, new_root, put_old);
|
return syscall(SYS_pivot_root, new_root, put_old);
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
#include <sys/epoll.h>
|
#include <sys/epoll.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <linux/sctp.h>
|
||||||
|
|
||||||
#include "sd-event.h"
|
#include "sd-event.h"
|
||||||
|
|
||||||
#include "alloc-util.h"
|
#include "alloc-util.h"
|
||||||
#include "bus-error.h"
|
#include "bus-error.h"
|
||||||
#include "bus-util.h"
|
#include "bus-util.h"
|
||||||
|
@ -877,8 +877,14 @@ static void socket_apply_socket_options(Socket *s, int fd) {
|
||||||
|
|
||||||
if (s->no_delay) {
|
if (s->no_delay) {
|
||||||
int b = s->no_delay;
|
int b = s->no_delay;
|
||||||
if (setsockopt(fd, SOL_TCP, TCP_NODELAY, &b, sizeof(b)) < 0)
|
|
||||||
log_unit_warning_errno(UNIT(s), errno, "TCP_NODELAY failed: %m");
|
if (s->socket_protocol == IPPROTO_SCTP) {
|
||||||
|
if (setsockopt(fd, SOL_SCTP, SCTP_NODELAY, &b, sizeof(b)) < 0)
|
||||||
|
log_unit_warning_errno(UNIT(s), errno, "SCTP_NODELAY failed: %m");
|
||||||
|
} else {
|
||||||
|
if (setsockopt(fd, SOL_TCP, TCP_NODELAY, &b, sizeof(b)) < 0)
|
||||||
|
log_unit_warning_errno(UNIT(s), errno, "TCP_NODELAY failed: %m");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->broadcast) {
|
if (s->broadcast) {
|
||||||
|
|
Loading…
Reference in a new issue