| line |
true |
false |
branch |
|
65
|
173 |
51 |
if (server->n_listeners == 0) { |
|
70
|
141 |
51 |
for (int j = 0; j < server->n_listeners; j++) { |
|
71
|
0 |
141 |
if (server->listeners[j].fd == -1) { |
|
79
|
51 |
0 |
if (!lsnr) { |
|
80
|
51 |
0 |
if (server->n_listeners < FEER_MAX_LISTENERS) { |
|
98
|
0 |
224 |
if (getsockname(fd, (struct sockaddr*)&addr, &addr_len) == -1) { |
|
110
|
0 |
224 |
if (setsockopt(fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &(int){1}, sizeof(int)) < 0) |
|
126
|
173 |
51 |
if (!server->watchers_initialized) { |
|
141
|
29 |
22 |
} else if (!ev_is_active(&server->ep)) { |
|
148
|
128 |
96 |
if (!ev_is_active(&date_timer)) { |
|
165
|
20 |
20 |
for (int i = 0; i < server->n_listeners; i++) { |
|
170
|
2 |
18 |
if (lsnr->epoll_fd >= 0) { |
|
171
|
0 |
2 |
if (unlikely(close(lsnr->epoll_fd) < 0)) |
|
187
|
16 |
4 |
if (server->watchers_initialized) { |
|
189
|
13 |
3 |
if (--date_timer_refs <= 0) { |
|
200
|
0 |
2 |
if (server->shutting_down) { |
|
205
|
2 |
2 |
for (int i = 0; i < server->n_listeners; i++) { |
|
207
|
1 |
1 |
if (!(lsnr->pause_flags & FEER_PAUSE_USER)) { |
|
209
|
1 |
0 |
if (ev_is_active(&lsnr->accept_w)) |
|
215
|
1 |
1 |
if (paused_any) |
|
225
|
0 |
2 |
if (server->shutting_down) { |
|
230
|
2 |
2 |
for (int i = 0; i < server->n_listeners; i++) { |
|
232
|
1 |
1 |
if (lsnr->pause_flags & FEER_PAUSE_USER) { |
|
236
|
1 |
0 |
if (!lsnr->pause_flags && lsnr->fd >= 0) |
|
|
1 |
0 |
if (!lsnr->pause_flags && lsnr->fd >= 0) |
|
241
|
1 |
1 |
if (resumed_any) |
|
252
|
3 |
1 |
for (int i = 0; i < server->n_listeners; i++) { |
|
253
|
2 |
1 |
if (!(server->listeners[i].pause_flags & FEER_PAUSE_USER)) { |
|
268
|
246 |
0 |
if (unlikely(!SvOK(cb) || !SvROK(cb))) |
|
|
0 |
246 |
if (unlikely(!SvOK(cb) || !SvROK(cb))) |
|
282
|
9 |
0 |
if (!IsCodeRef(cb)) |
|
|
0 |
9 |
if (!IsCodeRef(cb)) |
|
284
|
1 |
8 |
if (unlikely(server->shutting_down)) |
|
290
|
8 |
8 |
for (int i = 0; i < server->n_listeners; i++) { |
|
295
|
0 |
8 |
if (lsnr->epoll_fd >= 0) { |
|
296
|
0 |
0 |
if (unlikely(close(lsnr->epoll_fd) < 0)) |
|
301
|
0 |
0 |
if (lsnr->fd >= 0) { |
|
302
|
0 |
0 |
if (unlikely(close(lsnr->fd) < 0)) |
|
309
|
8 |
0 |
if (lsnr->accept_w.fd >= 0) { |
|
310
|
0 |
8 |
if (unlikely(close(lsnr->accept_w.fd) < 0)) |
|
323
|
0 |
8 |
while (feer_server_recycle_idle_conn(server)) |
|
326
|
7 |
1 |
if (server->active_conns <= 0 && server->shutdown_cb_cv) { |
|
|
7 |
0 |
if (server->active_conns <= 0 && server->shutdown_cb_cv) { |
|
337
|
6020 |
2012 |
if (items > 1) { |
|
339
|
3 |
6017 |
if (!(val > 0.0)) |
|
344
|
7996 |
33 |
RETVAL = server->read_timeout; |
|
354
|
16 |
3 |
if (items > 1) { |
|
356
|
1 |
15 |
if (val < 0.0) |
|
361
|
0 |
18 |
RETVAL = server->header_timeout; |
|
371
|
4 |
3 |
if (items > 1) { |
|
373
|
1 |
3 |
if (val < 0.0) |
|
378
|
0 |
6 |
RETVAL = server->write_timeout; |
|
403
|
0 |
4 |
RETVAL = server->use_reverse_proxy; |
|
420
|
0 |
2 |
RETVAL = server->psgix_io; |
|
437
|
0 |
4 |
RETVAL = server->use_proxy_protocol; |
|
461
|
0 |
10 |
RETVAL = server->use_epoll_exclusive ? 1 : 0; |
|
481
|
6004 |
12016 |
: ix == 1 ? &server->write_priority |
|
482
|
6008 |
6008 |
: &server->read_priority; |
|
483
|
18012 |
8 |
if (items > 1) { |
|
485
|
2 |
18010 |
if (new_priority < EV_MINPRI) new_priority = EV_MINPRI; |
|
486
|
2 |
18010 |
if (new_priority > EV_MAXPRI) new_priority = EV_MAXPRI; |
|
490
|
17992 |
28 |
RETVAL = *field; |
|
500
|
6 |
8 |
if (items > 1) { |
|
502
|
2 |
4 |
if (new_max < 1) new_max = 1; |
|
506
|
0 |
14 |
RETVAL = server->max_accept_per_loop; |
|
514
|
3 |
8 |
RETVAL = server->active_conns; |
|
523
|
12 |
7 |
if (items > 1) { |
|
525
|
0 |
12 |
if (new_max < 0) new_max = 0; // 0 means unlimited |
|
529
|
0 |
19 |
RETVAL = server->max_connections; |
|
539
|
0 |
0 |
if (items > 1) { |
|
541
|
0 |
0 |
if (new_max == 0) new_max = MAX_READ_BUF; |
|
544
|
0 |
0 |
RETVAL = server->max_read_buf; |
|
554
|
2 |
0 |
if (items > 1) { |
|
556
|
1 |
1 |
if (new_max == 0) new_max = MAX_BODY_LEN; |
|
559
|
0 |
2 |
RETVAL = server->max_body_len; |
|
569
|
4 |
3 |
if (items > 1) { |
|
571
|
1 |
3 |
if (new_max == 0) new_max = MAX_URI_LEN; |
|
574
|
0 |
7 |
RETVAL = server->max_uri_len; |
|
584
|
7 |
3 |
if (items > 1) { |
|
586
|
1 |
6 |
if (SvNV(val) < 0.0) |
|
590
|
0 |
9 |
RETVAL = server->wbuf_low_water; |
|
619
|
0 |
0 |
if (items > 1) |
|
621
|
0 |
0 |
RETVAL = 0; |
|
630
|
0 |
3 |
RETVAL = server->total_requests; |
|
639
|
1 |
0 |
if (items > 1) { |
|
641
|
0 |
1 |
if (n < 0) |
|
646
|
0 |
1 |
RETVAL = server->max_connection_reqs; |
|
663
|
204 |
220 |
for (int i = 0; i < server->n_listeners; i++) { |
|
668
|
0 |
204 |
if (lsnr->epoll_fd >= 0) { |
|
679
|
157 |
63 |
if (server->watchers_initialized && --date_timer_refs <= 0) { |
|
|
115 |
42 |
if (server->watchers_initialized && --date_timer_refs <= 0) { |
|
697
|
171 |
1 |
if (items < 3 || (items - 1) % 2 != 0) |
|
|
0 |
171 |
if (items < 3 || (items - 1) % 2 != 0) |
|
700
|
412 |
169 |
for (i = 1; i < items; i += 2) { |
|
703
|
168 |
244 |
if (strcmp(key, "cert_file") == 0) |
|
705
|
168 |
76 |
else if (strcmp(key, "key_file") == 0) |
|
707
|
6 |
70 |
else if (strcmp(key, "listener") == 0) |
|
709
|
1 |
69 |
else if (strcmp(key, "h2") == 0) |
|
711
|
67 |
2 |
else if (strcmp(key, "sni") == 0) |
|
717
|
3 |
166 |
if (!cert_file) croak("set_tls: cert_file is required"); |
|
718
|
3 |
163 |
if (!key_file) croak("set_tls: key_file is required"); |
|
720
|
3 |
160 |
if (server->n_listeners == 0) |
|
724
|
0 |
160 |
if (listener_idx < -1) |
|
727
|
154 |
6 |
if (listener_idx < 0) |
|
729
|
2 |
158 |
if (listener_idx >= server->n_listeners) |
|
737
|
67 |
91 |
if (sni_name) { |
|
739
|
0 |
67 |
if (sni_name_len == 0) |
|
741
|
0 |
67 |
if (sni_name_len >= 256) |
|
743
|
0 |
67 |
if (!lsnr->tls_ctx_ref) |
|
745
|
0 |
67 |
if (lsnr->n_sni_entries >= FEER_MAX_SNI_ENTRIES) |
|
751
|
1 |
66 |
if (h2) |
|
757
|
5 |
152 |
if (!new_ctx) |
|
760
|
66 |
86 |
if (sni_name) { |
|
763
|
724 |
66 |
for (i = 0; (size_t)i < name_len; i++) |
|
770
|
63 |
3 |
for (i = 0; i < lsnr->n_sni_entries; i++) { |
|
771
|
63 |
0 |
if (strcmp(lsnr->sni_entries[i].hostname, lower) == 0) { |
|
777
|
3 |
63 |
if (!e) { |
|
788
|
1 |
85 |
if (lsnr->tls_ctx_ref) |
|
806
|
0 |
59 |
RETVAL = 1; |
|
822
|
0 |
17 |
RETVAL = 0; |
|
837
|
0 |
141 |
I_EV_API("Feersum"); |
|
|
141 |
0 |
I_EV_API("Feersum"); |
|
|
0 |
141 |
I_EV_API("Feersum"); |
|
840
|
0 |
141 |
if (env_fl_max) { |