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

 Index  Statistics  Last 
Directory./server
Filenamescoreboard.c
ModifiedTue Jul 15 05:34:32 2014

Pass Half Fail Excluded Total
Function
0
0.00%
21
100.00%
0
0.00%
21
100%
Expressions
0
0.00%
288
100.00%
0
0.00%
288
100%
Conditions
0
0.00%
0
0.00%
54
100.00%
0
0.00%
54
100%
MC/DC
0
0.00%
16
100.00%
0
0.00%
16
100%
Branches

if
0
0.00%
0
0.00%
40
100.00%
0
0.00%
40
100%
for
0
0.00%
0
0.00%
3
100.00%
0
0.00%
3
100%
while
0
0.00%
0
0.00%
0
0.00%
0
0.00%
0
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.h"
18#include "apr_strings.h"
19#include "apr_portable.h"
20#include "apr_lib.h"
21
22#define APR_WANT_STRFUNC
23#include "apr_want.h"
24
25#if APR_HAVE_SYS_TYPES_H
26#include <sys/types.h>
27#endif
28
29#include "ap_config.h"
30#include "httpd.h"
31#include "http_log.h"
32#include "http_main.h"
33#include "http_core.h"
34#include "http_config.h"
35#include "ap_mpm.h"
36
37#include "mpm.h"
38#include "scoreboard.h"
39
40AP_DECLARE_DATA scoreboard *ap_scoreboard_image = NULL;
41AP_DECLARE_DATA const char *ap_scoreboard_fname = NULL;
42AP_DECLARE_DATA int ap_extended_status = 0;
43AP_DECLARE_DATA int ap_mod_status_reqtail = 0;
44
45static ap_scoreboard_e scoreboard_type;
46
47#if APR_HAS_SHARED_MEMORY
48
49#include "apr_shm.h"
50
51#ifndef WIN32
52static /* but must be exported to mpm_winnt */
53#endif
54        apr_shm_t *ap_scoreboard_shm = NULL;
55
56#endif
57
58APR_HOOK_STRUCT(
59    APR_HOOK_LINK(pre_mpm)
60)
61
62AP_IMPLEMENT_HOOK_RUN_ALL(int,pre_mpm,
63                          (apr_pool_t *p, ap_scoreboard_e sb_type),
64                          (p : server/scoreboard.c line=63 column=40
p
sb_type : server/scoreboard.c line=63 column=59
s
b_type),OK,DECLINED)
65
66static APR_OPTIONAL_FN_TYPE(ap_proxy_lb_workers)
67                                *proxy_lb_workers;
68
69struct ap_sb_handle_t {
70    int child_num;
71    int thread_num;
72};
73
74static int server_limit, thread_limit, lb_limit;
75static apr_size_t scoreboard_size;
76
77/*
78 * ToDo:
79 * This function should be renamed to cleanup_shared
80 * and it should handle cleaning up a scoreboard shared
81 * between processes using any form of IPC (file, shared memory
82 * segment, etc.). Leave it as is now because it is being used
83 * by various MPMs.
84 */
85static apr_status_t ap_cleanup_shared_mem : call=0
a
p_cleanup_shared_mem(void *d)
86{
87#if APR_HAS_SHARED_MEMORY
88    free : enter=0, leave=0

free : /usr/include/stdlib.h line=488 column=13
f
ree(ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image);
89    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image = : pass=0
=
 NULL;
90    apr_shm_destroy : enter=0, leave=0

apr_shm_destroy : /usr/include/apr-1/apr_shm.h line=95 column=27
a
pr_shm_destroy(ap_scoreboard_shm : server/scoreboard.c line=54 column=20
a
p_scoreboard_shm);
91#endif
92    return : pass=0
r
eturn APR_SUCCESS;
93}
94
95AP_DECLARE(int) ap_calc_scoreboard_size : call=0
a
p_calc_scoreboard_size(void)
96{
97    ap_mpm_query : enter=0, leave=0

ap_mpm_query : include/ap_mpm.h line=161 column=26
a
p_mpm_query(AP_MPMQ_HARD_LIMIT_THREADS, &thread_limit : server/scoreboard.c line=74 column=26
t
hread_limit);
98    ap_mpm_query : enter=0, leave=0

ap_mpm_query : include/ap_mpm.h line=161 column=26
a
p_mpm_query(AP_MPMQ_HARD_LIMIT_DAEMONS, &server_limit : server/scoreboard.c line=74 column=12
s
erver_limit);
99
100    if : true=0, false=0
i
f (! : true=0, false=0
!
proxy_lb_workers : server/scoreboard.c line=67 column=34
p
roxy_lb_workers)
101        proxy_lb_workers : server/scoreboard.c line=67 column=34
p
roxy_lb_workers = : pass=0
=
 APR_RETRIEVE_OPTIONAL_FN(ap_proxy_lb_workers);
102    if : true=0, false=0
i
f (proxy_lb_workers : server/scoreboard.c line=67 column=34
p
roxy_lb_workers)
103        lb_limit : server/scoreboard.c line=74 column=40
l
b_limit = : pass=0
=
 proxy_lb_workers : enter=0, leave=0

proxy_lb_workers : server/scoreboard.c line=67 column=34
p
roxy_lb_workers();
104    else
105        lb_limit : server/scoreboard.c line=74 column=40
l
b_limit = : pass=0
=
 0;
106
107    scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size = : pass=0
=
 sizeof(global_score);
108    scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size += : pass=0
+
= sizeof(process_score) * : pass=0
*
 server_limit : server/scoreboard.c line=74 column=12
s
erver_limit;
109    scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size += : pass=0
+
= sizeof(worker_score) * : pass=0
*
 server_limit : server/scoreboard.c line=74 column=12
s
erver_limit * : pass=0
*
 thread_limit : server/scoreboard.c line=74 column=26
t
hread_limit;
110    if : true=0, false=0
i
f (lb_limit : server/scoreboard.c line=74 column=40
l
b_limit)
111        scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size += : pass=0
+
= sizeof(lb_score) * : pass=0
*
 lb_limit : server/scoreboard.c line=74 column=40
l
b_limit;
112
113    return : pass=0
r
eturn scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size;
114}
115
116void ap_init_scoreboard : call=0
a
p_init_scoreboard(void *shared_score)
117{
118    char *more_storage;
119    int i;
120
121    ap_calc_scoreboard_size : enter=0, leave=0

ap_calc_scoreboard_size : server/scoreboard.c line=95 column=17
a
p_calc_scoreboard_size();
122    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image = : pass=0
=
123        calloc : enter=0, leave=0

calloc : /usr/include/stdlib.h line=473 column=14
c
alloc(1, sizeof(scoreboard) + : pass=0
+
 server_limit : server/scoreboard.c line=74 column=12
s
erver_limit * : pass=0
*
 sizeof(worker_score *));
124    more_storage : server/scoreboard.c line=118 column=11
m
ore_storage = : pass=0
=
 shared_score : server/scoreboard.c line=116 column=31
s
hared_score;
125    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global = : enter=0, leave=0
=
 (global_score *)more_storage : server/scoreboard.c line=118 column=11
m
ore_storage;
126    more_storage : server/scoreboard.c line=118 column=11
m
ore_storage += : pass=0
+
= sizeof(global_score);
127    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>parent : include/scoreboard.h line=167 column=20 parent = : enter=0, leave=0
=
 (process_score *)more_storage : server/scoreboard.c line=118 column=11
m
ore_storage;
128    more_storage : server/scoreboard.c line=118 column=11
m
ore_storage += : pass=0
+
= sizeof(process_score) * : pass=0
*
 server_limit : server/scoreboard.c line=74 column=12
s
erver_limit;
129    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>servers : include/scoreboard.h line=168 column=20 servers = : enter=0, leave=0
=
130        (worker_score **)((char*)ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image + : pass=0
+
 sizeof(scoreboard));
131    for : true=0, false=0
f
or (i : server/scoreboard.c line=119 column=9
i
 = : pass=0
=
 0; i : server/scoreboard.c line=119 column=9
i
 < : true=0, false=0
<
 server_limit : server/scoreboard.c line=74 column=12
s
erver_limit; i : server/scoreboard.c line=119 column=9
i
++ : pass=0
+
+) {
132        ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>servers : include/scoreboard.h line=168 column=20 servers[i : server/scoreboard.c line=119 column=9
i
= : enter=0, leave=0
=
 (worker_score *)more_storage : server/scoreboard.c line=118 column=11
m
ore_storage;
133        more_storage : server/scoreboard.c line=118 column=11
m
ore_storage += : pass=0
+
thread_limit : server/scoreboard.c line=74 column=26
t
hread_limit * : pass=0
*
 sizeof(worker_score);
134    }
135    if : true=0, false=0
i
f (lb_limit : server/scoreboard.c line=74 column=40
l
b_limit) {
136        ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>balancers : include/scoreboard.h line=169 column=19 balancers = : enter=0, leave=0
=
 (lb_score *)more_storage : server/scoreboard.c line=118 column=11
m
ore_storage;
137        more_storage : server/scoreboard.c line=118 column=11
m
ore_storage += : pass=0
+
lb_limit : server/scoreboard.c line=74 column=40
l
b_limit * : pass=0
*
 sizeof(lb_score);
138    }
139    ap_assert(more_storage : server/scoreboard.c line=118 column=11
m
ore_storage == : true=0, false=0
=
= (char*)shared_score : server/scoreboard.c line=116 column=31
s
hared_score + : pass=0
+
 scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size);
140    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global-> : enter=0, leave=0
-
>server_limit : include/scoreboard.h line=133 column=21 server_limit = : enter=0, leave=0
=
 server_limit : server/scoreboard.c line=74 column=12
s
erver_limit;
141    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global-> : enter=0, leave=0
-
>thread_limit : include/scoreboard.h line=134 column=21 thread_limit = : enter=0, leave=0
=
 thread_limit : server/scoreboard.c line=74 column=26
t
hread_limit;
142    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global-> : enter=0, leave=0
-
>lb_limit : include/scoreboard.h line=140 column=21 lb_limit     = : enter=0, leave=0
=
 lb_limit : server/scoreboard.c line=74 column=40
l
b_limit;
143}
144
145/**
146 * Create a name-based scoreboard in the given pool using the
147 * given filename.
148 */
149static apr_status_t create_namebased_scoreboard : call=0
c
reate_namebased_scoreboard(apr_pool_t *pool,
150                                                const char *fname)
151{
152#if APR_HAS_SHARED_MEMORY
153    apr_status_t rv;
154
155    /* The shared memory file must not exist before we create the
156     * segment. */
157    apr_shm_remove : enter=0, leave=0

apr_shm_remove : /usr/include/apr-1/apr_shm.h line=88 column=27
a
pr_shm_remove(fname : server/scoreboard.c line=150 column=61
f
name, pool : server/scoreboard.c line=149 column=61
p
ool); /* ignore errors */
158
159    rv : server/scoreboard.c line=153 column=18
r
= : pass=0
=
 apr_shm_create : enter=0, leave=0

apr_shm_create : /usr/include/apr-1/apr_shm.h line=68 column=27
a
pr_shm_create(&ap_scoreboard_shm : server/scoreboard.c line=54 column=20
a
p_scoreboard_shm, scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size, fname : server/scoreboard.c line=150 column=61
f
name, pool : server/scoreboard.c line=149 column=61
p
ool);
160    if : true=0, false=0
i
f (rv : server/scoreboard.c line=153 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
161        ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_CRIT, rv : server/scoreboard.c line=153 column=18
r
v, NULL,
162                     "unable to create or access scoreboard \"%s\" "
163                     "(name-based shared memory failure)", fname : server/scoreboard.c line=150 column=61
f
name);
164        return : pass=0
r
eturn rv : server/scoreboard.c line=153 column=18
r
v;
165    }
166#endif /* APR_HAS_SHARED_MEMORY */
167    return : pass=0
r
eturn APR_SUCCESS;
168}
169
170/* ToDo: This function should be made to handle setting up
171 * a scoreboard shared between processes using any IPC technique,
172 * not just a shared memory segment
173 */
174static apr_status_t open_scoreboard : call=0
o
pen_scoreboard(apr_pool_t *pconf)
175{
176#if APR_HAS_SHARED_MEMORY
177    apr_status_t rv;
178    char *fname = NULL;
179    apr_pool_t *global_pool;
180
181    /* We don't want to have to recreate the scoreboard after
182     * restarts, so we'll create a global pool and never clean it.
183     */
184    rv : server/scoreboard.c line=177 column=18
r
= : pass=0
=
 apr_pool_create(&global_pool : server/scoreboard.c line=179 column=17
g
lobal_pool, NULL);
185    if : true=0, false=0
i
f (rv : server/scoreboard.c line=177 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
186        ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_CRIT, rv : server/scoreboard.c line=177 column=18
r
v, NULL,
187                     "Fatal error: unable to create global pool "
188                     "for use with the scoreboard");
189        return : pass=0
r
eturn rv : server/scoreboard.c line=177 column=18
r
v;
190    }
191
192    /* The config says to create a name-based shmem */
193    if : true=0, false=0
i
f (ap_scoreboard_fname : server/scoreboard.c line=41 column=29
a
p_scoreboard_fname) {
194        /* make sure it's an absolute pathname */
195        fname : server/scoreboard.c line=178 column=11
f
name = : pass=0
=
 ap_server_root_relative : enter=0, leave=0

ap_server_root_relative : include/http_config.h line=557 column=20
a
p_server_root_relative(pconf : server/scoreboard.c line=174 column=49
p
conf, ap_scoreboard_fname : server/scoreboard.c line=41 column=29
a
p_scoreboard_fname);
196        if : true=0, false=0
i
f (! : true=0, false=0
!
fname : server/scoreboard.c line=178 column=11
f
name) {
197            ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_CRIT, APR_EBADPATH, NULL,
198                         "Fatal error: Invalid Scoreboard path %s",
199                         ap_scoreboard_fname : server/scoreboard.c line=41 column=29
a
p_scoreboard_fname);
200            return : pass=0
r
eturn APR_EBADPATH;
201        }
202        return : pass=0
r
eturn create_namebased_scoreboard : enter=0, leave=0

create_namebased_scoreboard : server/scoreboard.c line=149 column=21
c
reate_namebased_scoreboard(global_pool : server/scoreboard.c line=179 column=17
g
lobal_pool, fname : server/scoreboard.c line=178 column=11
f
name);
203    }
204    else { /* config didn't specify, we get to choose shmem type */
205        rv : server/scoreboard.c line=177 column=18
r
= : pass=0
=
 apr_shm_create : enter=0, leave=0

apr_shm_create : /usr/include/apr-1/apr_shm.h line=68 column=27
a
pr_shm_create(&ap_scoreboard_shm : server/scoreboard.c line=54 column=20
a
p_scoreboard_shm, scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size, NULL,
206                            global_pool : server/scoreboard.c line=179 column=17
g
lobal_pool); /* anonymous shared memory */
207        if : true=0, false=0
i
f ((rv : server/scoreboard.c line=177 column=18
r
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS) && : true=0, false=0
&
& (rv : server/scoreboard.c line=177 column=18
r
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_ENOTIMPL)) {
208            ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_CRIT, rv : server/scoreboard.c line=177 column=18
r
v, NULL,
209                         "Unable to create or access scoreboard "
210                         "(anonymous shared memory failure)");
211            return : pass=0
r
eturn rv : server/scoreboard.c line=177 column=18
r
v;
212        }
213        /* Make up a filename and do name-based shmem */
214        else if : true=0, false=0
i
f (rv : server/scoreboard.c line=177 column=18
r
== : true=0, false=0
=
= APR_ENOTIMPL) {
215            /* Make sure it's an absolute pathname */
216            ap_scoreboard_fname : server/scoreboard.c line=41 column=29
a
p_scoreboard_fname = : pass=0
=
 DEFAULT_SCOREBOARD;
217            fname : server/scoreboard.c line=178 column=11
f
name = : pass=0
=
 ap_server_root_relative : enter=0, leave=0

ap_server_root_relative : include/http_config.h line=557 column=20
a
p_server_root_relative(pconf : server/scoreboard.c line=174 column=49
p
conf, ap_scoreboard_fname : server/scoreboard.c line=41 column=29
a
p_scoreboard_fname);
218
219            return : pass=0
r
eturn create_namebased_scoreboard : enter=0, leave=0

create_namebased_scoreboard : server/scoreboard.c line=149 column=21
c
reate_namebased_scoreboard(global_pool : server/scoreboard.c line=179 column=17
g
lobal_pool, fname : server/scoreboard.c line=178 column=11
f
name);
220        }
221    }
222#endif /* APR_HAS_SHARED_MEMORY */
223    return : pass=0
r
eturn APR_SUCCESS;
224}
225
226/* If detach is non-zero, this is a separate child process,
227 * if zero, it is a forked child.
228 */
229apr_status_t ap_reopen_scoreboard : call=0
a
p_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm, int detached)
230{
231#if APR_HAS_SHARED_MEMORY
232    if : true=0, false=0
i
f (! : true=0, false=0
!
detached : server/scoreboard.c line=229 column=71
d
etached) {
233        return : pass=0
r
eturn APR_SUCCESS;
234    }
235    if : true=0, false=0
i
f (apr_shm_size_get : enter=0, leave=0

apr_shm_size_get : /usr/include/apr-1/apr_shm.h line=133 column=25
a
pr_shm_size_get(ap_scoreboard_shm : server/scoreboard.c line=54 column=20
a
p_scoreboard_shm) < : true=0, false=0
<
 scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size) {
236        ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_CRIT, 0, NULL,
237                     "Fatal error: shared scoreboard too small for child!");
238        apr_shm_detach : enter=0, leave=0

apr_shm_detach : /usr/include/apr-1/apr_shm.h line=115 column=27
a
pr_shm_detach(ap_scoreboard_shm : server/scoreboard.c line=54 column=20
a
p_scoreboard_shm);
239        ap_scoreboard_shm : server/scoreboard.c line=54 column=20
a
p_scoreboard_shm = : pass=0
=
 NULL;
240        return : pass=0
r
eturn APR_EINVAL;
241    }
242    /* everything will be cleared shortly */
243    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
shm : server/scoreboard.c line=229 column=62
s
hm) {
244        *shm : server/scoreboard.c line=229 column=62
s
hm = : enter=0, leave=0
=
 ap_scoreboard_shm : server/scoreboard.c line=54 column=20
a
p_scoreboard_shm;
245    }
246#endif
247    return : pass=0
r
eturn APR_SUCCESS;
248}
249
250apr_status_t ap_cleanup_scoreboard : call=0
a
p_cleanup_scoreboard(void *d)
251{
252    if : true=0, false=0
i
f (ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image == : true=0, false=0
=
= NULL) {
253        return : pass=0
r
eturn APR_SUCCESS;
254    }
255    if : true=0, false=0
i
f (scoreboard_type : server/scoreboard.c line=45 column=24
s
coreboard_type == : true=0, false=0
=
SB_SHARED : include/scoreboard.h line=87 column=5 SB_SHARED) {
256        ap_cleanup_shared_mem : enter=0, leave=0

ap_cleanup_shared_mem : server/scoreboard.c line=85 column=21
a
p_cleanup_shared_mem(NULL);
257    }
258    else {
259        free : enter=0, leave=0

free : /usr/include/stdlib.h line=488 column=13
f
ree(ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global);
260        free : enter=0, leave=0

free : /usr/include/stdlib.h line=488 column=13
f
ree(ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image);
261        ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image = : pass=0
=
 NULL;
262    }
263    return : pass=0
r
eturn APR_SUCCESS;
264}
265
266/* Create or reinit an existing scoreboard. The MPM can control whether
267 * the scoreboard is shared across multiple processes or not
268 */
269int ap_create_scoreboard : call=0
a
p_create_scoreboard(apr_pool_t *p, ap_scoreboard_e sb_type)
270{
271    int i;
272#if APR_HAS_SHARED_MEMORY
273    apr_status_t rv;
274#endif
275
276    if : true=0, false=0
i
f (ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image) {
277        ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global-> : enter=0, leave=0
-
>restart_time : include/scoreboard.h line=139 column=16 restart_time = : enter=0, leave=0
=
 apr_time_now : enter=0, leave=0

apr_time_now : /usr/include/apr-1/apr_time.h line=85 column=25
a
pr_time_now();
278        memset : enter=0, leave=0

memset : /usr/include/string.h line=65 column=14
m
emset(ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>parent : include/scoreboard.h line=167 column=20 parent, 0,
279               sizeof(process_score) * : pass=0
*
 server_limit : server/scoreboard.c line=74 column=12
s
erver_limit);
280        for : true=0, false=0
f
or (i : server/scoreboard.c line=271 column=9
i
 = : pass=0
=
 0; i : server/scoreboard.c line=271 column=9
i
 < : true=0, false=0
<
 server_limit : server/scoreboard.c line=74 column=12
s
erver_limit; i : server/scoreboard.c line=271 column=9
i
++ : pass=0
+
+) {
281            memset : enter=0, leave=0

memset : /usr/include/string.h line=65 column=14
m
emset(ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>servers : include/scoreboard.h line=168 column=20 servers[] : enter=0, leave=0
[
i : server/scoreboard.c line=271 column=9
i
], 0,
282                   sizeof(worker_score) * : pass=0
*
 thread_limit : server/scoreboard.c line=74 column=26
t
hread_limit);
283        }
284        /* Clean up the lb workers data */
285        if : true=0, false=0
i
f (lb_limit : server/scoreboard.c line=74 column=40
l
b_limit) {
286            memset : enter=0, leave=0

memset : /usr/include/string.h line=65 column=14
m
emset(ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>balancers : include/scoreboard.h line=169 column=19 balancers, 0,
287                   sizeof(lb_score) * : pass=0
*
 lb_limit : server/scoreboard.c line=74 column=40
l
b_limit);
288        }
289        return : pass=0
r
eturn OK;
290    }
291
292    ap_calc_scoreboard_size : enter=0, leave=0

ap_calc_scoreboard_size : server/scoreboard.c line=95 column=17
a
p_calc_scoreboard_size();
293#if APR_HAS_SHARED_MEMORY
294    if : true=0, false=0
i
f (sb_type : server/scoreboard.c line=269 column=57
s
b_type == : true=0, false=0
=
SB_SHARED : include/scoreboard.h line=87 column=5 SB_SHARED) {
295        void *sb_shared;
296        rv : server/scoreboard.c line=273 column=18
r
= : pass=0
=
 open_scoreboard : enter=0, leave=0

open_scoreboard : server/scoreboard.c line=174 column=21
o
pen_scoreboard(p : server/scoreboard.c line=269 column=38
p
);
297        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

rv : server/scoreboard.c line=273 column=18
rTF
|| : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
(sb_shared : server/scoreboard.c line=295 column=15
s
b_shared = : pass=0
=
 apr_shm_baseaddr_get : enter=0, leave=0

apr_shm_baseaddr_get : /usr/include/apr-1/apr_shm.h line=126 column=21
a
pr_shm_baseaddr_get(ap_scoreboard_shm : server/scoreboard.c line=54 column=20
a
p_scoreboard_shm))) {
298            return : pass=0
r
eturn HTTP_INTERNAL_SERVER_ERROR;
299        }
300        memset : enter=0, leave=0

memset : /usr/include/string.h line=65 column=14
m
emset(sb_shared : server/scoreboard.c line=295 column=15
s
b_shared, 0, scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size);
301        ap_init_scoreboard : enter=0, leave=0

ap_init_scoreboard : server/scoreboard.c line=116 column=6
a
p_init_scoreboard(sb_shared : server/scoreboard.c line=295 column=15
s
b_shared);
302    }
303    else
304#endif
305    {
306        /* A simple malloc will suffice */
307        void *sb_mem = calloc : enter=0, leave=0

calloc : /usr/include/stdlib.h line=473 column=14
c
alloc(1, scoreboard_size : server/scoreboard.c line=75 column=19
s
coreboard_size);
308        if : true=0, false=0
i
f (sb_mem : server/scoreboard.c line=307 column=15
s
b_mem == : true=0, false=0
=
= NULL) {
309            ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_CRIT, 0, NULL,
310                         "(%d)%s: cannot allocate scoreboard",
311                         errno, strerror : enter=0, leave=0

strerror : /usr/include/string.h line=413 column=14
s
trerror(errno));
312            return : pass=0
r
eturn HTTP_INTERNAL_SERVER_ERROR;
313        }
314        ap_init_scoreboard : enter=0, leave=0

ap_init_scoreboard : server/scoreboard.c line=116 column=6
a
p_init_scoreboard(sb_mem : server/scoreboard.c line=307 column=15
s
b_mem);
315    }
316
317    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global-> : enter=0, leave=0
-
>sb_type : include/scoreboard.h line=135 column=21 sb_type = : enter=0, leave=0
=
 scoreboard_type : server/scoreboard.c line=45 column=24
s
coreboard_type = : pass=0
=
 sb_type : server/scoreboard.c line=269 column=57
s
b_type;
318    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global-> : enter=0, leave=0
-
>running_generation : include/scoreboard.h line=136 column=21 running_generation = : enter=0, leave=0
=
 0;
319    ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global-> : enter=0, leave=0
-
>restart_time : include/scoreboard.h line=139 column=16 restart_time = : enter=0, leave=0
=
 apr_time_now : enter=0, leave=0

apr_time_now : /usr/include/apr-1/apr_time.h line=85 column=25
a
pr_time_now();
320
321    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(p : server/scoreboard.c line=269 column=38
p
, NULL, ap_cleanup_scoreboard : server/scoreboard.c line=250 column=14
a
p_cleanup_scoreboard, apr_pool_cleanup_null : /usr/include/apr-1/apr_pools.h line=682 column=34 apr_pool_cleanup_null);
322
323    return : pass=0
r
eturn OK;
324}
325
326/* Routines called to deal with the scoreboard image
327 * --- note that we do *not* need write locks, since update_child_status
328 * only updates a *single* record in place, and only one process writes to
329 * a given scoreboard slot at a time (either the child process owning that
330 * slot, or the parent, noting that the child has died).
331 *
332 * As a final note --- setting the score entry to getpid() is always safe,
333 * since when the parent is writing an entry, it's only noting SERVER_DEAD
334 * anyway.
335 */
336
337AP_DECLARE(int) ap_exists_scoreboard_image : call=0
a
p_exists_scoreboard_image(void)
338{
339    return : pass=0
r
eturn (ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image conditional operator : true=0, false=0
?
 1 : 0);
340}
341
342AP_DECLARE(void) ap_increment_counts : call=0
a
p_increment_counts(ap_sb_handle_t *sb, request_rec *r)
343{
344    worker_score *ws;
345
346    if : true=0, false=0
i
f (! : true=0, false=0
!
sb : server/scoreboard.c line=342 column=54
s
b)
347        return : pass=0
r
eturn;
348
349    ws : server/scoreboard.c line=344 column=19
w
= : pass=0
=
 &ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>servers : include/scoreboard.h line=168 column=20 servers[] : enter=0, leave=0
[
sb : server/scoreboard.c line=342 column=54
s
b-> : enter=0, leave=0
-
>child_num : server/scoreboard.c line=70 column=9
c
hild_num][] : enter=0, leave=0
[
sb : server/scoreboard.c line=342 column=54
s
b-> : enter=0, leave=0
-
>thread_num : server/scoreboard.c line=71 column=9
t
hread_num];
350
351#ifdef HAVE_TIMES
352    times : enter=0, leave=0

times : /usr/include/sys/times.h line=49 column=16
t
imes(&ws : server/scoreboard.c line=344 column=19
w
s-> : enter=0, leave=0
-
>times : include/scoreboard.h line=124 column=16 times);
353#endif
354    ws : server/scoreboard.c line=344 column=19
w
s-> : enter=0, leave=0
-
>access_count : include/scoreboard.h line=115 column=19 access_count++ : pass=0
+
+;
355    ws : server/scoreboard.c line=344 column=19
w
s-> : enter=0, leave=0
-
>my_access_count : include/scoreboard.h line=117 column=19 my_access_count++ : pass=0
+
+;
356    ws : server/scoreboard.c line=344 column=19
w
s-> : enter=0, leave=0
-
>conn_count : include/scoreboard.h line=120 column=20 conn_count++ : pass=0
+
+;
357    ws : server/scoreboard.c line=344 column=19
w
s-> : enter=0, leave=0
-
>bytes_served : include/scoreboard.h line=116 column=19 bytes_served += : enter=0, leave=0
+
r : server/scoreboard.c line=342 column=71
r
-> : enter=0, leave=0
-
>bytes_sent : include/httpd.h line=862 column=15
b
ytes_sent;
358    ws : server/scoreboard.c line=344 column=19
w
s-> : enter=0, leave=0
-
>my_bytes_served : include/scoreboard.h line=118 column=19 my_bytes_served += : enter=0, leave=0
+
r : server/scoreboard.c line=342 column=71
r
-> : enter=0, leave=0
-
>bytes_sent : include/httpd.h line=862 column=15
b
ytes_sent;
359    ws : server/scoreboard.c line=344 column=19
w
s-> : enter=0, leave=0
-
>conn_bytes : include/scoreboard.h line=119 column=19 conn_bytes += : enter=0, leave=0
+
r : server/scoreboard.c line=342 column=71
r
-> : enter=0, leave=0
-
>bytes_sent : include/httpd.h line=862 column=15
b
ytes_sent;
360}
361
362int find_child_by_pid : call=0
f
ind_child_by_pid(apr_proc_t *pid)
363{
364    int i;
365    int max_daemons_limit;
366
367    ap_mpm_query : enter=0, leave=0

ap_mpm_query : include/ap_mpm.h line=161 column=26
a
p_mpm_query(AP_MPMQ_MAX_DAEMONS, &max_daemons_limit : server/scoreboard.c line=365 column=9
m
ax_daemons_limit);
368
369    for : true=0, false=0
f
or (i : server/scoreboard.c line=364 column=9
i
 = : pass=0
=
 0; i : server/scoreboard.c line=364 column=9
i
 < : true=0, false=0
<
 max_daemons_limit : server/scoreboard.c line=365 column=9
m
ax_daemons_limit; ++ : pass=0
+
+i : server/scoreboard.c line=364 column=9
i
) {
370        if : true=0, false=0
i
f (ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>parent : include/scoreboard.h line=167 column=20 parent[] : enter=0, leave=0
[
i : server/scoreboard.c line=364 column=9
i
].pid : include/scoreboard.h line=146 column=11 pid == : true=0, false=0
=
pid : server/scoreboard.c line=362 column=35
p
id-> : enter=0, leave=0
-
>pid : /usr/include/apr-1/apr_thread_proc.h line=135 column=11 pid) {
371            return : pass=0
r
eturn i : server/scoreboard.c line=364 column=9
i
;
372        }
373    }
374
375    return : pass=0
r
eturn -1;
376}
377
378AP_DECLARE(void) ap_create_sb_handle : call=0
a
p_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t *p,
379                                     int child_num, int thread_num)
380{
381    *new_sbh : server/scoreboard.c line=378 column=55
n
ew_sbh = : enter=0, leave=0
=
 (ap_sb_handle_t *)apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : server/scoreboard.c line=378 column=76
p
, sizeof(ap_sb_handle_t));
382    (* dereference : enter=0, leave=0
*
new_sbh : server/scoreboard.c line=378 column=55
n
ew_sbh)-> : enter=0, leave=0
-
>child_num : server/scoreboard.c line=70 column=9
c
hild_num = : enter=0, leave=0
=
 child_num : server/scoreboard.c line=379 column=42
c
hild_num;
383    (* dereference : enter=0, leave=0
*
new_sbh : server/scoreboard.c line=378 column=55
n
ew_sbh)-> : enter=0, leave=0
-
>thread_num : server/scoreboard.c line=71 column=9
t
hread_num = : enter=0, leave=0
=
 thread_num : server/scoreboard.c line=379 column=57
t
hread_num;
384}
385
386static void copy_request : call=0
c
opy_request(char *rbuf, apr_size_t rbuflen, request_rec *r)
387{
388    char *p;
389
390    if : true=0, false=0
i
f (r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>the_request : include/httpd.h line=799 column=11
t
he_request == : true=0, false=0
=
= NULL) {
391        apr_cpystrn : enter=0, leave=0

apr_cpystrn : /usr/include/apr-1/apr_strings.h line=195 column=21
a
pr_cpystrn(rbuf : server/scoreboard.c line=386 column=32
r
buf, "NULL", rbuflen : server/scoreboard.c line=386 column=49
r
buflen);
392        return : pass=0
r
eturn; /* short circuit below */
393    }
394
395    if : true=0, false=0
i
f (r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri.password : /usr/include/apr-1/apr_uri.h line=93 column=11 password == : true=0, false=0
=
= NULL) {
396        p : server/scoreboard.c line=388 column=11
p
 = : pass=0
=
 r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>the_request : include/httpd.h line=799 column=11
t
he_request;
397    }
398    else {
399        /* Don't reveal the password in the server-status view */
400        p : server/scoreboard.c line=388 column=11
p
 = : pass=0
=
 apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>method : include/httpd.h line=829 column=17
m
ethod, " ",
401                        apr_uri_unparse : enter=0, leave=0

apr_uri_unparse : /usr/include/apr-1/apr_uri.h line=146 column=21
a
pr_uri_unparse(r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri,
402                        APR_URI_UNP_OMITPASSWORD),
403                        r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>assbackwards : include/httpd.h line=801 column=9
a
ssbackwards conditional operator : true=0, false=0
?
 NULL : " ", r : server/scoreboard.c line=386 column=71
r
-> : enter=0, leave=0
-
>protocol : include/httpd.h line=810 column=11
p
rotocol, NULL);
404    }
405
406    /* now figure out if we copy over the 1st rbuflen chars or the last */
407    if : true=0, false=0
i
f (! : true=0, false=0
!
ap_mod_status_reqtail : server/scoreboard.c line=43 column=21
a
p_mod_status_reqtail) {
408        apr_cpystrn : enter=0, leave=0

apr_cpystrn : /usr/include/apr-1/apr_strings.h line=195 column=21
a
pr_cpystrn(rbuf : server/scoreboard.c line=386 column=32
r
buf, p : server/scoreboard.c line=388 column=11
p
rbuflen : server/scoreboard.c line=386 column=49
r
buflen);
409    }
410    else {
411        apr_size_t slen = strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(p : server/scoreboard.c line=388 column=11
p
);
412        if : true=0, false=0
i
f (slen : server/scoreboard.c line=411 column=20
s
len < : true=0, false=0
<
 rbuflen : server/scoreboard.c line=386 column=49
r
buflen) {
413            /* it all fits anyway */
414            apr_cpystrn : enter=0, leave=0

apr_cpystrn : /usr/include/apr-1/apr_strings.h line=195 column=21
a
pr_cpystrn(rbuf : server/scoreboard.c line=386 column=32
r
buf, p : server/scoreboard.c line=388 column=11
p
rbuflen : server/scoreboard.c line=386 column=49
r
buflen);
415        }
416        else {
417            apr_cpystrn : enter=0, leave=0

apr_cpystrn : /usr/include/apr-1/apr_strings.h line=195 column=21
a
pr_cpystrn(rbuf : server/scoreboard.c line=386 column=32
r
buf, p : server/scoreboard.c line=388 column=11
p
+ : pass=0
+
(slen : server/scoreboard.c line=411 column=20
s
len- : pass=0
-
rbuflen : server/scoreboard.c line=386 column=49
r
buflen+ : pass=0
+
1), rbuflen : server/scoreboard.c line=386 column=49
r
buflen);
418        }
419    }
420}
421
422AP_DECLARE(int) ap_update_child_status_from_indexes : call=0
a
p_update_child_status_from_indexes(int child_num,
423                                                    int thread_num,
424                                                    int status,
425                                                    request_rec *r)
426{
427    int old_status;
428    worker_score *ws;
429    process_score *ps;
430
431    if : true=0, false=0
i
f (child_num : server/scoreboard.c line=422 column=57
c
hild_num < : true=0, false=0
<
 0) {
432        return : pass=0
r
eturn -1;
433    }
434
435    ws : server/scoreboard.c line=428 column=19
w
= : pass=0
=
 &ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>servers : include/scoreboard.h line=168 column=20 servers[] : enter=0, leave=0
[
child_num : server/scoreboard.c line=422 column=57
c
hild_num][] : enter=0, leave=0
[
thread_num : server/scoreboard.c line=423 column=57
t
hread_num];
436    old_status : server/scoreboard.c line=427 column=9
o
ld_status = : pass=0
=
 ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>status : include/scoreboard.h line=114 column=19 status;
437    ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>status : include/scoreboard.h line=114 column=19 status = : enter=0, leave=0
=
 status : server/scoreboard.c line=424 column=57
s
tatus;
438
439    ps : server/scoreboard.c line=429 column=20
p
= : pass=0
=
 &ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>parent : include/scoreboard.h line=167 column=20 parent[] : enter=0, leave=0
[
child_num : server/scoreboard.c line=422 column=57
c
hild_num];
440
441    if : true=0, false=0
i
f (status : server/scoreboard.c line=424 column=57
s
tatus == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= SERVER_READY
442        && : true=0, false=0
&
old_status : server/scoreboard.c line=427 column=9
o
ld_status == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= SERVER_STARTING) {
443        ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>thread_num : include/scoreboard.h line=103 column=9 thread_num = : enter=0, leave=0
=
 child_num : server/scoreboard.c line=422 column=57
c
hild_num * : pass=0
*
 thread_limit : server/scoreboard.c line=74 column=26
t
hread_limit + : pass=0
+
 thread_num : server/scoreboard.c line=423 column=57
t
hread_num;
444        ps : server/scoreboard.c line=429 column=20
p
s-> : enter=0, leave=0
-
>generation : include/scoreboard.h line=147 column=21 generation = : enter=0, leave=0
=
 ap_my_generation : include/scoreboard.h line=219 column=49 ap_my_generation;
445    }
446
447    if : true=0, false=0
i
f (ap_extended_status : server/scoreboard.c line=42 column=21
a
p_extended_status) {
448        ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>last_used : include/scoreboard.h line=126 column=16 last_used = : enter=0, leave=0
=
 apr_time_now : enter=0, leave=0

apr_time_now : /usr/include/apr-1/apr_time.h line=85 column=25
a
pr_time_now();
449        if : true=0, false=0
i
f (status : server/scoreboard.c line=424 column=57
s
tatus == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= SERVER_READY || : true=0, false=0
|
status : server/scoreboard.c line=424 column=57
s
tatus == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= SERVER_DEAD) {
450            /*
451             * Reset individual counters
452             */
453            if : true=0, false=0
i
f (status : server/scoreboard.c line=424 column=57
s
tatus == : true=0, false=0
=
= SERVER_DEAD) {
454                ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>my_access_count : include/scoreboard.h line=117 column=19 my_access_count = : enter=0, leave=0
=
 0L;
455                ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>my_bytes_served : include/scoreboard.h line=118 column=19 my_bytes_served = : enter=0, leave=0
=
 0L;
456            }
457            ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>conn_count : include/scoreboard.h line=120 column=20 conn_count = : enter=0, leave=0
=
 0;
458            ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>conn_bytes : include/scoreboard.h line=119 column=19 conn_bytes = : enter=0, leave=0
=
 0;
459        }
460        if : true=0, false=0
i
f (r : server/scoreboard.c line=425 column=66
r
) {
461            conn_rec *c = r : server/scoreboard.c line=425 column=66
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection;
462            apr_cpystrn : enter=0, leave=0

apr_cpystrn : /usr/include/apr-1/apr_strings.h line=195 column=21
a
pr_cpystrn(ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>client : include/scoreboard.h line=127 column=10 client, ap_get_remote_host : enter=0, leave=0

ap_get_remote_host : include/http_core.h line=201 column=26
a
p_get_remote_host(c : server/scoreboard.c line=461 column=23
c
r : server/scoreboard.c line=425 column=66
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config,
463                        REMOTE_NOLOOKUP, NULL), sizeof(ws->client));
464            copy_request : enter=0, leave=0

copy_request : server/scoreboard.c line=386 column=13
c
opy_request(ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>request : include/scoreboard.h line=128 column=10 request, sizeof(ws->request), r : server/scoreboard.c line=425 column=66
r
);
465            apr_cpystrn : enter=0, leave=0

apr_cpystrn : /usr/include/apr-1/apr_strings.h line=195 column=21
a
pr_cpystrn(ws : server/scoreboard.c line=428 column=19
w
s-> : enter=0, leave=0
-
>vhost : include/scoreboard.h line=129 column=10 vhost, r : server/scoreboard.c line=425 column=66
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>server_hostname : include/httpd.h line=1188 column=11
s
erver_hostname,
466                        sizeof(ws->vhost));
467        }
468    }
469
470    return : pass=0
r
eturn old_status : server/scoreboard.c line=427 column=9
o
ld_status;
471}
472
473AP_DECLARE(int) ap_update_child_status : call=0
a
p_update_child_status(ap_sb_handle_t *sbh, int status,
474                                      request_rec *r)
475{
476    if : true=0, false=0
i
f (! : true=0, false=0
!
sbh : server/scoreboard.c line=473 column=56
s
bh)
477        return : pass=0
r
eturn -1;
478
479    return : pass=0
r
eturn ap_update_child_status_from_indexes : enter=0, leave=0

ap_update_child_status_from_indexes : server/scoreboard.c line=422 column=17
a
p_update_child_status_from_indexes(sbh : server/scoreboard.c line=473 column=56
s
bh-> : enter=0, leave=0
-
>child_num : server/scoreboard.c line=70 column=9
c
hild_num, sbh : server/scoreboard.c line=473 column=56
s
bh-> : enter=0, leave=0
-
>thread_num : server/scoreboard.c line=71 column=9
t
hread_num,
480                                               status : server/scoreboard.c line=473 column=65
s
tatus, r : server/scoreboard.c line=474 column=52
r
);
481}
482
483void ap_time_process_request : call=0
a
p_time_process_request(ap_sb_handle_t *sbh, int status)
484{
485    worker_score *ws;
486
487    if : true=0, false=0
i
f (! : true=0, false=0
!
sbh : server/scoreboard.c line=483 column=46
s
bh)
488        return : pass=0
r
eturn;
489
490    if : true=0, false=0
i
f (sbh : server/scoreboard.c line=483 column=46
s
bh-> : enter=0, leave=0
-
>child_num : server/scoreboard.c line=70 column=9
c
hild_num < : true=0, false=0
<
 0) {
491        return : pass=0
r
eturn;
492    }
493
494    ws : server/scoreboard.c line=485 column=19
w
= : pass=0
=
 &ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>servers : include/scoreboard.h line=168 column=20 servers[] : enter=0, leave=0
[
sbh : server/scoreboard.c line=483 column=46
s
bh-> : enter=0, leave=0
-
>child_num : server/scoreboard.c line=70 column=9
c
hild_num][] : enter=0, leave=0
[
sbh : server/scoreboard.c line=483 column=46
s
bh-> : enter=0, leave=0
-
>thread_num : server/scoreboard.c line=71 column=9
t
hread_num];
495
496    if : true=0, false=0
i
f (status : server/scoreboard.c line=483 column=55
s
tatus == : true=0, false=0
=
= START_PREQUEST) {
497        ws : server/scoreboard.c line=485 column=19
w
s-> : enter=0, leave=0
-
>start_time : include/scoreboard.h line=121 column=16 start_time = : enter=0, leave=0
=
 apr_time_now : enter=0, leave=0

apr_time_now : /usr/include/apr-1/apr_time.h line=85 column=25
a
pr_time_now();
498    }
499    else if : true=0, false=0
i
f (status : server/scoreboard.c line=483 column=55
s
tatus == : true=0, false=0
=
= STOP_PREQUEST) {
500        ws : server/scoreboard.c line=485 column=19
w
s-> : enter=0, leave=0
-
>stop_time : include/scoreboard.h line=122 column=16 stop_time = : enter=0, leave=0
=
 apr_time_now : enter=0, leave=0

apr_time_now : /usr/include/apr-1/apr_time.h line=85 column=25
a
pr_time_now();
501    }
502}
503
504AP_DECLARE(worker_score *) ap_get_scoreboard_worker : call=0
a
p_get_scoreboard_worker(int x, int y)
505{
506    if : true=0, false=0
i
f (((x : server/scoreboard.c line=504 column=57
x
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 0) || : true=0, false=0
|
| (server_limit : server/scoreboard.c line=74 column=12
s
erver_limit < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 x : server/scoreboard.c line=504 column=57
x
)) || : true=0, false=0
|
|
507        ((y : server/scoreboard.c line=504 column=64
y
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 0) || : true=0, false=0
|
| (thread_limit : server/scoreboard.c line=74 column=26
t
hread_limit < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 y : server/scoreboard.c line=504 column=64
y
))) {
508        return : pass=0
r
eturn(NULL); /* Out of range */
509    }
510    return : pass=0
r
eturn &ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>servers : include/scoreboard.h line=168 column=20 servers[] : enter=0, leave=0
[
x : server/scoreboard.c line=504 column=57
x
][] : enter=0, leave=0
[
y : server/scoreboard.c line=504 column=64
y
];
511}
512
513AP_DECLARE(void) ap_copy_scoreboard_worker : call=0
a
p_copy_scoreboard_worker(worker_score *dest, 
514                                           int child_num,
515                                           int thread_num)
516{
517    worker_score *ws = ap_get_scoreboard_worker : enter=0, leave=0

ap_get_scoreboard_worker : server/scoreboard.c line=504 column=28
a
p_get_scoreboard_worker(child_num : server/scoreboard.c line=514 column=48
c
hild_num, thread_num : server/scoreboard.c line=515 column=48
t
hread_num);
518
519    memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(dest : server/scoreboard.c line=513 column=58
d
est, ws : server/scoreboard.c line=517 column=19
w
s, sizeof *ws);
520
521    /* For extra safety, NUL-terminate the strings returned, though it
522     * should be true those last bytes are always zero anyway. */
523    dest : server/scoreboard.c line=513 column=58
d
est-> : enter=0, leave=0
-
>client : include/scoreboard.h line=127 column=10 client[sizeof(dest->client) - : pass=0
-
 1] = : enter=0, leave=0
=
 '\0';
524    dest : server/scoreboard.c line=513 column=58
d
est-> : enter=0, leave=0
-
>request : include/scoreboard.h line=128 column=10 request[sizeof(dest->request) - : pass=0
-
 1] = : enter=0, leave=0
=
 '\0';
525    dest : server/scoreboard.c line=513 column=58
d
est-> : enter=0, leave=0
-
>vhost : include/scoreboard.h line=129 column=10 vhost[sizeof(dest->vhost) - : pass=0
-
 1] = : enter=0, leave=0
=
 '\0';
526}
527
528AP_DECLARE(process_score *) ap_get_scoreboard_process : call=0
a
p_get_scoreboard_process(int x)
529{
530    if : true=0, false=0
i
f ((x : server/scoreboard.c line=528 column=59
x
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 0) || : true=0, false=0
|
| (server_limit : server/scoreboard.c line=74 column=12
s
erver_limit < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 x : server/scoreboard.c line=528 column=59
x
)) {
531        return : pass=0
r
eturn(NULL); /* Out of range */
532    }
533    return : pass=0
r
eturn &ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>parent : include/scoreboard.h line=167 column=20 parent[] : enter=0, leave=0
[
x : server/scoreboard.c line=528 column=59
x
];
534}
535
536AP_DECLARE(global_score *) ap_get_scoreboard_global : call=0
a
p_get_scoreboard_global()
537{
538    return : pass=0
r
eturn ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>global : include/scoreboard.h line=166 column=19 global;
539}
540
541AP_DECLARE(lb_score *) ap_get_scoreboard_lb : call=0
a
p_get_scoreboard_lb(int lb_num)
542{
543    if : true=0, false=0
i
f (((lb_num : server/scoreboard.c line=541 column=49
l
b_num < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 0) || : true=0, false=0
|
| (lb_limit : server/scoreboard.c line=74 column=40
l
b_limit < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 lb_num : server/scoreboard.c line=541 column=49
l
b_num))) {
544        return : pass=0
r
eturn(NULL); /* Out of range */
545    }
546    return : pass=0
r
eturn &ap_scoreboard_image : server/scoreboard.c line=40 column=29
a
p_scoreboard_image-> : enter=0, leave=0
-
>balancers : include/scoreboard.h line=169 column=19 balancers[] : enter=0, leave=0
[
lb_num : server/scoreboard.c line=541 column=49
l
b_num];
547}
548[EOF]


Generated by expcov