| line |
true |
false |
branch |
|
67
|
168 |
52 |
if (server->n_listeners == 0) { |
|
72
|
142 |
52 |
for (int j = 0; j < server->n_listeners; j++) { |
|
73
|
0 |
142 |
if (server->listeners[j].fd == -1) { |
|
81
|
52 |
0 |
if (!lsnr) { |
|
82
|
52 |
0 |
if (server->n_listeners < FEER_MAX_LISTENERS) { |
|
100
|
0 |
220 |
if (getsockname(fd, (struct sockaddr*)&addr, &addr_len) == -1) { |
|
112
|
0 |
220 |
if (setsockopt(fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &(int){1}, sizeof(int)) < 0) |
|
128
|
168 |
52 |
if (!server->watchers_initialized) { |
|
143
|
30 |
22 |
} else if (!ev_is_active(&server->ep)) { |
|
150
|
127 |
93 |
if (!ev_is_active(&date_timer)) { |
|
167
|
17 |
17 |
for (int i = 0; i < server->n_listeners; i++) { |
|
172
|
2 |
15 |
if (lsnr->epoll_fd >= 0) { |
|
173
|
0 |
2 |
if (unlikely(close(lsnr->epoll_fd) < 0)) |
|
189
|
13 |
4 |
if (server->watchers_initialized) { |
|
191
|
13 |
0 |
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
|
242 |
0 |
if (unlikely(!SvOK(cb) || !SvROK(cb))) |
|
|
0 |
242 |
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 |
0 |
RETVAL = server->psgix_io; |
|
439
|
0 |
4 |
RETVAL = server->use_proxy_protocol; |
|
463
|
0 |
10 |
RETVAL = server->use_epoll_exclusive ? 1 : 0; |
|
482
|
6004 |
12016 |
: ix == 1 ? &server->write_priority |
|
483
|
6008 |
6008 |
: &server->read_priority; |
|
484
|
18012 |
8 |
if (items > 1) { |
|
486
|
2 |
18010 |
if (new_priority < EV_MINPRI) new_priority = EV_MINPRI; |
|
487
|
2 |
18010 |
if (new_priority > EV_MAXPRI) new_priority = EV_MAXPRI; |
|
491
|
17992 |
28 |
RETVAL = *field; |
|
501
|
6 |
8 |
if (items > 1) { |
|
503
|
2 |
4 |
if (new_max < 1) new_max = 1; |
|
507
|
0 |
14 |
RETVAL = server->max_accept_per_loop; |
|
515
|
3 |
8 |
RETVAL = server->active_conns; |
|
524
|
12 |
7 |
if (items > 1) { |
|
526
|
0 |
12 |
if (new_max < 0) new_max = 0; // 0 means unlimited |
|
530
|
0 |
19 |
RETVAL = server->max_connections; |
|
540
|
0 |
0 |
if (items > 1) { |
|
542
|
0 |
0 |
if (new_max == 0) new_max = MAX_READ_BUF; |
|
545
|
0 |
0 |
RETVAL = server->max_read_buf; |
|
555
|
2 |
0 |
if (items > 1) { |
|
557
|
1 |
1 |
if (new_max == 0) new_max = MAX_BODY_LEN; |
|
560
|
0 |
2 |
RETVAL = server->max_body_len; |
|
570
|
4 |
3 |
if (items > 1) { |
|
572
|
1 |
3 |
if (new_max == 0) new_max = MAX_URI_LEN; |
|
575
|
0 |
7 |
RETVAL = server->max_uri_len; |
|
585
|
7 |
3 |
if (items > 1) { |
|
587
|
1 |
6 |
if (SvNV(val) < 0.0) |
|
591
|
0 |
9 |
RETVAL = server->wbuf_low_water; |
|
620
|
0 |
0 |
if (items > 1) |
|
622
|
0 |
0 |
RETVAL = 0; |
|
631
|
0 |
3 |
RETVAL = server->total_requests; |
|
640
|
1 |
0 |
if (items > 1) { |
|
642
|
0 |
1 |
if (n < 0) |
|
647
|
0 |
1 |
RETVAL = server->max_connection_reqs; |
|
664
|
203 |
214 |
for (int i = 0; i < server->n_listeners; i++) { |
|
669
|
0 |
203 |
if (lsnr->epoll_fd >= 0) { |
|
680
|
155 |
59 |
if (server->watchers_initialized && --date_timer_refs <= 0) { |
|
|
114 |
41 |
if (server->watchers_initialized && --date_timer_refs <= 0) { |
|
698
|
170 |
1 |
if (items < 3 || (items - 1) % 2 != 0) |
|
|
0 |
170 |
if (items < 3 || (items - 1) % 2 != 0) |
|
701
|
410 |
168 |
for (i = 1; i < items; i += 2) { |
|
704
|
167 |
243 |
if (strcmp(key, "cert_file") == 0) |
|
706
|
167 |
76 |
else if (strcmp(key, "key_file") == 0) |
|
708
|
6 |
70 |
else if (strcmp(key, "listener") == 0) |
|
710
|
1 |
69 |
else if (strcmp(key, "h2") == 0) |
|
712
|
67 |
2 |
else if (strcmp(key, "sni") == 0) |
|
718
|
3 |
165 |
if (!cert_file) croak("set_tls: cert_file is required"); |
|
719
|
3 |
162 |
if (!key_file) croak("set_tls: key_file is required"); |
|
721
|
3 |
159 |
if (server->n_listeners == 0) |
|
725
|
0 |
159 |
if (listener_idx < -1) |
|
728
|
153 |
6 |
if (listener_idx < 0) |
|
730
|
2 |
157 |
if (listener_idx >= server->n_listeners) |
|
738
|
67 |
90 |
if (sni_name) { |
|
740
|
0 |
67 |
if (sni_name_len == 0) |
|
742
|
0 |
67 |
if (sni_name_len >= 256) |
|
744
|
0 |
67 |
if (!lsnr->tls_ctx_ref) |
|
746
|
0 |
67 |
if (lsnr->n_sni_entries >= FEER_MAX_SNI_ENTRIES) |
|
752
|
1 |
66 |
if (h2) |
|
758
|
5 |
151 |
if (!new_ctx) |
|
761
|
66 |
85 |
if (sni_name) { |
|
764
|
724 |
66 |
for (i = 0; (size_t)i < name_len; i++) |
|
771
|
63 |
3 |
for (i = 0; i < lsnr->n_sni_entries; i++) { |
|
772
|
63 |
0 |
if (strcmp(lsnr->sni_entries[i].hostname, lower) == 0) { |
|
778
|
3 |
63 |
if (!e) { |
|
789
|
1 |
84 |
if (lsnr->tls_ctx_ref) |
|
807
|
0 |
58 |
RETVAL = 1; |
|
823
|
0 |
16 |
RETVAL = 0; |
|
838
|
0 |
140 |
I_EV_API("Feersum"); |
|
|
140 |
0 |
I_EV_API("Feersum"); |
|
|
0 |
140 |
I_EV_API("Feersum"); |
|
841
|
0 |
140 |
if (env_fl_max) { |