diff options
author | Maciej Soltysiak <maciej@soltysiak.com> | 2014-10-13 17:28:14 +0200 |
---|---|---|
committer | Maciej Soltysiak <maciej@soltysiak.com> | 2014-10-13 17:28:14 +0200 |
commit | b625361a6a2b2bc4ba1c71a1d6dc89f5e2b4d9e0 (patch) | |
tree | 0e1cc42110ac29b3169ef9bd19bf6188239aa27c /evutil.c | |
parent | c750c704c10c9e412fa5501fce051fa45d46ec84 (diff) | |
download | libevent-b625361a6a2b2bc4ba1c71a1d6dc89f5e2b4d9e0.tar.gz |
Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT
Diffstat (limited to 'evutil.c')
-rw-r--r-- | evutil.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -368,6 +368,20 @@ evutil_make_listen_socket_reuseable(evutil_socket_t sock) } int +evutil_make_listen_socket_reuseable_port(evutil_socket_t sock) +{ +#if defined __linux__ && defined(SO_REUSEPORT) + int one = 1; + /* REUSEPORT on Linux 3.9+ means, "Multiple servers (processes or + * threads) can bind to the same port if they each set the option. */ + return setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, (void*) &one, + (ev_socklen_t)sizeof(one)); +#else + return 0; +#endif +} + +int evutil_make_tcp_listen_socket_deferred(evutil_socket_t sock) { #if defined(EVENT__HAVE_NETINET_TCP_H) && defined(TCP_DEFER_ACCEPT) |