Corral the last setsockopt() call into one place.
This commit is contained in:
@@ -110,8 +110,7 @@ static void incoming_listen(struct incoming *incoming) {
|
|||||||
incoming->peer.fd = socket(addr->ai_family, addr->ai_socktype | SOCK_CLOEXEC, addr->ai_protocol);
|
incoming->peer.fd = socket(addr->ai_family, addr->ai_socktype | SOCK_CLOEXEC, addr->ai_protocol);
|
||||||
assert(incoming->peer.fd >= 0);
|
assert(incoming->peer.fd >= 0);
|
||||||
|
|
||||||
int optval = 1;
|
socket_pre_bind_init(incoming->peer.fd);
|
||||||
setsockopt(incoming->peer.fd, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof(optval));
|
|
||||||
|
|
||||||
if (bind(incoming->peer.fd, addr->ai_addr, addr->ai_addrlen) != 0) {
|
if (bind(incoming->peer.fd, addr->ai_addr, addr->ai_addrlen) != 0) {
|
||||||
fprintf(stderr, "I %s: Failed to bind to %s/%s: %s\n", incoming->id, hbuf, sbuf, strerror(errno));
|
fprintf(stderr, "I %s: Failed to bind to %s/%s: %s\n", incoming->id, hbuf, sbuf, strerror(errno));
|
||||||
|
|||||||
@@ -7,6 +7,11 @@
|
|||||||
|
|
||||||
#include "socket.h"
|
#include "socket.h"
|
||||||
|
|
||||||
|
void socket_pre_bind_init(int fd) {
|
||||||
|
int optval = 1;
|
||||||
|
assert(!setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof(optval)));
|
||||||
|
}
|
||||||
|
|
||||||
void socket_bound_init(int fd) {
|
void socket_bound_init(int fd) {
|
||||||
int qlen = 5;
|
int qlen = 5;
|
||||||
assert(!setsockopt(fd, SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen)));
|
assert(!setsockopt(fd, SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen)));
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
void socket_pre_bind_init(int);
|
||||||
void socket_bound_init(int);
|
void socket_bound_init(int);
|
||||||
void socket_connected_init(int);
|
void socket_connected_init(int);
|
||||||
|
|||||||
Reference in New Issue
Block a user