diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2022-01-03 16:25:47 -0500 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2022-01-04 04:25:26 -0500 |
commit | 7eac25ac7f69107448ecd59d5a6b40b2f61d8bc2 (patch) | |
tree | 918b971e9a045388c628d2e9dc2552c101789687 /src/network.c | |
parent | b9d58fa723cd3789b8fb2475696a7c596fefc961 (diff) | |
download | lighttpd-git-7eac25ac7f69107448ecd59d5a6b40b2f61d8bc2.tar.gz |
[core] hide bsd_accept_filter code on OpenBSD (fixes #3131)
(thx devnexen)
OpenBSD does not provide SO_ACCEPTFILTER
(This patch shows a good example of why cuddled-else should be avoided)
x-ref:
"Remove unneeded connection bsd filter handling for OpenBSD"
https://redmine.lighttpd.net/issues/3131
Diffstat (limited to 'src/network.c')
-rw-r--r-- | src/network.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/network.c b/src/network.c index f3a16218..a2ef5987 100644 --- a/src/network.c +++ b/src/network.c @@ -442,19 +442,21 @@ static int network_server_init(server *srv, network_socket_config *s, buffer *ho } if (s->ssl_enabled) { + } #ifdef TCP_DEFER_ACCEPT - } else if (s->defer_accept) { + else if (s->defer_accept) { int v = s->defer_accept; if (-1 == setsockopt(srv_socket->fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &v, sizeof(v))) { log_perror(srv->errh, __FILE__, __LINE__, "can't set TCP_DEFER_ACCEPT"); } + } #endif #if defined(__FreeBSD__) || defined(__NetBSD__) \ || defined(__OpenBSD__) || defined(__DragonFly__) - } else if (s->bsd_accept_filter +#ifdef SO_ACCEPTFILTER + else if (s->bsd_accept_filter && (buffer_is_equal_string(s->bsd_accept_filter, CONST_STR_LEN("httpready")) || buffer_is_equal_string(s->bsd_accept_filter, CONST_STR_LEN("dataready")))) { -#ifdef SO_ACCEPTFILTER /* FreeBSD accf_http filter */ struct accept_filter_arg afa; memset(&afa, 0, sizeof(afa)); @@ -465,9 +467,9 @@ static int network_server_init(server *srv, network_socket_config *s, buffer *ho "can't set accept-filter '%s'", s->bsd_accept_filter->ptr); } } + } #endif #endif - } return 0; } |