| line |
true |
false |
branch |
|
67
|
172 |
51 |
if (server->n_listeners == 0) { |
|
72
|
141 |
51 |
for (int j = 0; j < server->n_listeners; j++) { |
|
73
|
0 |
141 |
if (server->listeners[j].fd == -1) { |
|
81
|
51 |
0 |
if (!lsnr) { |
|
82
|
51 |
0 |
if (server->n_listeners < FEER_MAX_LISTENERS) { |
|
100
|
0 |
223 |
if (getsockname(fd, (struct sockaddr*)&addr, &addr_len) == -1) { |
|
112
|
0 |
223 |
if (setsockopt(fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &(int){1}, sizeof(int)) < 0) |
|
128
|
172 |
51 |
if (!server->watchers_initialized) { |
|
143
|
29 |
22 |
} else if (!ev_is_active(&server->ep)) { |
|
150
|
127 |
96 |
if (!ev_is_active(&date_timer)) { |
|
167
|
20 |
20 |
for (int i = 0; i < server->n_listeners; i++) { |
|
172
|
2 |
18 |
if (lsnr->epoll_fd >= 0) { |
|
173
|
0 |
2 |
if (unlikely(close(lsnr->epoll_fd) < 0)) |
|
189
|
16 |
4 |
if (server->watchers_initialized) { |
|
191
|
13 |
3 |
if (--date_timer_refs <= 0) { |
|
202
|
0 |
2 |
if (server->shutting_down) { |
|
207
|
2 |
2 |
for (int i = 0; i < server->n_listeners; i++) { |
|
209
|
1 |
1 |
if (!(lsnr->pause_flags & FEER_PAUSE_USER)) { |
|
211
|
1 |
0 |
if (ev_is_active(&lsnr->accept_w)) |
|
217
|
1 |
1 |
if (paused_any) |
|
227
|
0 |
2 |
if (server->shutting_down) { |
|
232
|
2 |
2 |
for (int i = 0; i < server->n_listeners; i++) { |
|
234
|
1 |
1 |
if (lsnr->pause_flags & FEER_PAUSE_USER) { |
|
238
|
1 |
0 |
if (!lsnr->pause_flags && lsnr->fd >= 0) |
|
|
1 |
0 |
if (!lsnr->pause_flags && lsnr->fd >= 0) |
|
243
|
1 |
1 |
if (resumed_any) |
|
254
|
3 |
1 |
for (int i = 0; i < server->n_listeners; i++) { |
|
255
|
2 |
1 |
if (!(server->listeners[i].pause_flags & FEER_PAUSE_USER)) { |
|
270
|
245 |
0 |
if (unlikely(!SvOK(cb) || !SvROK(cb))) |
|
|
0 |
245 |
if (unlikely(!SvOK(cb) || !SvROK(cb))) |
|
284
|
9 |
0 |
if (!IsCodeRef(cb)) |
|
|
0 |
9 |
if (!IsCodeRef(cb)) |
|
286
|
1 |
8 |
if (unlikely(server->shutting_down)) |
|
292
|
8 |
8 |
for (int i = 0; i < server->n_listeners; i++) { |
|
297
|
0 |
8 |
if (lsnr->epoll_fd >= 0) { |
|
298
|
0 |
0 |
if (unlikely(close(lsnr->epoll_fd) < 0)) |
|
303
|
0 |
0 |
if (lsnr->fd >= 0) { |
|
304
|
0 |
0 |
if (unlikely(close(lsnr->fd) < 0)) |
|
311
|
8 |
0 |
if (lsnr->accept_w.fd >= 0) { |
|
312
|
0 |
8 |
if (unlikely(close(lsnr->accept_w.fd) < 0)) |
|
325
|
0 |
8 |
while (feer_server_recycle_idle_conn(server)) |
|
328
|
7 |
1 |
if (server->active_conns <= 0 && server->shutdown_cb_cv) { |
|
|
7 |
0 |
if (server->active_conns <= 0 && server->shutdown_cb_cv) { |
|
339
|
6020 |
2012 |
if (items > 1) { |
|
341
|
3 |
6017 |
if (!(val > 0.0)) |
|
346
|
7996 |
33 |
RETVAL = server->read_timeout; |
|
356
|
16 |
3 |
if (items > 1) { |
|
358
|
1 |
15 |
if (val < 0.0) |
|
363
|
0 |
18 |
RETVAL = server->header_timeout; |
|
373
|
4 |
3 |
if (items > 1) { |
|
375
|
1 |
3 |
if (val < 0.0) |
|
380
|
0 |
6 |
RETVAL = server->write_timeout; |
|
405
|
0 |
4 |
RETVAL = server->use_reverse_proxy; |
|
422
|
0 |
2 |
RETVAL = server->psgix_io; |
|
439
|
0 |
4 |
RETVAL = server->use_proxy_protocol; |
|
463
|
0 |
10 |
RETVAL = server->use_epoll_exclusive ? 1 : 0; |
|
483
|
6004 |
12016 |
: ix == 1 ? &server->write_priority |
|
484
|
6008 |
6008 |
: &server->read_priority; |
|
485
|
18012 |
8 |
if (items > 1) { |
|
487
|
2 |
18010 |
if (new_priority < EV_MINPRI) new_priority = EV_MINPRI; |
|
488
|
2 |
18010 |
if (new_priority > EV_MAXPRI) new_priority = EV_MAXPRI; |
|
492
|
17992 |
28 |
RETVAL = *field; |
|
502
|
6 |
8 |
if (items > 1) { |
|
504
|
2 |
4 |
if (new_max < 1) new_max = 1; |
|
508
|
0 |
14 |
RETVAL = server->max_accept_per_loop; |
|
516
|
3 |
8 |
RETVAL = server->active_conns; |
|
525
|
12 |
7 |
if (items > 1) { |
|
527
|
0 |
12 |
if (new_max < 0) new_max = 0; // 0 means unlimited |
|
531
|
0 |
19 |
RETVAL = server->max_connections; |
|
541
|
0 |
0 |
if (items > 1) { |
|
543
|
0 |
0 |
if (new_max == 0) new_max = MAX_READ_BUF; |
|
546
|
0 |
0 |
RETVAL = server->max_read_buf; |
|
556
|
2 |
0 |
if (items > 1) { |
|
558
|
1 |
1 |
if (new_max == 0) new_max = MAX_BODY_LEN; |
|
561
|
0 |
2 |
RETVAL = server->max_body_len; |
|
571
|
4 |
3 |
if (items > 1) { |
|
573
|
1 |
3 |
if (new_max == 0) new_max = MAX_URI_LEN; |
|
576
|
0 |
7 |
RETVAL = server->max_uri_len; |
|
586
|
7 |
3 |
if (items > 1) { |
|
588
|
1 |
6 |
if (SvNV(val) < 0.0) |
|
592
|
0 |
9 |
RETVAL = server->wbuf_low_water; |
|
621
|
0 |
0 |
if (items > 1) |
|
623
|
0 |
0 |
RETVAL = 0; |
|
632
|
0 |
3 |
RETVAL = server->total_requests; |
|
641
|
1 |
0 |
if (items > 1) { |
|
643
|
0 |
1 |
if (n < 0) |
|
648
|
0 |
1 |
RETVAL = server->max_connection_reqs; |
|
665
|
203 |
219 |
for (int i = 0; i < server->n_listeners; i++) { |
|
670
|
0 |
203 |
if (lsnr->epoll_fd >= 0) { |
|
681
|
156 |
63 |
if (server->watchers_initialized && --date_timer_refs <= 0) { |
|
|
114 |
42 |
if (server->watchers_initialized && --date_timer_refs <= 0) { |
|
699
|
170 |
1 |
if (items < 3 || (items - 1) % 2 != 0) |
|
|
0 |
170 |
if (items < 3 || (items - 1) % 2 != 0) |
|
702
|
410 |
168 |
for (i = 1; i < items; i += 2) { |
|
705
|
167 |
243 |
if (strcmp(key, "cert_file") == 0) |
|
707
|
167 |
76 |
else if (strcmp(key, "key_file") == 0) |
|
709
|
6 |
70 |
else if (strcmp(key, "listener") == 0) |
|
711
|
1 |
69 |
else if (strcmp(key, "h2") == 0) |
|
713
|
67 |
2 |
else if (strcmp(key, "sni") == 0) |
|
719
|
3 |
165 |
if (!cert_file) croak("set_tls: cert_file is required"); |
|
720
|
3 |
162 |
if (!key_file) croak("set_tls: key_file is required"); |
|
722
|
3 |
159 |
if (server->n_listeners == 0) |
|
726
|
0 |
159 |
if (listener_idx < -1) |
|
729
|
153 |
6 |
if (listener_idx < 0) |
|
731
|
2 |
157 |
if (listener_idx >= server->n_listeners) |
|
739
|
67 |
90 |
if (sni_name) { |
|
741
|
0 |
67 |
if (sni_name_len == 0) |
|
743
|
0 |
67 |
if (sni_name_len >= 256) |
|
745
|
0 |
67 |
if (!lsnr->tls_ctx_ref) |
|
747
|
0 |
67 |
if (lsnr->n_sni_entries >= FEER_MAX_SNI_ENTRIES) |
|
753
|
1 |
66 |
if (h2) |
|
759
|
5 |
151 |
if (!new_ctx) |
|
762
|
66 |
85 |
if (sni_name) { |
|
765
|
724 |
66 |
for (i = 0; (size_t)i < name_len; i++) |
|
772
|
63 |
3 |
for (i = 0; i < lsnr->n_sni_entries; i++) { |
|
773
|
63 |
0 |
if (strcmp(lsnr->sni_entries[i].hostname, lower) == 0) { |
|
779
|
3 |
63 |
if (!e) { |
|
790
|
1 |
84 |
if (lsnr->tls_ctx_ref) |
|
808
|
0 |
58 |
RETVAL = 1; |
|
824
|
0 |
17 |
RETVAL = 0; |
|
839
|
0 |
140 |
I_EV_API("Feersum"); |
|
|
140 |
0 |
I_EV_API("Feersum"); |
|
|
0 |
140 |
I_EV_API("Feersum"); |
|
842
|
0 |
140 |
if (env_fl_max) { |