expcov report - Generated Sat Oct 15 21:39:18 2016

 Index  Statistics  Last 
Directory./server
Filenamelisten.c
ModifiedMon Jul 7 06:49:06 2014

Pass Half Fail Excluded Total
Function
0
0.00%
13
100.00%
0
0.00%
13
100%
Expressions
0
0.00%
378
100.00%
0
0.00%
378
100%
Conditions
0
0.00%
0
0.00%
103
100.00%
0
0.00%
103
100%
MC/DC
0
0.00%
55
100.00%
0
0.00%
55
100%
Branches

if
0
0.00%
0
0.00%
53
100.00%
0
0.00%
53
100%
for
0
0.00%
0
0.00%
12
100.00%
0
0.00%
12
100%
while
0
0.00%
0
0.00%
2
100.00%
0
0.00%
2
100%
case
0
0.00%
0
0.00%
0
0.00%
0
0.00%
0
100%

1/* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements.  See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License.  You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#include "apr_network_io.h"
18#include "apr_strings.h"
19
20#define APR_WANT_STRFUNC
21#include "apr_want.h"
22
23#define CORE_PRIVATE
24#include "ap_config.h"
25#include "httpd.h"
26#include "http_config.h"
27#include "http_core.h"
28#include "ap_listen.h"
29#include "http_log.h"
30#include "mpm.h"
31#include "mpm_common.h"
32
33AP_DECLARE_DATA ap_listen_rec *ap_listeners = NULL;
34
35static ap_listen_rec *old_listeners;
36static int ap_listenbacklog;
37static int send_buffer_size;
38static int receive_buffer_size;
39
40/* TODO: make_sock is just begging and screaming for APR abstraction */
41static apr_status_t make_sock : call=0
m
ake_sock(apr_pool_t *p, ap_listen_rec *server)
42{
43    apr_socket_t *s = server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>sd : include/ap_listen.h line=54 column=19
s
d;
44    int one = 1;
45#if APR_HAVE_IPV6
46#ifdef AP_ENABLE_V4_MAPPED
47    int v6only_setting = 0;
48#else
49    int v6only_setting = 1;
50#endif
51#endif
52    apr_status_t stat;
53
54#ifndef WIN32
55    stat : server/listen.c line=52 column=18
s
tat = : pass=0
=
 apr_socket_opt_set : enter=0, leave=0

apr_socket_opt_set : /usr/include/apr-1/apr_network_io.h line=600 column=27
a
pr_socket_opt_set(s : server/listen.c line=43 column=19
s
, APR_SO_REUSEADDR, one : server/listen.c line=44 column=9
o
ne);
56    if : true=0, false=0
i
f (stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS && : true=0, false=0
&
stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_ENOTIMPL) {
57        ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_CRIT, stat : server/listen.c line=52 column=18
s
tat, p : server/listen.c line=41 column=43
p
,
58                      "make_sock: for address %pI, apr_socket_opt_set: (SO_REUSEADDR)",
59                      server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr);
60        apr_socket_close : enter=0, leave=0

apr_socket_close : /usr/include/apr-1/apr_network_io.h line=307 column=27
a
pr_socket_close(s : server/listen.c line=43 column=19
s
);
61        return : pass=0
r
eturn stat : server/listen.c line=52 column=18
s
tat;
62    }
63#endif
64
65    stat : server/listen.c line=52 column=18
s
tat = : pass=0
=
 apr_socket_opt_set : enter=0, leave=0

apr_socket_opt_set : /usr/include/apr-1/apr_network_io.h line=600 column=27
a
pr_socket_opt_set(s : server/listen.c line=43 column=19
s
, APR_SO_KEEPALIVE, one : server/listen.c line=44 column=9
o
ne);
66    if : true=0, false=0
i
f (stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS && : true=0, false=0
&
stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_ENOTIMPL) {
67        ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_CRIT, stat : server/listen.c line=52 column=18
s
tat, p : server/listen.c line=41 column=43
p
,
68                      "make_sock: for address %pI, apr_socket_opt_set: (SO_KEEPALIVE)",
69                      server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr);
70        apr_socket_close : enter=0, leave=0

apr_socket_close : /usr/include/apr-1/apr_network_io.h line=307 column=27
a
pr_socket_close(s : server/listen.c line=43 column=19
s
);
71        return : pass=0
r
eturn stat : server/listen.c line=52 column=18
s
tat;
72    }
73
74#if APR_HAVE_IPV6
75    if : true=0, false=0
i
f (server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>family : /usr/include/apr-1/apr_network_io.h line=221 column=17 family == : true=0, false=0
=
= APR_INET6) {
76        stat : server/listen.c line=52 column=18
s
tat = : pass=0
=
 apr_socket_opt_set : enter=0, leave=0

apr_socket_opt_set : /usr/include/apr-1/apr_network_io.h line=600 column=27
a
pr_socket_opt_set(s : server/listen.c line=43 column=19
s
, APR_IPV6_V6ONLY, v6only_setting : server/listen.c line=47 column=9
v
6only_setting);
77        if : true=0, false=0
i
f (stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS && : true=0, false=0
&
stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_ENOTIMPL) {
78            ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_CRIT, stat : server/listen.c line=52 column=18
s
tat, p : server/listen.c line=41 column=43
p
,
79                          "make_sock: for address %pI, apr_socket_opt_set: "
80                          "(IPV6_V6ONLY)",
81                          server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr);
82            apr_socket_close : enter=0, leave=0

apr_socket_close : /usr/include/apr-1/apr_network_io.h line=307 column=27
a
pr_socket_close(s : server/listen.c line=43 column=19
s
);
83            return : pass=0
r
eturn stat : server/listen.c line=52 column=18
s
tat;
84        }
85    }
86#endif
87
88    /*
89     * To send data over high bandwidth-delay connections at full
90     * speed we must force the TCP window to open wide enough to keep the
91     * pipe full.  The default window size on many systems
92     * is only 4kB.  Cross-country WAN connections of 100ms
93     * at 1Mb/s are not impossible for well connected sites.
94     * If we assume 100ms cross-country latency,
95     * a 4kB buffer limits throughput to 40kB/s.
96     *
97     * To avoid this problem I've added the SendBufferSize directive
98     * to allow the web master to configure send buffer size.
99     *
100     * The trade-off of larger buffers is that more kernel memory
101     * is consumed.  YMMV, know your customers and your network!
102     *
103     * -John Heidemann <johnh@isi.edu> 25-Oct-96
104     *
105     * If no size is specified, use the kernel default.
106     */
107    if : true=0, false=0
i
f (send_buffer_size : server/listen.c line=37 column=12
s
end_buffer_size) {
108        stat : server/listen.c line=52 column=18
s
tat = : pass=0
=
 apr_socket_opt_set : enter=0, leave=0

apr_socket_opt_set : /usr/include/apr-1/apr_network_io.h line=600 column=27
a
pr_socket_opt_set(s : server/listen.c line=43 column=19
s
, APR_SO_SNDBUF,  send_buffer_size : server/listen.c line=37 column=12
s
end_buffer_size);
109        if : true=0, false=0
i
f (stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS && : true=0, false=0
&
stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_ENOTIMPL) {
110            ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_WARNING, stat : server/listen.c line=52 column=18
s
tat, p : server/listen.c line=41 column=43
p
,
111                          "make_sock: failed to set SendBufferSize for "
112                          "address %pI, using default",
113                          server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr);
114            /* not a fatal error */
115        }
116    }
117    if : true=0, false=0
i
f (receive_buffer_size : server/listen.c line=38 column=12
r
eceive_buffer_size) {
118        stat : server/listen.c line=52 column=18
s
tat = : pass=0
=
 apr_socket_opt_set : enter=0, leave=0

apr_socket_opt_set : /usr/include/apr-1/apr_network_io.h line=600 column=27
a
pr_socket_opt_set(s : server/listen.c line=43 column=19
s
, APR_SO_RCVBUF, receive_buffer_size : server/listen.c line=38 column=12
r
eceive_buffer_size);
119        if : true=0, false=0
i
f (stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS && : true=0, false=0
&
stat : server/listen.c line=52 column=18
s
tat != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_ENOTIMPL) {
120            ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_WARNING, stat : server/listen.c line=52 column=18
s
tat, p : server/listen.c line=41 column=43
p
,
121                          "make_sock: failed to set ReceiveBufferSize for "
122                          "address %pI, using default",
123                          server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr);
124            /* not a fatal error */
125        }
126    }
127
128#if APR_TCP_NODELAY_INHERITED
129    ap_sock_disable_nagle : enter=0, leave=0

ap_sock_disable_nagle : include/mpm_common.h line=192 column=6
a
p_sock_disable_nagle(s : server/listen.c line=43 column=19
s
);
130#endif
131
132    if : true=0, false=0
i
f ((stat : server/listen.c line=52 column=18
s
tat = : pass=0
=
 apr_socket_bind : enter=0, leave=0

apr_socket_bind : /usr/include/apr-1/apr_network_io.h line=316 column=27
a
pr_socket_bind(s : server/listen.c line=43 column=19
s
server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr)) != : true=0, false=0
!
= APR_SUCCESS) {
133        ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_STARTUP| : pass=0
|
APLOG_CRIT, stat : server/listen.c line=52 column=18
s
tat, p : server/listen.c line=41 column=43
p
,
134                      "make_sock: could not bind to address %pI",
135                      server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr);
136        apr_socket_close : enter=0, leave=0

apr_socket_close : /usr/include/apr-1/apr_network_io.h line=307 column=27
a
pr_socket_close(s : server/listen.c line=43 column=19
s
);
137        return : pass=0
r
eturn stat : server/listen.c line=52 column=18
s
tat;
138    }
139
140    if : true=0, false=0
i
f ((stat : server/listen.c line=52 column=18
s
tat = : pass=0
=
 apr_socket_listen : enter=0, leave=0

apr_socket_listen : /usr/include/apr-1/apr_network_io.h line=326 column=27
a
pr_socket_listen(s : server/listen.c line=43 column=19
s
ap_listenbacklog : server/listen.c line=36 column=12
a
p_listenbacklog)) != : true=0, false=0
!
= APR_SUCCESS) {
141        ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_STARTUP| : pass=0
|
APLOG_ERR, stat : server/listen.c line=52 column=18
s
tat, p : server/listen.c line=41 column=43
p
,
142                      "make_sock: unable to listen for connections "
143                      "on address %pI",
144                      server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr);
145        apr_socket_close : enter=0, leave=0

apr_socket_close : /usr/include/apr-1/apr_network_io.h line=307 column=27
a
pr_socket_close(s : server/listen.c line=43 column=19
s
);
146        return : pass=0
r
eturn stat : server/listen.c line=52 column=18
s
tat;
147    }
148
149#ifdef WIN32
150    /* I seriously doubt that this would work on Unix; I have doubts that
151     * it entirely solves the problem on Win32.  However, since setting
152     * reuseaddr on the listener -prior- to binding the socket has allowed
153     * us to attach to the same port as an already running instance of
154     * Apache, or even another web server, we cannot identify that this
155     * port was exclusively granted to this instance of Apache.
156     *
157     * So set reuseaddr, but do not attempt to do so until we have the
158     * parent listeners successfully bound.
159     */
160    stat = apr_socket_opt_set(s, APR_SO_REUSEADDR, one);
161    if (stat != APR_SUCCESS && stat != APR_ENOTIMPL) {
162        ap_log_perror(APLOG_MARK, APLOG_CRIT, stat, p,
163                    "make_sock: for address %pI, apr_socket_opt_set: (SO_REUSEADDR)",
164                     server->bind_addr);
165        apr_socket_close(s);
166        return stat;
167    }
168#endif
169
170    server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>sd : include/ap_listen.h line=54 column=19
s
= : enter=0, leave=0
=
 s : server/listen.c line=43 column=19
s
;
171    server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>active : include/ap_listen.h line=66 column=9
a
ctive = : enter=0, leave=0
=
 1;
172
173#ifdef MPM_ACCEPT_FUNC
174    server : server/listen.c line=41 column=61
s
erver-> : enter=0, leave=0
-
>accept_func : include/ap_listen.h line=62 column=21
a
ccept_func = : enter=0, leave=0
=
 MPM_ACCEPT_FUNC;
175#else
176    server->accept_func = NULL;
177#endif
178
179    return : pass=0
r
eturn APR_SUCCESS;
180}
181
182static const char* find_accf_name : call=0
f
ind_accf_name(server_rec *s, const char *proto)
183{
184    const char* accf;
185    core_server_config *conf = ap_get_module_config(s : server/listen.c line=182 column=47
s
-> : enter=0, leave=0
-
>module_config : include/httpd.h line=1207 column=30
m
odule_config,
186                                                    &core_module : include/http_core.h line=345 column=31
c
ore_module);
187    if : true=0, false=0
i
f (! : true=0, false=0
!
proto : server/listen.c line=182 column=62
p
roto) {
188        return : pass=0
r
eturn NULL;
189    }
190
191    accf : server/listen.c line=184 column=17
a
ccf = : pass=0
=
 apr_table_get : enter=0, leave=0

apr_table_get : /usr/include/apr-1/apr_tables.h line=258 column=27
a
pr_table_get(conf : server/listen.c line=185 column=25
c
onf-> : enter=0, leave=0
-
>accf_map : include/http_core.h line=617 column=18
a
ccf_map, proto : server/listen.c line=182 column=62
p
roto);
192
193    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

accf : server/listen.c line=184 column=17
aTF
ccf && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp("none", accf : server/listen.c line=184 column=17
a
ccf)) {
194        return : pass=0
r
eturn NULL;
195    }
196
197    return : pass=0
r
eturn accf : server/listen.c line=184 column=17
a
ccf;
198}
199
200static void ap_apply_accept_filter : call=0
a
p_apply_accept_filter(apr_pool_t *p, ap_listen_rec *lis,
201                                           server_rec *server)
202{
203    apr_socket_t *s = lis : server/listen.c line=200 column=66
l
is-> : enter=0, leave=0
-
>sd : include/ap_listen.h line=54 column=19
s
d;
204    const char *accf;
205    apr_status_t rv;
206    const char *proto;
207
208    proto : server/listen.c line=206 column=17
p
roto = : pass=0
=
 lis : server/listen.c line=200 column=66
l
is-> : enter=0, leave=0
-
>protocol : include/ap_listen.h line=70 column=17
p
rotocol;
209
210    if : true=0, false=0
i
f (! : true=0, false=0
!
proto : server/listen.c line=206 column=17
p
roto) {
211        proto : server/listen.c line=206 column=17
p
roto = : pass=0
=
 ap_get_server_protocol : enter=0, leave=0

ap_get_server_protocol : include/http_core.h line=652 column=25
a
p_get_server_protocol(server : server/listen.c line=201 column=56
s
erver);
212    }
213
214
215    accf : server/listen.c line=204 column=17
a
ccf = : pass=0
=
 find_accf_name : enter=0, leave=0

find_accf_name : server/listen.c line=182 column=20
f
ind_accf_name(server : server/listen.c line=201 column=56
s
erver, proto : server/listen.c line=206 column=17
p
roto);
216
217    if : true=0, false=0
i
f (accf : server/listen.c line=204 column=17
a
ccf) {
218#if APR_HAS_SO_ACCEPTFILTER
219        rv = apr_socket_accept_filter(s, apr_pstrdup(p, accf),
220                                      apr_pstrdup(p,""));
221        if (rv != APR_SUCCESS && !APR_STATUS_IS_ENOTIMPL(rv)) {
222            ap_log_perror(APLOG_MARK, APLOG_WARNING, rv, p,
223                          "Failed to enable the '%s' Accept Filter",
224                          accf);
225        }
226#else
227#ifdef APR_TCP_DEFER_ACCEPT
228        rv : server/listen.c line=205 column=18
r
= : pass=0
=
 apr_socket_opt_set : enter=0, leave=0

apr_socket_opt_set : /usr/include/apr-1/apr_network_io.h line=600 column=27
a
pr_socket_opt_set(s : server/listen.c line=203 column=19
s
, APR_TCP_DEFER_ACCEPT, 30);
229        if : true=0, false=0
i
f (rv : server/listen.c line=205 column=18
r
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
APR_STATUS_IS_ENOTIMPL(rv : server/listen.c line=205 column=18
r
v)) {
230            ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_WARNING, rv : server/listen.c line=205 column=18
r
v, p : server/listen.c line=200 column=48
p
,
231                              "Failed to enable APR_TCP_DEFER_ACCEPT");
232        }
233#endif
234#endif
235    }
236}
237
238static apr_status_t close_listeners_on_exec : call=0
c
lose_listeners_on_exec(void *v)
239{
240    ap_close_listeners : enter=0, leave=0

ap_close_listeners : include/ap_listen.h line=94 column=25
a
p_close_listeners();
241    return : pass=0
r
eturn APR_SUCCESS;
242}
243
244static const char *alloc_listener : call=0
a
lloc_listener(process_rec *process, char *addr,
245                                  apr_port_t port, const char* proto)
246{
247    ap_listen_rec **walk, *last;
248    apr_status_t status;
249    apr_sockaddr_t *sa;
250    int found_listener = 0;
251
252    /* see if we've got an old listener for this address:port */
253    for : true=0, false=0
f
or (walk : server/listen.c line=247 column=21
w
alk = : pass=0
=
 &old_listeners : server/listen.c line=35 column=23
o
ld_listeners; * dereference : enter=0, leave=0
*
walk : server/listen.c line=247 column=21
w
alk;) {
254        sa : server/listen.c line=249 column=21
s
= : pass=0
=
 (* dereference : enter=0, leave=0
*
walk : server/listen.c line=247 column=21
w
alk)-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr;
255        /* Some listeners are not real so they will not have a bind_addr. */
256        if : true=0, false=0
i
f (sa : server/listen.c line=249 column=21
s
a) {
257            ap_listen_rec *new;
258            apr_port_t oldport;
259
260            oldport : server/listen.c line=258 column=24
o
ldport = : pass=0
=
 sa : server/listen.c line=249 column=21
s
a-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port;
261            /* If both ports are equivalent, then if their names are equivalent,
262             * then we will re-use the existing record.
263             */
264            if : true=0, false=0
i
f (port : server/listen.c line=245 column=46
p
ort == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
oldport : server/listen.c line=258 column=24
o
ldport && : true=0, false=0
&
&
265                ((! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
addr : server/listen.c line=244 column=63
a
ddr && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
sa : server/listen.c line=249 column=21
s
a-> : enter=0, leave=0
-
>hostname : /usr/include/apr-1/apr_network_io.h line=215 column=11 hostname) || : true=0, false=0
|
|
266                 ((MC/DC independently affect : true=0, false=0

addr : server/listen.c line=244 column=63
aTF
ddr && : true=0, false=0
&
sa : server/listen.c line=249 column=21
s
aMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>hostname : /usr/include/apr-1/apr_network_io.h line=215 column=11 hostname) && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(sa : server/listen.c line=249 column=21
s
a-> : enter=0, leave=0
-
>hostname : /usr/include/apr-1/apr_network_io.h line=215 column=11 hostname, addr : server/listen.c line=244 column=63
a
ddr)))) {
267                new : server/listen.c line=257 column=28
n
ew = : pass=0
=
 * dereference : enter=0, leave=0
*
walk : server/listen.c line=247 column=21
w
alk;
268                *walk : server/listen.c line=247 column=21
w
alk = : enter=0, leave=0
=
 new : server/listen.c line=257 column=28
n
ew-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
269                new : server/listen.c line=257 column=28
n
ew-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext = : enter=0, leave=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners;
270                ap_listeners : server/listen.c line=33 column=32
a
p_listeners = : pass=0
=
 new : server/listen.c line=257 column=28
n
ew;
271                found_listener : server/listen.c line=250 column=9
f
ound_listener = : pass=0
=
 1;
272                continue : pass=0
c
ontinue;
273            }
274        }
275
276        walk : server/listen.c line=247 column=21
w
alk = : pass=0
=
 &(* dereference : enter=0, leave=0
*
walk : server/listen.c line=247 column=21
w
alk)-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
277    }
278
279    if : true=0, false=0
i
f (found_listener : server/listen.c line=250 column=9
f
ound_listener) {
280        return : pass=0
r
eturn NULL;
281    }
282
283    if : true=0, false=0
i
f ((status : server/listen.c line=248 column=18
s
tatus = : pass=0
=
 apr_sockaddr_info_get : enter=0, leave=0

apr_sockaddr_info_get : /usr/include/apr-1/apr_network_io.h line=373 column=27
a
pr_sockaddr_info_get(&sa : server/listen.c line=249 column=21
s
a, addr : server/listen.c line=244 column=63
a
ddr, APR_UNSPEC, port : server/listen.c line=245 column=46
p
ort, 0,
284                                        process : server/listen.c line=244 column=48
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool))
285        != : true=0, false=0
!
= APR_SUCCESS) {
286        ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_CRIT, status : server/listen.c line=248 column=18
s
tatus, process : server/listen.c line=244 column=48
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool,
287                      "alloc_listener: failed to set up sockaddr for %s",
288                      addr : server/listen.c line=244 column=63
a
ddr);
289        return : pass=0
r
eturn "Listen setup failed";
290    }
291
292    /* Initialize to our last configured ap_listener. */
293    last : server/listen.c line=247 column=28
l
ast = : pass=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners;
294    while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0

last : server/listen.c line=247 column=28
lTF
ast && : true=0, false=0
&
last : server/listen.c line=247 column=28
l
astMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>next : include/ap_listen.h line=50 column=20
n
ext) {
295        last : server/listen.c line=247 column=28
l
ast = : pass=0
=
 last : server/listen.c line=247 column=28
l
ast-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
296    }
297
298    while : true=0, false=0
w
hile (sa : server/listen.c line=249 column=21
s
a) {
299        ap_listen_rec *new;
300
301        /* this has to survive restarts */
302        new : server/listen.c line=299 column=24
n
ew = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(process : server/listen.c line=244 column=48
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool, sizeof(ap_listen_rec));
303        new : server/listen.c line=299 column=24
n
ew-> : enter=0, leave=0
-
>active : include/ap_listen.h line=66 column=9
a
ctive = : enter=0, leave=0
=
 0;
304        new : server/listen.c line=299 column=24
n
ew-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext = : enter=0, leave=0
=
 0;
305        new : server/listen.c line=299 column=24
n
ew-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr = : enter=0, leave=0
=
 sa : server/listen.c line=249 column=21
s
a;
306        new : server/listen.c line=299 column=24
n
ew-> : enter=0, leave=0
-
>protocol : include/ap_listen.h line=70 column=17
p
rotocol = : enter=0, leave=0
=
 apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(process : server/listen.c line=244 column=48
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool, proto : server/listen.c line=245 column=64
p
roto);
307
308        /* Go to the next sockaddr. */
309        sa : server/listen.c line=249 column=21
s
= : pass=0
=
 sa : server/listen.c line=249 column=21
s
a-> : enter=0, leave=0
-
>next : /usr/include/apr-1/apr_network_io.h line=234 column=21 next;
310
311        status : server/listen.c line=248 column=18
s
tatus = : pass=0
=
 apr_socket_create : enter=0, leave=0

apr_socket_create : /usr/include/apr-1/apr_network_io.h line=282 column=27
a
pr_socket_create(&new : server/listen.c line=299 column=24
n
ew-> : enter=0, leave=0
-
>sd : include/ap_listen.h line=54 column=19
s
d, new : server/listen.c line=299 column=24
n
ew-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>family : /usr/include/apr-1/apr_network_io.h line=221 column=17 family,
312                                    SOCK_STREAM, 0, process : server/listen.c line=244 column=48
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool);
313
314#if APR_HAVE_IPV6
315        /* What could happen is that we got an IPv6 address, but this system
316         * doesn't actually support IPv6.  Try the next address.
317         */
318        if : true=0, false=0
i
f (status : server/listen.c line=248 column=18
s
tatus != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
addr : server/listen.c line=244 column=63
a
ddr && : true=0, false=0
&
&
319            new : server/listen.c line=299 column=24
n
ew-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>family : /usr/include/apr-1/apr_network_io.h line=221 column=17 family == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_INET6) {
320            continue : pass=0
c
ontinue;
321        }
322#endif
323        if : true=0, false=0
i
f (status : server/listen.c line=248 column=18
s
tatus != : true=0, false=0
!
= APR_SUCCESS) {
324            ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_CRIT, status : server/listen.c line=248 column=18
s
tatus, process : server/listen.c line=244 column=48
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool,
325                          "alloc_listener: failed to get a socket for %s",
326                          addr : server/listen.c line=244 column=63
a
ddr);
327            return : pass=0
r
eturn "Listen setup failed";
328        }
329
330        /* We need to preserve the order returned by getaddrinfo() */
331        if : true=0, false=0
i
f (last : server/listen.c line=247 column=28
l
ast == : true=0, false=0
=
= NULL) {
332            ap_listeners : server/listen.c line=33 column=32
a
p_listeners = : pass=0
=
 last : server/listen.c line=247 column=28
l
ast = : pass=0
=
 new : server/listen.c line=299 column=24
n
ew;
333        } else {
334            last : server/listen.c line=247 column=28
l
ast-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext = : enter=0, leave=0
=
 new : server/listen.c line=299 column=24
n
ew;
335            last : server/listen.c line=247 column=28
l
ast = : pass=0
=
 new : server/listen.c line=299 column=24
n
ew;
336        }
337    }
338
339    return : pass=0
r
eturn NULL;
340}
341/* Evaluates to true if the (apr_sockaddr_t *) addr argument is the
342 * IPv4 match-any-address, 0.0.0.0. */
343#define IS_INADDR_ANY(addr) ((addr)-> : enter=0, leave=0
-
>family : /usr/include/apr-1/apr_network_io.h line=221 column=17 family == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_INET \
344                             && : true=0, false=0
&
& (addr)-> : enter=0, leave=0
-
>sa : /usr/include/apr-1/apr_network_io.h line=248 column=7 sa.sin : /usr/include/apr-1/apr_network_io.h line=238 column=28 sin.sin_addr : /usr/include/netinet/in.h line=243 column=20 sin_addr.s_addr : /usr/include/netinet/in.h line=35 column=15 s_addr == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= INADDR_ANY)
345
346/* Evaluates to true if the (apr_sockaddr_t *) addr argument is the
347 * IPv6 match-any-address, [::]. */
348#define IS_IN6ADDR_ANY(addr) ((addr)-> : enter=0, leave=0
-
>family : /usr/include/apr-1/apr_network_io.h line=221 column=17 family == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_INET6 \
349                              && : true=0, false=0
&
& IN6_IS_ADDR_UNSPECIFIED(&(addr)-> : enter=0, leave=0
-
>sa : /usr/include/apr-1/apr_network_io.h line=248 column=7 sa.sin6 : /usr/include/apr-1/apr_network_io.h line=241 column=29 sin6.sin6_addr : /usr/include/netinet/in.h line=259 column=21 sin6_addr))
350
351/**
352 * Create, open, listen, and bind all sockets.
353 * @param process The process record for the currently running server
354 * @return The number of open sockets
355 */
356static int open_listeners : call=0
o
pen_listeners(apr_pool_t *pool)
357{
358    ap_listen_rec *lr;
359    ap_listen_rec *next;
360    ap_listen_rec *previous;
361    int num_open;
362    const char *userdata_key = "ap_open_listeners";
363    void *data;
364#if AP_NONBLOCK_WHEN_MULTI_LISTEN
365    int use_nonblock;
366#endif
367
368    /* Don't allocate a default listener.  If we need to listen to a
369     * port, then the user needs to have a Listen directive in their
370     * config file.
371     */
372    num_open : server/listen.c line=361 column=9
n
um_open = : pass=0
=
 0;
373    previous : server/listen.c line=360 column=20
p
revious = : pass=0
=
 NULL;
374    for : true=0, false=0
f
or (lr : server/listen.c line=358 column=20
l
= : pass=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners; lr : server/listen.c line=358 column=20
l
r; previous : server/listen.c line=360 column=20
p
revious = : pass=0
=
 lr : server/listen.c line=358 column=20
l
r, lr : server/listen.c line=358 column=20
l
= : pass=0
=
 lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext) {
375        if : true=0, false=0
i
f (lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>active : include/ap_listen.h line=66 column=9
a
ctive) {
376            ++ : pass=0
+
+num_open : server/listen.c line=361 column=9
n
um_open;
377        }
378        else {
379#if APR_HAVE_IPV6
380            ap_listen_rec *cur;
381            int v6only_setting;
382            int skip = 0;
383
384            /* If we have the unspecified IPv4 address (0.0.0.0) and
385             * the unspecified IPv6 address (::) is next, we need to
386             * swap the order of these in the list. We always try to
387             * bind to IPv6 first, then IPv4, since an IPv6 socket
388             * might be able to receive IPv4 packets if V6ONLY is not
389             * enabled, but never the other way around.
390             * Note: In some configurations, the unspecified IPv6 address
391             * could be even later in the list.  This logic only corrects
392             * the situation where it is next in the list, such as when
393             * apr_sockaddr_info_get() returns an IPv4 and an IPv6 address,
394             * in that order.
395             */
396            if : true=0, false=0
i
f (lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= NULL
397                && : true=0, false=0
&
& IS_INADDR_ANY(lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr)
398                && : true=0, false=0
&
lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port
399                && : true=0, false=0
&
& IS_IN6ADDR_ANY(lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr)) {
400                /* Exchange lr and lr->next */
401                next : server/listen.c line=359 column=20
n
ext = : pass=0
=
 lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
402                lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext = : enter=0, leave=0
=
 next : server/listen.c line=359 column=20
n
ext-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
403                next : server/listen.c line=359 column=20
n
ext-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext = : enter=0, leave=0
=
 lr : server/listen.c line=358 column=20
l
r;
404                if : true=0, false=0
i
f (previous : server/listen.c line=360 column=20
p
revious) {
405                    previous : server/listen.c line=360 column=20
p
revious-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext = : enter=0, leave=0
=
 next : server/listen.c line=359 column=20
n
ext;
406                }
407                else {
408                    ap_listeners : server/listen.c line=33 column=32
a
p_listeners = : pass=0
=
 next : server/listen.c line=359 column=20
n
ext;
409                }
410                lr : server/listen.c line=358 column=20
l
= : pass=0
=
 next : server/listen.c line=359 column=20
n
ext;
411            }
412
413            /* If we are trying to bind to 0.0.0.0 and a previous listener
414             * was :: on the same port and in turn that socket does not have
415             * the IPV6_V6ONLY flag set; we must skip the current attempt to
416             * listen (which would generate an error). IPv4 will be handled
417             * on the established IPv6 socket.
418             */
419            if : true=0, false=0
i
f (IS_INADDR_ANY(lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr)) {
420                for : true=0, false=0
f
or (cur : server/listen.c line=380 column=28
c
ur = : pass=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners; cur : server/listen.c line=380 column=28
c
ur != : true=0, false=0
!
lr : server/listen.c line=358 column=20
l
r; cur : server/listen.c line=380 column=28
c
ur = : pass=0
=
 cur : server/listen.c line=380 column=28
c
ur-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext) {
421                    if : true=0, false=0
i
f (lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
cur : server/listen.c line=380 column=28
c
ur-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port
422                        && : true=0, false=0
&
& IS_IN6ADDR_ANY(cur : server/listen.c line=380 column=28
c
ur-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr)
423                        && : true=0, false=0
&
apr_socket_opt_get : enter=0, leave=0

apr_socket_opt_get : /usr/include/apr-1/apr_network_io.h line=636 column=27
a
pr_socket_opt_get(cur : server/listen.c line=380 column=28
c
ur-> : enter=0, leave=0
-
>sd : include/ap_listen.h line=54 column=19
s
d, APR_IPV6_V6ONLY,
424                                              &v6only_setting : server/listen.c line=381 column=17
v
6only_setting) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_SUCCESS
425                        && : true=0, false=0
&
v6only_setting : server/listen.c line=381 column=17
v
6only_setting == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 0) {
426
427                        /* Remove the current listener from the list */
428                        previous : server/listen.c line=360 column=20
p
revious-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext = : enter=0, leave=0
=
 lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
429                        lr : server/listen.c line=358 column=20
l
= : pass=0
=
 previous : server/listen.c line=360 column=20
p
revious; /* maintain current value of previous after
430                                        * post-loop expression is evaluated
431                                        */
432                        skip : server/listen.c line=382 column=17
s
kip = : pass=0
=
 1;
433                        break : pass=0
b
reak;
434                    }
435                }
436                if : true=0, false=0
i
f (skip : server/listen.c line=382 column=17
s
kip) {
437                    continue : pass=0
c
ontinue;
438                }
439            }
440#endif
441            if : true=0, false=0
i
f (make_sock : enter=0, leave=0

make_sock : server/listen.c line=41 column=21
m
ake_sock(pool : server/listen.c line=356 column=39
p
ool, lr : server/listen.c line=358 column=20
l
r) == : true=0, false=0
=
= APR_SUCCESS) {
442                ++ : pass=0
+
+num_open : server/listen.c line=361 column=9
n
um_open;
443                lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>active : include/ap_listen.h line=66 column=9
a
ctive = : enter=0, leave=0
=
 1;
444            }
445            else {
446#if APR_HAVE_IPV6
447                /* If we tried to bind to ::, and the next listener is
448                 * on 0.0.0.0 with the same port, don't give a fatal
449                 * error. The user will still get a warning from make_sock
450                 * though.
451                 */
452                if : true=0, false=0
i
f (lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= NULL
453                    && : true=0, false=0
&
& IS_IN6ADDR_ANY(lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr)
454                    && : true=0, false=0
&
lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port
455                    && : true=0, false=0
&
& IS_INADDR_ANY(lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr)) {
456
457                    /* Remove the current listener from the list */
458                    if : true=0, false=0
i
f (previous : server/listen.c line=360 column=20
p
revious) {
459                        previous : server/listen.c line=360 column=20
p
revious-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext = : enter=0, leave=0
=
 lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
460                    }
461                    else {
462                        ap_listeners : server/listen.c line=33 column=32
a
p_listeners = : pass=0
=
 lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
463                    }
464
465                    /* Although we've removed ourselves from the list,
466                     * we need to make sure that the next iteration won't
467                     * consider "previous" a working IPv6 '::' socket.
468                     * Changing the family is enough to make sure the
469                     * conditions before make_sock() fail.
470                     */
471                    lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>family : /usr/include/apr-1/apr_network_io.h line=221 column=17 family = : enter=0, leave=0
=
 AF_INET;
472
473                    continue : pass=0
c
ontinue;
474                }
475#endif
476                /* fatal error */
477                return : pass=0
r
eturn -1;
478            }
479        }
480    }
481
482    /* close the old listeners */
483    for : true=0, false=0
f
or (lr : server/listen.c line=358 column=20
l
= : pass=0
=
 old_listeners : server/listen.c line=35 column=23
o
ld_listeners; lr : server/listen.c line=358 column=20
l
r; lr : server/listen.c line=358 column=20
l
= : pass=0
=
 next : server/listen.c line=359 column=20
n
ext) {
484        apr_socket_close : enter=0, leave=0

apr_socket_close : /usr/include/apr-1/apr_network_io.h line=307 column=27
a
pr_socket_close(lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>sd : include/ap_listen.h line=54 column=19
s
d);
485        lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>active : include/ap_listen.h line=66 column=9
a
ctive = : enter=0, leave=0
=
 0;
486        next : server/listen.c line=359 column=20
n
ext = : pass=0
=
 lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext;
487    }
488    old_listeners : server/listen.c line=35 column=23
o
ld_listeners = : pass=0
=
 NULL;
489
490#if AP_NONBLOCK_WHEN_MULTI_LISTEN
491    /* if multiple listening sockets, make them non-blocking so that
492     * if select()/poll() reports readability for a reset connection that
493     * is already forgotten about by the time we call accept, we won't
494     * be hung until another connection arrives on that port
495     */
496    use_nonblock : server/listen.c line=365 column=9
u
se_nonblock = : pass=0
=
 (MC/DC independently affect : true=0, false=0

ap_listeners : server/listen.c line=33 column=32
aTF
p_listeners && : true=0, false=0
&
ap_listeners : server/listen.c line=33 column=32
a
p_listenersMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>next : include/ap_listen.h line=50 column=20
n
ext);
497    for : true=0, false=0
f
or (lr : server/listen.c line=358 column=20
l
= : pass=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners; lr : server/listen.c line=358 column=20
l
r; lr : server/listen.c line=358 column=20
l
= : pass=0
=
 lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext) {
498        apr_status_t status;
499
500        status : server/listen.c line=498 column=22
s
tatus = : pass=0
=
 apr_socket_opt_set : enter=0, leave=0

apr_socket_opt_set : /usr/include/apr-1/apr_network_io.h line=600 column=27
a
pr_socket_opt_set(lr : server/listen.c line=358 column=20
l
r-> : enter=0, leave=0
-
>sd : include/ap_listen.h line=54 column=19
s
d, APR_SO_NONBLOCK, use_nonblock : server/listen.c line=365 column=9
u
se_nonblock);
501        if : true=0, false=0
i
f (status : server/listen.c line=498 column=22
s
tatus != : true=0, false=0
!
= APR_SUCCESS) {
502            ap_log_perror : enter=0, leave=0

ap_log_perror : include/http_log.h line=195 column=18
a
p_log_perror(APLOG_MARK, APLOG_STARTUP| : pass=0
|
APLOG_ERR, status : server/listen.c line=498 column=22
s
tatus, pool : server/listen.c line=356 column=39
p
ool,
503                          "unable to control socket non-blocking status");
504            return : pass=0
r
eturn -1;
505        }
506    }
507#endif /* AP_NONBLOCK_WHEN_MULTI_LISTEN */
508
509    /* we come through here on both passes of the open logs phase
510     * only register the cleanup once... otherwise we try to close
511     * listening sockets twice when cleaning up prior to exec
512     */
513    apr_pool_userdata_get : enter=0, leave=0

apr_pool_userdata_get : /usr/include/apr-1/apr_pools.h line=576 column=27
a
pr_pool_userdata_get(&data : server/listen.c line=363 column=11
d
ata, userdata_key : server/listen.c line=362 column=17
u
serdata_key, pool : server/listen.c line=356 column=39
p
ool);
514    if : true=0, false=0
i
f (! : true=0, false=0
!
data : server/listen.c line=363 column=11
d
ata) {
515        apr_pool_userdata_set : enter=0, leave=0

apr_pool_userdata_set : /usr/include/apr-1/apr_pools.h line=539 column=27
a
pr_pool_userdata_set((const void *)1, userdata_key : server/listen.c line=362 column=17
u
serdata_key,
516                              apr_pool_cleanup_null : /usr/include/apr-1/apr_pools.h line=682 column=34 apr_pool_cleanup_null, pool : server/listen.c line=356 column=39
p
ool);
517        apr_pool_cleanup_register : enter=0, leave=0

apr_pool_cleanup_register : /usr/include/apr-1/apr_pools.h line=603 column=19
a
pr_pool_cleanup_register(pool : server/listen.c line=356 column=39
p
ool, NULL, apr_pool_cleanup_null : /usr/include/apr-1/apr_pools.h line=682 column=34 apr_pool_cleanup_null,
518                                  close_listeners_on_exec : server/listen.c line=238 column=21
c
lose_listeners_on_exec);
519    }
520
521    return : pass=0
r
eturn num_open : server/listen.c line=361 column=9
n
um_open conditional operator : true=0, false=0
?
 0 : -1;
522}
523
524AP_DECLARE(int) ap_setup_listeners : call=0
a
p_setup_listeners(server_rec *s)
525{
526    server_rec *ls;
527    server_addr_rec *addr;
528    ap_listen_rec *lr;
529    int num_listeners = 0;
530    const char* proto;
531    int found;
532
533    for : true=0, false=0
f
or (ls : server/listen.c line=526 column=17
l
= : pass=0
=
 s : server/listen.c line=524 column=48
s
ls : server/listen.c line=526 column=17
l
s; ls : server/listen.c line=526 column=17
l
= : pass=0
=
 ls : server/listen.c line=526 column=17
l
s-> : enter=0, leave=0
-
>next : include/httpd.h line=1176 column=17
n
ext) {
534        proto : server/listen.c line=530 column=17
p
roto = : pass=0
=
 ap_get_server_protocol : enter=0, leave=0

ap_get_server_protocol : include/http_core.h line=652 column=25
a
p_get_server_protocol(ls : server/listen.c line=526 column=17
l
s);
535        if : true=0, false=0
i
f (! : true=0, false=0
!
proto : server/listen.c line=530 column=17
p
roto) {
536            found : server/listen.c line=531 column=9
f
ound = : pass=0
=
 0;
537            /* No protocol was set for this vhost,
538             * use the default for this listener.
539             */
540            for : true=0, false=0
f
or (addr : server/listen.c line=527 column=22
a
ddr = : pass=0
=
 ls : server/listen.c line=526 column=17
l
s-> : enter=0, leave=0
-
>addrs : include/httpd.h line=1214 column=22
a
ddrs; MC/DC independently affect : true=0, false=0

addr : server/listen.c line=527 column=22
aTF
ddr && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
found : server/listen.c line=531 column=9
f
ound; addr : server/listen.c line=527 column=22
a
ddr = : pass=0
=
 addr : server/listen.c line=527 column=22
a
ddr-> : enter=0, leave=0
-
>next : include/httpd.h line=1160 column=22
n
ext) {
541                for : true=0, false=0
f
or (lr : server/listen.c line=528 column=20
l
= : pass=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners; lr : server/listen.c line=528 column=20
l
r; lr : server/listen.c line=528 column=20
l
= : pass=0
=
 lr : server/listen.c line=528 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext) {
542                    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0
apr_sockaddr_equal : enter=0, leave=0

apr_sockaddr_equal : /usr/include/apr-1/apr_network_io.h line=696 column=18
aTF
pr_sockaddr_equal(lr : server/listen.c line=528 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr, addr : server/listen.c line=527 column=22
a
ddr-> : enter=0, leave=0
-
>host_addr : include/httpd.h line=1162 column=21
h
ost_addr) && : true=0, false=0
&
&
543                        lr : server/listen.c line=528 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
addr : server/listen.c line=527 column=22
a
ddr-> : enter=0, leave=0
-
>host_port : include/httpd.h line=1164 column=16
h
ost_port) {
544                        ap_set_server_protocol : enter=0, leave=0

ap_set_server_protocol : include/http_core.h line=653 column=18
a
p_set_server_protocol(ls : server/listen.c line=526 column=17
l
s, lr : server/listen.c line=528 column=20
l
r-> : enter=0, leave=0
-
>protocol : include/ap_listen.h line=70 column=17
p
rotocol);
545                        found : server/listen.c line=531 column=9
f
ound = : pass=0
=
 1;
546                        break : pass=0
b
reak;
547                    }
548                }
549            }
550
551            if : true=0, false=0
i
f (! : true=0, false=0
!
found : server/listen.c line=531 column=9
f
ound) {
552                /* TODO: set protocol defaults per-Port, eg 25=smtp */
553                ap_set_server_protocol : enter=0, leave=0

ap_set_server_protocol : include/http_core.h line=653 column=18
a
p_set_server_protocol(ls : server/listen.c line=526 column=17
l
s, "http");
554            }
555        }
556    }
557
558    if : true=0, false=0
i
f (open_listeners : enter=0, leave=0

open_listeners : server/listen.c line=356 column=12
o
pen_listeners(s : server/listen.c line=524 column=48
s
-> : enter=0, leave=0
-
>process : include/httpd.h line=1174 column=18
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool)) {
559       return : pass=0
r
eturn 0;
560    }
561
562    for : true=0, false=0
f
or (lr : server/listen.c line=528 column=20
l
= : pass=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners; lr : server/listen.c line=528 column=20
l
r; lr : server/listen.c line=528 column=20
l
= : pass=0
=
 lr : server/listen.c line=528 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext) {
563        num_listeners : server/listen.c line=529 column=9
n
um_listeners++ : pass=0
+
+;
564        found : server/listen.c line=531 column=9
f
ound = : pass=0
=
 0;
565        for : true=0, false=0
f
or (ls : server/listen.c line=526 column=17
l
= : pass=0
=
 s : server/listen.c line=524 column=48
s
MC/DC independently affect : true=0, false=0

ls : server/listen.c line=526 column=17
lTF
&& : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
found : server/listen.c line=531 column=9
f
ound; ls : server/listen.c line=526 column=17
l
= : pass=0
=
 ls : server/listen.c line=526 column=17
l
s-> : enter=0, leave=0
-
>next : include/httpd.h line=1176 column=17
n
ext) {
566            for : true=0, false=0
f
or (addr : server/listen.c line=527 column=22
a
ddr = : pass=0
=
 ls : server/listen.c line=526 column=17
l
s-> : enter=0, leave=0
-
>addrs : include/httpd.h line=1214 column=22
a
ddrs; MC/DC independently affect : true=0, false=0

addr : server/listen.c line=527 column=22
aTF
ddr && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
found : server/listen.c line=531 column=9
f
ound; addr : server/listen.c line=527 column=22
a
ddr = : pass=0
=
 addr : server/listen.c line=527 column=22
a
ddr-> : enter=0, leave=0
-
>next : include/httpd.h line=1160 column=22
n
ext) {
567                if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0
apr_sockaddr_equal : enter=0, leave=0

apr_sockaddr_equal : /usr/include/apr-1/apr_network_io.h line=696 column=18
aTF
pr_sockaddr_equal(lr : server/listen.c line=528 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr, addr : server/listen.c line=527 column=22
a
ddr-> : enter=0, leave=0
-
>host_addr : include/httpd.h line=1162 column=21
h
ost_addr) && : true=0, false=0
&
&
568                    lr : server/listen.c line=528 column=20
l
r-> : enter=0, leave=0
-
>bind_addr : include/ap_listen.h line=58 column=21
b
ind_addr-> : enter=0, leave=0
-
>port : /usr/include/apr-1/apr_network_io.h line=219 column=16 port == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
addr : server/listen.c line=527 column=22
a
ddr-> : enter=0, leave=0
-
>host_port : include/httpd.h line=1164 column=16
h
ost_port) {
569                    found : server/listen.c line=531 column=9
f
ound = : pass=0
=
 1;
570                    ap_apply_accept_filter : enter=0, leave=0

ap_apply_accept_filter : server/listen.c line=200 column=13
a
p_apply_accept_filter(s : server/listen.c line=524 column=48
s
-> : enter=0, leave=0
-
>process : include/httpd.h line=1174 column=18
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool, lr : server/listen.c line=528 column=20
l
r, ls : server/listen.c line=526 column=17
l
s);
571                }
572            }
573        }
574
575        if : true=0, false=0
i
f (! : true=0, false=0
!
found : server/listen.c line=531 column=9
f
ound) {
576            ap_apply_accept_filter : enter=0, leave=0

ap_apply_accept_filter : server/listen.c line=200 column=13
a
p_apply_accept_filter(s : server/listen.c line=524 column=48
s
-> : enter=0, leave=0
-
>process : include/httpd.h line=1174 column=18
p
rocess-> : enter=0, leave=0
-
>pool : include/httpd.h line=764 column=17
p
ool, lr : server/listen.c line=528 column=20
l
r, s : server/listen.c line=524 column=48
s
);
577        }
578    }
579
580    return : pass=0
r
eturn num_listeners : server/listen.c line=529 column=9
n
um_listeners;
581}
582
583AP_DECLARE_NONSTD(void) ap_close_listeners : call=0
a
p_close_listeners(void)
584{
585    ap_listen_rec *lr;
586
587    for : true=0, false=0
f
or (lr : server/listen.c line=585 column=20
l
= : pass=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners; lr : server/listen.c line=585 column=20
l
r; lr : server/listen.c line=585 column=20
l
= : pass=0
=
 lr : server/listen.c line=585 column=20
l
r-> : enter=0, leave=0
-
>next : include/ap_listen.h line=50 column=20
n
ext) {
588        apr_socket_close : enter=0, leave=0

apr_socket_close : /usr/include/apr-1/apr_network_io.h line=307 column=27
a
pr_socket_close(lr : server/listen.c line=585 column=20
l
r-> : enter=0, leave=0
-
>sd : include/ap_listen.h line=54 column=19
s
d);
589        lr : server/listen.c line=585 column=20
l
r-> : enter=0, leave=0
-
>active : include/ap_listen.h line=66 column=9
a
ctive = : enter=0, leave=0
=
 0;
590    }
591}
592
593AP_DECLARE(void) ap_listen_pre_config : call=0
a
p_listen_pre_config(void)
594{
595    old_listeners : server/listen.c line=35 column=23
o
ld_listeners = : pass=0
=
 ap_listeners : server/listen.c line=33 column=32
a
p_listeners;
596    ap_listeners : server/listen.c line=33 column=32
a
p_listeners = : pass=0
=
 NULL;
597    ap_listenbacklog : server/listen.c line=36 column=12
a
p_listenbacklog = : pass=0
=
 DEFAULT_LISTENBACKLOG;
598}
599
600
601AP_DECLARE_NONSTD(const char *) ap_set_listener : call=0
a
p_set_listener(cmd_parms *cmd, void *dummy,
602                                                int argc, char *const argv[])
603{
604    char *host, *scope_id, *proto;
605    apr_port_t port;
606    apr_status_t rv;
607    const char *err = ap_check_cmd_context : enter=0, leave=0

ap_check_cmd_context : include/http_config.h line=710 column=26
a
p_check_cmd_context(cmd : server/listen.c line=601 column=60
c
md, GLOBAL_ONLY);
608
609    if : true=0, false=0
i
f (err : server/listen.c line=607 column=17
e
rr != : true=0, false=0
!
= NULL) {
610        return : pass=0
r
eturn err : server/listen.c line=607 column=17
e
rr;
611    }
612
613    if : true=0, false=0
i
f (argc : server/listen.c line=602 column=53
a
rgc < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 1 || : true=0, false=0
|
argc : server/listen.c line=602 column=53
a
rgc > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 2) {
614        return : pass=0
r
eturn "Listen requires 1 or 2 arguments.";
615    }
616
617    rv : server/listen.c line=606 column=18
r
= : pass=0
=
 apr_parse_addr_port : enter=0, leave=0

apr_parse_addr_port : /usr/include/apr-1/apr_network_io.h line=420 column=27
a
pr_parse_addr_port(&host : server/listen.c line=604 column=11
h
ost, &scope_id : server/listen.c line=604 column=18
s
cope_id, &port : server/listen.c line=605 column=16
p
ort, argv : server/listen.c line=602 column=71
a
rgv[] : enter=0, leave=0
[
0], cmd : server/listen.c line=601 column=60
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool);
618    if : true=0, false=0
i
f (rv : server/listen.c line=606 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
619        return : pass=0
r
eturn "Invalid address or port";
620    }
621
622    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

host : server/listen.c line=604 column=11
hTF
ost && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(host : server/listen.c line=604 column=11
h
ost, "*")) {
623        host : server/listen.c line=604 column=11
h
ost = : pass=0
=
 NULL;
624    }
625
626    if : true=0, false=0
i
f (scope_id : server/listen.c line=604 column=18
s
cope_id) {
627        /* XXX scope id support is useful with link-local IPv6 addresses */
628        return : pass=0
r
eturn "Scope id is not supported";
629    }
630
631    if : true=0, false=0
i
f (! : true=0, false=0
!
port : server/listen.c line=605 column=16
p
ort) {
632        return : pass=0
r
eturn "Port must be specified";
633    }
634
635    if : true=0, false=0
i
f (argc : server/listen.c line=602 column=53
a
rgc != : true=0, false=0
!
= 2) {
636        if : true=0, false=0
i
f (port : server/listen.c line=605 column=16
p
ort == : true=0, false=0
=
= 443) {
637            proto : server/listen.c line=604 column=29
p
roto = : pass=0
=
 "https";
638        } else {
639            proto : server/listen.c line=604 column=29
p
roto = : pass=0
=
 "http";
640        }
641    }
642    else {
643        proto : server/listen.c line=604 column=29
p
roto = : pass=0
=
 apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(cmd : server/listen.c line=601 column=60
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, argv : server/listen.c line=602 column=71
a
rgv[] : enter=0, leave=0
[
1]);
644        ap_str_tolower : enter=0, leave=0

ap_str_tolower : include/httpd.h line=1739 column=18
a
p_str_tolower(proto : server/listen.c line=604 column=29
p
roto);
645    }
646
647    return : pass=0
r
eturn alloc_listener : enter=0, leave=0

alloc_listener : server/listen.c line=244 column=20
a
lloc_listener(cmd : server/listen.c line=601 column=60
c
md-> : enter=0, leave=0
-
>server : include/http_config.h line=296 column=17
s
erver-> : enter=0, leave=0
-
>process : include/httpd.h line=1174 column=18
p
rocess, host : server/listen.c line=604 column=11
h
ost, port : server/listen.c line=605 column=16
p
ort, proto : server/listen.c line=604 column=29
p
roto);
648}
649
650AP_DECLARE_NONSTD(const char *) ap_set_listenbacklog : call=0
a
p_set_listenbacklog(cmd_parms *cmd,
651                                                     void *dummy,
652                                                     const char *arg)
653{
654    int b;
655    const char *err = ap_check_cmd_context : enter=0, leave=0

ap_check_cmd_context : include/http_config.h line=710 column=26
a
p_check_cmd_context(cmd : server/listen.c line=650 column=65
c
md, GLOBAL_ONLY);
656
657    if : true=0, false=0
i
f (err : server/listen.c line=655 column=17
e
rr != : true=0, false=0
!
= NULL) {
658        return : pass=0
r
eturn err : server/listen.c line=655 column=17
e
rr;
659    }
660
661    b : server/listen.c line=654 column=9
b
 = : pass=0
=
 atoi : enter=0, leave=0

atoi : /usr/include/stdlib.h line=148 column=12
a
toi(arg : server/listen.c line=652 column=66
a
rg);
662    if : true=0, false=0
i
f (b : server/listen.c line=654 column=9
b
 < : true=0, false=0
<
 1) {
663        return : pass=0
r
eturn "ListenBacklog must be > 0";
664    }
665
666    ap_listenbacklog : server/listen.c line=36 column=12
a
p_listenbacklog = : pass=0
=
 b : server/listen.c line=654 column=9
b
;
667    return : pass=0
r
eturn NULL;
668}
669
670AP_DECLARE_NONSTD(const char *) ap_set_send_buffer_size : call=0
a
p_set_send_buffer_size(cmd_parms *cmd,
671                                                        void *dummy,
672                                                        const char *arg)
673{
674    int s = atoi : enter=0, leave=0

atoi : /usr/include/stdlib.h line=148 column=12
a
toi(arg : server/listen.c line=672 column=69
a
rg);
675    const char *err = ap_check_cmd_context : enter=0, leave=0

ap_check_cmd_context : include/http_config.h line=710 column=26
a
p_check_cmd_context(cmd : server/listen.c line=670 column=68
c
md, GLOBAL_ONLY);
676
677    if : true=0, false=0
i
f (err : server/listen.c line=675 column=17
e
rr != : true=0, false=0
!
= NULL) {
678        return : pass=0
r
eturn err : server/listen.c line=675 column=17
e
rr;
679    }
680
681    if : true=0, false=0
i
f (s : server/listen.c line=674 column=9
s
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 512 && : true=0, false=0
&
s : server/listen.c line=674 column=9
s
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= 0) {
682        return : pass=0
r
eturn "SendBufferSize must be >= 512 bytes, or 0 for system default.";
683    }
684
685    send_buffer_size : server/listen.c line=37 column=12
s
end_buffer_size = : pass=0
=
 s : server/listen.c line=674 column=9
s
;
686    return : pass=0
r
eturn NULL;
687}
688
689AP_DECLARE_NONSTD(const char *) ap_set_receive_buffer_size : call=0
a
p_set_receive_buffer_size(cmd_parms *cmd,
690                                                           void *dummy,
691                                                           const char *arg)
692{
693    int s = atoi : enter=0, leave=0

atoi : /usr/include/stdlib.h line=148 column=12
a
toi(arg : server/listen.c line=691 column=72
a
rg);
694    const char *err = ap_check_cmd_context : enter=0, leave=0

ap_check_cmd_context : include/http_config.h line=710 column=26
a
p_check_cmd_context(cmd : server/listen.c line=689 column=71
c
md, GLOBAL_ONLY);
695
696    if : true=0, false=0
i
f (err : server/listen.c line=694 column=17
e
rr != : true=0, false=0
!
= NULL) {
697        return : pass=0
r
eturn err : server/listen.c line=694 column=17
e
rr;
698    }
699
700    if : true=0, false=0
i
f (s : server/listen.c line=693 column=9
s
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 512 && : true=0, false=0
&
s : server/listen.c line=693 column=9
s
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= 0) {
701        return : pass=0
r
eturn "ReceiveBufferSize must be >= 512 bytes, or 0 for system default.";
702    }
703
704    receive_buffer_size : server/listen.c line=38 column=12
r
eceive_buffer_size = : pass=0
=
 s : server/listen.c line=693 column=9
s
;
705    return : pass=0
r
eturn NULL;
706}
707[EOF]


Generated by expcov