summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2022-01-03 16:25:47 -0500
committerGlenn Strauss <gstrauss@gluelogic.com>2022-01-04 04:25:26 -0500
commit7eac25ac7f69107448ecd59d5a6b40b2f61d8bc2 (patch)
tree918b971e9a045388c628d2e9dc2552c101789687 /src/network.c
parentb9d58fa723cd3789b8fb2475696a7c596fefc961 (diff)
downloadlighttpd-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.c10
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;
}