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

 Index  Statistics  Last 
Directory./server
Filenamelog.c
ModifiedFri May 22 02:31:52 2009

Pass Half Fail Excluded Total
Function
3
12.00%
22
88.00%
0
0.00%
25
100%
Expressions
47
8.62%
498
91.38%
0
0.00%
545
100%
Conditions
0
0.00%
14
13.33%
91
86.67%
0
0.00%
105
100%
MC/DC
0
0.00%
38
100.00%
0
0.00%
38
100%
Branches

if
0
0.00%
12
16.22%
62
83.78%
0
0.00%
74
100%
for
0
0.00%
0
0.00%
3
100.00%
0
0.00%
3
100%
while
0
0.00%
0
0.00%
1
100.00%
0
0.00%
1
100%
case
0
0.00%
0
0.00%
5
100.00%
0
0.00%
5
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/*
18 * http_log.c: Dealing with the logs and errors
19 *
20 * Rob McCool
21 *
22 */
23
24#include "apr.h"
25#include "apr_general.h"        /* for signal stuff */
26#include "apr_strings.h"
27#include "apr_errno.h"
28#include "apr_thread_proc.h"
29#include "apr_lib.h"
30#include "apr_signal.h"
31
32#define APR_WANT_STDIO
33#define APR_WANT_STRFUNC
34#include "apr_want.h"
35
36#if APR_HAVE_STDARG_H
37#include <stdarg.h>
38#endif
39#if APR_HAVE_UNISTD_H
40#include <unistd.h>
41#endif
42
43#define CORE_PRIVATE
44
45#include "ap_config.h"
46#include "httpd.h"
47#include "http_config.h"
48#include "http_core.h"
49#include "http_log.h"
50#include "http_main.h"
51#include "util_time.h"
52#include "ap_mpm.h"
53
54typedef struct {
55    char    *t_name;
56    int      t_val;
57} TRANS;
58
59APR_HOOK_STRUCT(
60    APR_HOOK_LINK(error_log)
61)
62
63int AP_DECLARE_DATA ap_default_loglevel = DEFAULT_LOGLEVEL;
64
65#ifdef HAVE_SYSLOG
66
67static const TRANS facilities[] = {
68    {"auth",    LOG_AUTH},
69#ifdef LOG_AUTHPRIV
70    {"authpriv",LOG_AUTHPRIV},
71#endif
72#ifdef LOG_CRON
73    {"cron",    LOG_CRON},
74#endif
75#ifdef LOG_DAEMON
76    {"daemon",  LOG_DAEMON},
77#endif
78#ifdef LOG_FTP
79    {"ftp", LOG_FTP},
80#endif
81#ifdef LOG_KERN
82    {"kern",    LOG_KERN},
83#endif
84#ifdef LOG_LPR
85    {"lpr", LOG_LPR},
86#endif
87#ifdef LOG_MAIL
88    {"mail",    LOG_MAIL},
89#endif
90#ifdef LOG_NEWS
91    {"news",    LOG_NEWS},
92#endif
93#ifdef LOG_SYSLOG
94    {"syslog",  LOG_SYSLOG},
95#endif
96#ifdef LOG_USER
97    {"user",    LOG_USER},
98#endif
99#ifdef LOG_UUCP
100    {"uucp",    LOG_UUCP},
101#endif
102#ifdef LOG_LOCAL0
103    {"local0",  LOG_LOCAL0},
104#endif
105#ifdef LOG_LOCAL1
106    {"local1",  LOG_LOCAL1},
107#endif
108#ifdef LOG_LOCAL2
109    {"local2",  LOG_LOCAL2},
110#endif
111#ifdef LOG_LOCAL3
112    {"local3",  LOG_LOCAL3},
113#endif
114#ifdef LOG_LOCAL4
115    {"local4",  LOG_LOCAL4},
116#endif
117#ifdef LOG_LOCAL5
118    {"local5",  LOG_LOCAL5},
119#endif
120#ifdef LOG_LOCAL6
121    {"local6",  LOG_LOCAL6},
122#endif
123#ifdef LOG_LOCAL7
124    {"local7",  LOG_LOCAL7},
125#endif
126    {NULL,      -1},
127};
128#endif
129
130static const TRANS priorities[] = {
131    {"emerg",   APLOG_EMERG},
132    {"alert",   APLOG_ALERT},
133    {"crit",    APLOG_CRIT},
134    {"error",   APLOG_ERR},
135    {"warn",    APLOG_WARNING},
136    {"notice",  APLOG_NOTICE},
137    {"info",    APLOG_INFO},
138    {"debug",   APLOG_DEBUG},
139    {NULL,      -1},
140};
141
142static apr_pool_t *stderr_pool = NULL;
143
144static apr_file_t *stderr_log = NULL;
145
146/* track pipe handles to close in child process */
147typedef struct read_handle_t {
148    struct read_handle_t *next;
149    apr_file_t *handle;
150} read_handle_t;
151
152static read_handle_t *read_handles;
153
154/* clear_handle_list() is called when plog is cleared; at that
155 * point we need to forget about our old list of pipe read
156 * handles.  We let the plog cleanups close the actual pipes.
157 */
158static apr_status_t clear_handle_list : call=0
c
lear_handle_list(void *v)
159{
160    read_handles : server/log.c line=152 column=23
r
ead_handles = : pass=0
=
 NULL;
161    return : pass=0
r
eturn APR_SUCCESS;
162}
163
164/* remember to close this handle in the child process
165 *
166 * On Win32 this makes zero sense, because we don't
167 * take the parent process's child procs.
168 * If the win32 parent instead passed each and every
169 * logger write handle from itself down to the child,
170 * and the parent manages all aspects of keeping the 
171 * reliable pipe log children alive, this would still
172 * make no sense :)  Cripple it on Win32.
173 */
174static void close_handle_in_child : call=0
c
lose_handle_in_child(apr_pool_t *p, apr_file_t *f)
175{
176#ifndef WIN32
177    read_handle_t *new_handle;
178
179    new_handle : server/log.c line=177 column=20
n
ew_handle = : pass=0
=
 apr_pcalloc(p : server/log.c line=174 column=47
p
, sizeof(read_handle_t));
180    new_handle : server/log.c line=177 column=20
n
ew_handle-> : enter=0, leave=0
-
>next : server/log.c line=148 column=27
n
ext = : enter=0, leave=0
=
 read_handles : server/log.c line=152 column=23
r
ead_handles;
181    new_handle : server/log.c line=177 column=20
n
ew_handle-> : enter=0, leave=0
-
>handle : server/log.c line=149 column=17
h
andle = : enter=0, leave=0
=
 f : server/log.c line=174 column=62
f
;
182    read_handles : server/log.c line=152 column=23
r
ead_handles = : pass=0
=
 new_handle : server/log.c line=177 column=20
n
ew_handle;
183#endif
184}
185
186void ap_logs_child_init : call=0
a
p_logs_child_init(apr_pool_t *p, server_rec *s)
187{
188    read_handle_t *cur = read_handles : server/log.c line=152 column=23
r
ead_handles;
189
190    while : true=0, false=0
w
hile (cur : server/log.c line=188 column=20
c
ur) {
191        apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(cur : server/log.c line=188 column=20
c
ur-> : enter=0, leave=0
-
>handle : server/log.c line=149 column=17
h
andle);
192        cur : server/log.c line=188 column=20
c
ur = : pass=0
=
 cur : server/log.c line=188 column=20
c
ur-> : enter=0, leave=0
-
>next : server/log.c line=148 column=27
n
ext;
193    }
194}
195
196AP_DECLARE(void) ap_open_stderr_log : call=1
a
p_open_stderr_log(apr_pool_t *p)
197{
198    apr_file_open_stderr : enter=1, leave=1

apr_file_open_stderr : /usr/include/apr-1/apr_file_io.h line=322 column=27
a
pr_file_open_stderr(&stderr_log : server/log.c line=144 column=20
s
tderr_log, p : server/log.c line=196 column=49
p
);
199}
200
201AP_DECLARE(apr_status_t) ap_replace_stderr_log : call=0
a
p_replace_stderr_log(apr_pool_t *p,
202                                               const char *fname)
203{
204    apr_file_t *stderr_file;
205    apr_status_t rc;
206    char *filename = 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(p : server/log.c line=201 column=60
p
fname : server/log.c line=202 column=60
f
name);
207    if : true=0, false=0
i
f (! : true=0, false=0
!
filename : server/log.c line=206 column=11
f
ilename) {
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_STARTUP| : pass=0
|
APLOG_CRIT,
209                     APR_EBADPATH, NULL, "Invalid -E error log file %s",
210                     fname : server/log.c line=202 column=60
f
name);
211        return : pass=0
r
eturn APR_EBADPATH;
212    }
213    if : true=0, false=0
i
f ((rc : server/log.c line=205 column=18
r
= : pass=0
=
 apr_file_open : enter=0, leave=0

apr_file_open : /usr/include/apr-1/apr_file_io.h line=235 column=27
a
pr_file_open(&stderr_file : server/log.c line=204 column=17
s
tderr_file, filename : server/log.c line=206 column=11
f
ilename,
214                            APR_APPEND | : pass=0
|
 APR_WRITE | : pass=0
|
 APR_CREATE | : pass=0
|
 APR_LARGEFILE,
215                            APR_OS_DEFAULT, p : server/log.c line=201 column=60
p
)) != : true=0, false=0
!
= APR_SUCCESS) {
216        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_STARTUP, rc : server/log.c line=205 column=18
r
c, NULL,
217                     "%s: could not open error log file %s.",
218                     ap_server_argv0 : include/http_main.h line=42 column=36 ap_server_argv0, fname : server/log.c line=202 column=60
f
name);
219        return : pass=0
r
eturn rc : server/log.c line=205 column=18
r
c;
220    }
221    if : true=0, false=0
i
f (! : true=0, false=0
!
stderr_pool : server/log.c line=142 column=20
s
tderr_pool) {
222        /* This is safe provided we revert it when we are finished.
223         * We don't manager the callers pool!
224         */
225        stderr_pool : server/log.c line=142 column=20
s
tderr_pool = : pass=0
=
 p : server/log.c line=201 column=60
p
;
226    }
227    if : true=0, false=0
i
f ((rc : server/log.c line=205 column=18
r
= : pass=0
=
 apr_file_open_stderr : enter=0, leave=0

apr_file_open_stderr : /usr/include/apr-1/apr_file_io.h line=322 column=27
a
pr_file_open_stderr(&stderr_log : server/log.c line=144 column=20
s
tderr_log, stderr_pool : server/log.c line=142 column=20
s
tderr_pool)) 
228            == : true=0, false=0
=
= APR_SUCCESS) {
229        apr_file_flush : enter=0, leave=0

apr_file_flush : /usr/include/apr-1/apr_file_io.h line=556 column=27
a
pr_file_flush(stderr_log : server/log.c line=144 column=20
s
tderr_log);
230        if : true=0, false=0
i
f ((rc : server/log.c line=205 column=18
r
= : pass=0
=
 apr_file_dup2 : enter=0, leave=0

apr_file_dup2 : /usr/include/apr-1/apr_file_io.h line=577 column=27
a
pr_file_dup2(stderr_log : server/log.c line=144 column=20
s
tderr_log, stderr_file : server/log.c line=204 column=17
s
tderr_file, stderr_pool : server/log.c line=142 column=20
s
tderr_pool)) 
231                == : true=0, false=0
=
= APR_SUCCESS) {
232            apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(stderr_file : server/log.c line=204 column=17
s
tderr_file);
233            /*
234             * You might ponder why stderr_pool should survive?
235             * The trouble is, stderr_pool may have s_main->error_log,
236             * so we aren't in a position to destory stderr_pool until
237             * the next recycle.  There's also an apparent bug which 
238             * is not; if some folk decided to call this function before 
239             * the core open error logs hook, this pool won't survive.
240             * Neither does the stderr logger, so this isn't a problem.
241             */
242        }
243    }
244    /* Revert, see above */
245    if : true=0, false=0
i
f (stderr_pool : server/log.c line=142 column=20
s
tderr_pool == : true=0, false=0
=
p : server/log.c line=201 column=60
p
)
246        stderr_pool : server/log.c line=142 column=20
s
tderr_pool = : pass=0
=
 NULL;
247
248    if : true=0, false=0
i
f (rc : server/log.c line=205 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
249        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, rc : server/log.c line=205 column=18
r
c, NULL,
250                     "unable to replace stderr with error log file");
251    }
252    return : pass=0
r
eturn rc : server/log.c line=205 column=18
r
c;
253}
254
255static void log_child_errfn : call=0
l
og_child_errfn(apr_pool_t *pool, apr_status_t err,
256                            const char *description)
257{
258    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_ERR, err : server/log.c line=255 column=60
e
rr, NULL,
259                 "%s", description : server/log.c line=256 column=41
d
escription);
260}
261
262/* Create a child process running PROGNAME with a pipe connected to
263 * the childs stdin.  The write-end of the pipe will be placed in
264 * *FPIN on successful return.  If dummy_stderr is non-zero, the
265 * stderr for the child will be the same as the stdout of the parent.
266 * Otherwise the child will inherit the stderr from the parent. */
267static int log_child : call=0
l
og_child(apr_pool_t *p, const char *progname,
268                     apr_file_t **fpin, apr_cmdtype_e cmdtype,
269                     int dummy_stderr)
270{
271    /* Child process code for 'ErrorLog "|..."';
272     * may want a common framework for this, since I expect it will
273     * be common for other foo-loggers to want this sort of thing...
274     */
275    apr_status_t rc;
276    apr_procattr_t *procattr;
277    apr_proc_t *procnew;
278    apr_file_t *outfile, *errfile;
279
280    if : true=0, false=0
i
f (((rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_procattr_create : enter=0, leave=0

apr_procattr_create : /usr/include/apr-1/apr_thread_proc.h line=396 column=27
a
pr_procattr_create(&procattr : server/log.c line=276 column=21
p
rocattr, p : server/log.c line=267 column=34
p
)) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_SUCCESS)
281        && : true=0, false=0
&
& ((rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_procattr_cmdtype_set : enter=0, leave=0

apr_procattr_cmdtype_set : /usr/include/apr-1/apr_thread_proc.h line=491 column=27
a
pr_procattr_cmdtype_set(procattr : server/log.c line=276 column=21
p
rocattr, cmdtype : server/log.c line=268 column=55
c
mdtype)) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_SUCCESS)
282        && : true=0, false=0
&
& ((rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_procattr_io_set : enter=0, leave=0

apr_procattr_io_set : /usr/include/apr-1/apr_thread_proc.h line=413 column=27
a
pr_procattr_io_set(procattr : server/log.c line=276 column=21
p
rocattr,
283                                      APR_FULL_BLOCK,
284                                      APR_NO_PIPE,
285                                      APR_NO_PIPE)) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_SUCCESS)
286        && : true=0, false=0
&
& ((rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_procattr_error_check_set : enter=0, leave=0

apr_procattr_error_check_set : /usr/include/apr-1/apr_thread_proc.h line=546 column=27
a
pr_procattr_error_check_set(procattr : server/log.c line=276 column=21
p
rocattr, 1)) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_SUCCESS)
287        && : true=0, false=0
&
& ((rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_procattr_child_errfn_set : enter=0, leave=0

apr_procattr_child_errfn_set : /usr/include/apr-1/apr_thread_proc.h line=531 column=27
a
pr_procattr_child_errfn_set(procattr : server/log.c line=276 column=21
p
rocattr, log_child_errfn : server/log.c line=255 column=13
l
og_child_errfn)) 
288                == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_SUCCESS)) {
289        char **args;
290        const char *pname;
291
292        apr_tokenize_to_argv : enter=0, leave=0

apr_tokenize_to_argv : /usr/include/apr-1/apr_strings.h line=214 column=27
a
pr_tokenize_to_argv(progname : server/log.c line=267 column=49
p
rogname, &args : server/log.c line=289 column=16
a
rgs, p : server/log.c line=267 column=34
p
);
293        pname : server/log.c line=290 column=21
p
name = : pass=0
=
 apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(p : server/log.c line=267 column=34
p
args : server/log.c line=289 column=16
a
rgs[] : enter=0, leave=0
[
0]);
294        procnew : server/log.c line=277 column=17
p
rocnew = : pass=0
=
 (apr_proc_t *)apr_pcalloc(p : server/log.c line=267 column=34
p
, sizeof(*procnew));
295
296        if : true=0, false=0
i
f ((rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_file_open_stdout : enter=0, leave=0

apr_file_open_stdout : /usr/include/apr-1/apr_file_io.h line=332 column=27
a
pr_file_open_stdout(&outfile : server/log.c line=278 column=17
o
utfile, p : server/log.c line=267 column=34
p
)) == : true=0, false=0
=
= APR_SUCCESS) {
297            rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_procattr_child_out_set : enter=0, leave=0

apr_procattr_child_out_set : /usr/include/apr-1/apr_thread_proc.h line=449 column=27
a
pr_procattr_child_out_set(procattr : server/log.c line=276 column=21
p
rocattr, outfile : server/log.c line=278 column=17
o
utfile, NULL);
298            if : true=0, false=0
i
f (dummy_stderr : server/log.c line=269 column=26
d
ummy_stderr)
299                rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_procattr_child_err_set : enter=0, leave=0

apr_procattr_child_err_set : /usr/include/apr-1/apr_thread_proc.h line=466 column=27
a
pr_procattr_child_err_set(procattr : server/log.c line=276 column=21
p
rocattr, outfile : server/log.c line=278 column=17
o
utfile, NULL);
300            else if : true=0, false=0
i
f ((rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_file_open_stderr : enter=0, leave=0

apr_file_open_stderr : /usr/include/apr-1/apr_file_io.h line=322 column=27
a
pr_file_open_stderr(&errfile : server/log.c line=278 column=27
e
rrfile, p : server/log.c line=267 column=34
p
)) == : true=0, false=0
=
= APR_SUCCESS)
301                rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_procattr_child_err_set : enter=0, leave=0

apr_procattr_child_err_set : /usr/include/apr-1/apr_thread_proc.h line=466 column=27
a
pr_procattr_child_err_set(procattr : server/log.c line=276 column=21
p
rocattr, errfile : server/log.c line=278 column=27
e
rrfile, NULL);
302        }
303
304        rc : server/log.c line=275 column=18
r
= : pass=0
=
 apr_proc_create : enter=0, leave=0

apr_proc_create : /usr/include/apr-1/apr_thread_proc.h line=608 column=27
a
pr_proc_create(procnew : server/log.c line=277 column=17
p
rocnew, pname : server/log.c line=290 column=21
p
name, (const char * const *)args : server/log.c line=289 column=16
a
rgs,
305                             NULL, procattr : server/log.c line=276 column=21
p
rocattr, p : server/log.c line=267 column=34
p
);
306
307        if : true=0, false=0
i
f (rc : server/log.c line=275 column=18
r
== : true=0, false=0
=
= APR_SUCCESS) {
308            apr_pool_note_subprocess : enter=0, leave=0

apr_pool_note_subprocess : /usr/include/apr-1/apr_thread_proc.h line=785 column=19
a
pr_pool_note_subprocess(p : server/log.c line=267 column=34
p
procnew : server/log.c line=277 column=17
p
rocnew, APR_KILL_AFTER_TIMEOUT : /usr/include/apr-1/apr_thread_proc.h line=202 column=5 APR_KILL_AFTER_TIMEOUT);
309            (* dereference : enter=0, leave=0
*
fpin : server/log.c line=268 column=35
f
pin) = : pass=0
=
 procnew : server/log.c line=277 column=17
p
rocnew-> : enter=0, leave=0
-
>in : /usr/include/apr-1/apr_thread_proc.h line=137 column=17 in;
310            /* read handle to pipe not kept open, so no need to call
311             * close_handle_in_child()
312             */
313        }
314    }
315
316    return : pass=0
r
eturn rc : server/log.c line=275 column=18
r
c;
317}
318
319/* Open the error log for the given server_rec.  If IS_MAIN is
320 * non-zero, s is the main server. */
321static int open_error_log : call=0
o
pen_error_log(server_rec *s, int is_main, apr_pool_t *p)
322{
323    const char *fname;
324    int rc;
325
326    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname == : true=0, false=0
=
= '|') {
327        apr_file_t *dummy = NULL;
328        apr_cmdtype_e cmdtype = APR_SHELLCMD_ENV : /usr/include/apr-1/apr_thread_proc.h line=50 column=5 APR_SHELLCMD_ENV;
329        fname : server/log.c line=323 column=17
f
name = : pass=0
=
 s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname + : pass=0
+
 1;
330
331        /* In 2.4 favor PROGRAM_ENV, accept "||prog" syntax for compatibility
332         * and "|$cmd" to override the default.
333         * Any 2.2 backport would continue to favor SHELLCMD_ENV so there 
334         * accept "||prog" to override, and "|$cmd" to ease conversion.
335         */
336        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
fname : server/log.c line=323 column=17
f
name == : true=0, false=0
=
= '|') {
337            cmdtype : server/log.c line=328 column=23
c
mdtype = : pass=0
=
 APR_PROGRAM_ENV : /usr/include/apr-1/apr_thread_proc.h line=48 column=5 APR_PROGRAM_ENV;
338            ++ : pass=0
+
+fname : server/log.c line=323 column=17
f
name;
339        }
340        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
fname : server/log.c line=323 column=17
f
name == : true=0, false=0
=
= '$')
341            ++ : pass=0
+
+fname : server/log.c line=323 column=17
f
name;
342    
343        /* Spawn a new child logger.  If this is the main server_rec,
344         * the new child must use a dummy stderr since the current
345         * stderr might be a pipe to the old logger.  Otherwise, the
346         * child inherits the parents stderr. */
347        rc : server/log.c line=324 column=9
r
= : pass=0
=
 log_child : enter=0, leave=0

log_child : server/log.c line=267 column=12
l
og_child(p : server/log.c line=321 column=67
p
fname : server/log.c line=323 column=17
f
name, &dummy : server/log.c line=327 column=21
d
ummy, cmdtype : server/log.c line=328 column=23
c
mdtype, is_main : server/log.c line=321 column=46
i
s_main);
348        if : true=0, false=0
i
f (rc : server/log.c line=324 column=9
r
!= : true=0, false=0
!
= APR_SUCCESS) {
349            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_STARTUP, rc : server/log.c line=324 column=9
r
c, NULL,
350                         "Couldn't start ErrorLog process");
351            return : pass=0
r
eturn DONE;
352        }
353
354        s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log = : enter=0, leave=0
=
 dummy : server/log.c line=327 column=21
d
ummy;
355    }
356
357#ifdef HAVE_SYSLOG
358    else if : true=0, false=0
i
f (! : true=0, false=0
!
strncasecmp : enter=0, leave=0

strncasecmp : /usr/include/string.h line=540 column=12
s
trncasecmp(s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname, "syslog", 6)) {
359        if : true=0, false=0
i
f ((fname : server/log.c line=323 column=17
f
name = : pass=0
=
 strchr : enter=0, leave=0

strchr : /usr/include/string.h line=235 column=14
s
trchr(s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname, ':'))) {
360            const TRANS *fac;
361
362            fname : server/log.c line=323 column=17
f
name++ : pass=0
+
+;
363            for : true=0, false=0
f
or (fac : server/log.c line=360 column=26
f
ac = : pass=0
=
 facilities : server/log.c line=67 column=20
f
acilities; fac : server/log.c line=360 column=26
f
ac-> : enter=0, leave=0
-
>t_name : server/log.c line=55 column=14
t
_name; fac : server/log.c line=360 column=26
f
ac++ : pass=0
+
+) {
364                if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(fname : server/log.c line=323 column=17
f
name, fac : server/log.c line=360 column=26
f
ac-> : enter=0, leave=0
-
>t_name : server/log.c line=55 column=14
t
_name)) {
365                    openlog : enter=0, leave=0

openlog : /usr/include/sys/syslog.h line=181 column=13
o
penlog(ap_server_argv0 : include/http_main.h line=42 column=36 ap_server_argv0, LOG_NDELAY| : pass=0
|
LOG_CONS| : pass=0
|
LOG_PID,
366                            fac : server/log.c line=360 column=26
f
ac-> : enter=0, leave=0
-
>t_val : server/log.c line=56 column=14
t
_val);
367                    s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log = : enter=0, leave=0
=
 NULL;
368                    return : pass=0
r
eturn OK;
369                }
370            }
371        }
372        else {
373            openlog : enter=0, leave=0

openlog : /usr/include/sys/syslog.h line=181 column=13
o
penlog(ap_server_argv0 : include/http_main.h line=42 column=36 ap_server_argv0, LOG_NDELAY| : pass=0
|
LOG_CONS| : pass=0
|
LOG_PID, LOG_LOCAL7);
374        }
375
376        s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log = : enter=0, leave=0
=
 NULL;
377    }
378#endif
379    else {
380        fname : server/log.c line=323 column=17
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(p : server/log.c line=321 column=67
p
s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname);
381        if : true=0, false=0
i
f (! : true=0, false=0
!
fname : server/log.c line=323 column=17
f
name) {
382            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_STARTUP, APR_EBADPATH, NULL,
383                         "%s: Invalid error log path %s.",
384                         ap_server_argv0 : include/http_main.h line=42 column=36 ap_server_argv0, s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname);
385            return : pass=0
r
eturn DONE;
386        }
387        if : true=0, false=0
i
f ((rc : server/log.c line=324 column=9
r
= : pass=0
=
 apr_file_open : enter=0, leave=0

apr_file_open : /usr/include/apr-1/apr_file_io.h line=235 column=27
a
pr_file_open(&s : server/log.c line=321 column=39
s
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log, fname : server/log.c line=323 column=17
f
name,
388                               APR_APPEND | : pass=0
|
 APR_WRITE | : pass=0
|
 APR_CREATE | : pass=0
|
 APR_LARGEFILE,
389                               APR_OS_DEFAULT, p : server/log.c line=321 column=67
p
)) != : true=0, false=0
!
= APR_SUCCESS) {
390            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_STARTUP, rc : server/log.c line=324 column=9
r
c, NULL,
391                         "%s: could not open error log file %s.",
392                         ap_server_argv0 : include/http_main.h line=42 column=36 ap_server_argv0, fname : server/log.c line=323 column=17
f
name);
393            return : pass=0
r
eturn DONE;
394        }
395    }
396
397    return : pass=0
r
eturn OK;
398}
399
400int ap_open_logs : call=0
a
p_open_logs(apr_pool_t *pconf, apr_pool_t *p /* plog */,
401                 apr_pool_t *ptemp, server_rec *s_main)
402{
403    apr_pool_t *stderr_p;
404    server_rec *virt, *q;
405    int replace_stderr;
406
407
408    /* Register to throw away the read_handles list when we
409     * cleanup plog.  Upon fork() for the apache children,
410     * this read_handles list is closed so only the parent
411     * can relaunch a lost log child.  These read handles 
412     * are always closed on exec.
413     * We won't care what happens to our stderr log child 
414     * between log phases, so we don't mind losing stderr's 
415     * read_handle a little bit early.
416     */
417    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/log.c line=400 column=49
p
, NULL, clear_handle_list : server/log.c line=158 column=21
c
lear_handle_list,
418                              apr_pool_cleanup_null : /usr/include/apr-1/apr_pools.h line=682 column=34 apr_pool_cleanup_null);
419
420    /* HERE we need a stdout log that outlives plog.
421     * We *presume* the parent of plog is a process 
422     * or global pool which spans server restarts.
423     * Create our stderr_pool as a child of the plog's
424     * parent pool.
425     */
426    apr_pool_create(&stderr_p : server/log.c line=403 column=17
s
tderr_p, apr_pool_parent_get : enter=0, leave=0

apr_pool_parent_get : /usr/include/apr-1/apr_pools.h line=493 column=27
a
pr_pool_parent_get(p : server/log.c line=400 column=49
p
));
427    apr_pool_tag : enter=0, leave=0

apr_pool_tag : /usr/include/apr-1/apr_pools.h line=513 column=19
a
pr_pool_tag(stderr_p : server/log.c line=403 column=17
s
tderr_p, "stderr_pool");
428    
429    if : true=0, false=0
i
f (open_error_log : enter=0, leave=0

open_error_log : server/log.c line=321 column=12
o
pen_error_log(s_main : server/log.c line=401 column=49
s
_main, 1, stderr_p : server/log.c line=403 column=17
s
tderr_p) != : true=0, false=0
!
= OK) {
430        return : pass=0
r
eturn DONE;
431    }
432
433    replace_stderr : server/log.c line=405 column=9
r
eplace_stderr = : pass=0
=
 1;
434    if : true=0, false=0
i
f (s_main : server/log.c line=401 column=49
s
_main-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log) {
435        apr_status_t rv;
436        
437        /* Replace existing stderr with new log. */
438        apr_file_flush : enter=0, leave=0

apr_file_flush : /usr/include/apr-1/apr_file_io.h line=556 column=27
a
pr_file_flush(s_main : server/log.c line=401 column=49
s
_main-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log);
439        rv : server/log.c line=435 column=22
r
= : pass=0
=
 apr_file_dup2 : enter=0, leave=0

apr_file_dup2 : /usr/include/apr-1/apr_file_io.h line=577 column=27
a
pr_file_dup2(stderr_log : server/log.c line=144 column=20
s
tderr_log, s_main : server/log.c line=401 column=49
s
_main-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log, stderr_p : server/log.c line=403 column=17
s
tderr_p);
440        if : true=0, false=0
i
f (rv : server/log.c line=435 column=22
r
!= : true=0, false=0
!
= APR_SUCCESS) {
441            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/log.c line=435 column=22
r
v, s_main : server/log.c line=401 column=49
s
_main,
442                         "unable to replace stderr with error_log");
443        }
444        else {
445            /* We are done with stderr_pool, close it, killing
446             * the previous generation's stderr logger
447             */
448            if : true=0, false=0
i
f (stderr_pool : server/log.c line=142 column=20
s
tderr_pool)
449                apr_pool_destroy : enter=0, leave=0

apr_pool_destroy : /usr/include/apr-1/apr_pools.h line=385 column=19
a
pr_pool_destroy(stderr_pool : server/log.c line=142 column=20
s
tderr_pool);
450            stderr_pool : server/log.c line=142 column=20
s
tderr_pool = : pass=0
=
 stderr_p : server/log.c line=403 column=17
s
tderr_p;
451            replace_stderr : server/log.c line=405 column=9
r
eplace_stderr = : pass=0
=
 0;
452            /*
453             * Now that we have dup'ed s_main->error_log to stderr_log
454             * close it and set s_main->error_log to stderr_log. This avoids
455             * this fd being inherited by the next piped logger who would
456             * keep open the writing end of the pipe that this one uses
457             * as stdin. This in turn would prevent the piped logger from
458             * exiting.
459             */
460             apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(s_main : server/log.c line=401 column=49
s
_main-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log);
461             s_main : server/log.c line=401 column=49
s
_main-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log = : enter=0, leave=0
=
 stderr_log : server/log.c line=144 column=20
s
tderr_log;
462        }
463    }
464    /* note that stderr may still need to be replaced with something
465     * because it points to the old error log, or back to the tty
466     * of the submitter.
467     * XXX: This is BS - /dev/null is non-portable
468     */
469    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

replace_stderr : server/log.c line=405 column=9
rTF
eplace_stderr && : true=0, false=0
&
freopen : enter=0, leave=0

freopen : /usr/include/stdio.h line=277 column=14
f
reopen("/dev/null", "w", stderr) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL) {
470        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, errno, s_main : server/log.c line=401 column=49
s
_main,
471                     "unable to replace stderr with /dev/null");
472    }
473
474    for : true=0, false=0
f
or (virt : server/log.c line=404 column=17
v
irt = : pass=0
=
 s_main : server/log.c line=401 column=49
s
_main-> : enter=0, leave=0
-
>next : include/httpd.h line=1176 column=17
n
ext; virt : server/log.c line=404 column=17
v
irt; virt : server/log.c line=404 column=17
v
irt = : pass=0
=
 virt : server/log.c line=404 column=17
v
irt-> : enter=0, leave=0
-
>next : include/httpd.h line=1176 column=17
n
ext) {
475        if : true=0, false=0
i
f (virt : server/log.c line=404 column=17
v
irt-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname) {
476            for : true=0, false=0
f
or (q : server/log.c line=404 column=24
q
= : pass=0
=
s_main : server/log.c line=401 column=49
s
_main; q : server/log.c line=404 column=24
q
 != : true=0, false=0
!
virt : server/log.c line=404 column=17
v
irt; q : server/log.c line=404 column=24
q
 = : pass=0
=
 q : server/log.c line=404 column=24
q
-> : enter=0, leave=0
-
>next : include/httpd.h line=1176 column=17
n
ext) {
477                if : true=0, false=0
i
f (q : server/log.c line=404 column=24
q
-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= NULL
478                    && : true=0, false=0
&
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(q : server/log.c line=404 column=24
q
-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname, virt : server/log.c line=404 column=17
v
irt-> : enter=0, leave=0
-
>error_fname : include/httpd.h line=1195 column=11
e
rror_fname) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 0) {
479                    break : pass=0
b
reak;
480                }
481            }
482
483            if : true=0, false=0
i
f (q : server/log.c line=404 column=24
q
 == : true=0, false=0
=
virt : server/log.c line=404 column=17
v
irt) {
484                if : true=0, false=0
i
f (open_error_log : enter=0, leave=0

open_error_log : server/log.c line=321 column=12
o
pen_error_log(virt : server/log.c line=404 column=17
v
irt, 0, p : server/log.c line=400 column=49
p
!= : true=0, false=0
!
= OK) {
485                    return : pass=0
r
eturn DONE;
486                }
487            }
488            else {
489                virt : server/log.c line=404 column=17
v
irt-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log = : enter=0, leave=0
=
 q : server/log.c line=404 column=24
q
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log;
490            }
491        }
492        else {
493            virt : server/log.c line=404 column=17
v
irt-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log = : enter=0, leave=0
=
 s_main : server/log.c line=401 column=49
s
_main-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log;
494        }
495    }
496    return : pass=0
r
eturn OK;
497}
498
499AP_DECLARE(void) ap_error_log2stderr : call=0
a
p_error_log2stderr(server_rec *s) {
500    apr_file_t *errfile = NULL;
501
502    apr_file_open_stderr : enter=0, leave=0

apr_file_open_stderr : /usr/include/apr-1/apr_file_io.h line=322 column=27
a
pr_file_open_stderr(&errfile : server/log.c line=500 column=17
e
rrfile, s : server/log.c line=499 column=50
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);
503    if : true=0, false=0
i
f (s : server/log.c line=499 column=50
s
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log != : true=0, false=0
!
= NULL) {
504        apr_file_dup2 : enter=0, leave=0

apr_file_dup2 : /usr/include/apr-1/apr_file_io.h line=577 column=27
a
pr_file_dup2(s : server/log.c line=499 column=50
s
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log, errfile : server/log.c line=500 column=17
e
rrfile, s : server/log.c line=499 column=50
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);
505    }
506}
507
508static void log_error_core : call=1
l
og_error_core(const char *file, int line, int level,
509                           apr_status_t status, const server_rec *s,
510                           const conn_rec *c,
511                           const request_rec *r, apr_pool_t *pool,
512                           const char *fmt, va_list args)
513{
514    char errstr[MAX_STRING_LEN];
515#ifndef AP_UNSAFE_ERROR_LOG_UNESCAPED
516    char scratch[MAX_STRING_LEN];
517#endif
518    apr_size_t len, errstrlen;
519    apr_file_t *logf = NULL;
520    const char *referer;
521    int level_and_mask = level : server/log.c line=508 column=60
l
evel & : pass=1
&
 APLOG_LEVELMASK;
522
523    if : true=0, false=1
i
f (MC/DC independently affect : true=0, false=1

r : server/log.c line=511 column=47
rTF
 && : true=0, false=1
&
r : server/log.c line=511 column=47
r
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>connection : include/httpd.h line=782 column=15
c
onnection) {
524        c : server/log.c line=510 column=44
c
 = : pass=0
=
 r : server/log.c line=511 column=47
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection;
525    }
526
527    if : true=1, false=0
i
f (s : server/log.c line=509 column=67
s
 == : true=1, false=0
=
= NULL) {
528        /*
529         * If we are doing stderr logging (startup), don't log messages that are
530         * above the default server log level unless it is a startup/shutdown
531         * notice
532         */
533        if : true=0, false=1
i
f ((level_and_mask : server/log.c line=521 column=9
l
evel_and_mask != : true=1, false=0
MC/DC independently affect : true=0, false=0
!TF
= APLOG_NOTICE)
534            && : true=0, false=1
&
& (level_and_mask : server/log.c line=521 column=9
l
evel_and_mask > : true=0, false=1
MC/DC independently affect : true=0, false=1
>TF
 ap_default_loglevel : server/log.c line=63 column=21
a
p_default_loglevel)) {
535            return : pass=0
r
eturn;
536        }
537
538        logf : server/log.c line=519 column=17
l
ogf = : pass=1
=
 stderr_log : server/log.c line=144 column=20
s
tderr_log;
539    }
540    else if : true=0, false=0
i
f (s : server/log.c line=509 column=67
s
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log) {
541        /*
542         * If we are doing normal logging, don't log messages that are
543         * above the server log level unless it is a startup/shutdown notice
544         */
545        if : true=0, false=0
i
f ((level_and_mask : server/log.c line=521 column=9
l
evel_and_mask != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APLOG_NOTICE)
546            && : true=0, false=0
&
& (level_and_mask : server/log.c line=521 column=9
l
evel_and_mask > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 s : server/log.c line=509 column=67
s
-> : enter=0, leave=0
-
>loglevel : include/httpd.h line=1199 column=9
l
oglevel)) {
547            return : pass=0
r
eturn;
548        }
549
550        logf : server/log.c line=519 column=17
l
ogf = : pass=0
=
 s : server/log.c line=509 column=67
s
-> : enter=0, leave=0
-
>error_log : include/httpd.h line=1197 column=17
e
rror_log;
551    }
552#ifdef TPF
553    else if (tpf_child) {
554        /*
555         * If we are doing normal logging, don't log messages that are
556         * above the server log level unless it is a startup/shutdown notice
557         */
558        if ((level_and_mask != APLOG_NOTICE)
559            && (level_and_mask > s->loglevel)) {
560            return;
561        }
562
563        logf = stderr;
564    }
565#endif /* TPF */
566    else {
567        /*
568         * If we are doing syslog logging, don't log messages that are
569         * above the server log level (including a startup/shutdown notice)
570         */
571        if : true=0, false=0
i
f (level_and_mask : server/log.c line=521 column=9
l
evel_and_mask > : true=0, false=0
>
 s : server/log.c line=509 column=67
s
-> : enter=0, leave=0
-
>loglevel : include/httpd.h line=1199 column=9
l
oglevel) {
572            return : pass=0
r
eturn;
573        }
574    }
575
576    if : true=0, false=1
i
f (MC/DC independently affect : true=0, false=0

logf : server/log.c line=519 column=17
lTF
ogf && : true=0, false=1
&
& ((level : server/log.c line=508 column=60
l
evel & : pass=1
&
 APLOG_STARTUP) != : true=0, false=1
MC/DC independently affect : true=0, false=1
!TF
= APLOG_STARTUP)) {
577        errstr : server/log.c line=514 column=10
e
rrstr[0] = : enter=0, leave=0
=
 '[';
578        ap_recent_ctime : enter=0, leave=0

ap_recent_ctime : include/util_time.h line=77 column=26
a
p_recent_ctime(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 1, 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());
579        errstr : server/log.c line=514 column=10
e
rrstr[1 + : pass=0
+
 APR_CTIME_LEN - : pass=0
-
 1] = : enter=0, leave=0
=
 ']';
580        errstr : server/log.c line=514 column=10
e
rrstr[1 + : pass=0
+
 APR_CTIME_LEN    ] = : enter=0, leave=0
=
 ' ';
581        len : server/log.c line=518 column=16
l
en = : pass=0
=
 1 + : pass=0
+
 APR_CTIME_LEN + : pass=0
+
 1;
582    } else {
583        len : server/log.c line=518 column=16
l
en = : pass=1
=
 0;
584    }
585
586    if : true=0, false=1
i
f ((level : server/log.c line=508 column=60
l
evel & : pass=1
&
 APLOG_STARTUP) != : true=0, false=1
!
= APLOG_STARTUP) {
587        len : server/log.c line=518 column=16
l
en += : pass=0
+
apr_snprintf : enter=0, leave=0

apr_snprintf : /usr/include/apr-1/apr_strings.h line=261 column=25
a
pr_snprintf(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en,
588                            "[%s] ", priorities : server/log.c line=130 column=20
p
riorities[] : enter=0, leave=0
[
level_and_mask : server/log.c line=521 column=9
l
evel_and_mask].t_name : server/log.c line=55 column=14
t
_name);
589    }
590
591#ifndef TPF
592    if : true=0, false=1
i
f (MC/DC independently affect : true=0, false=0

file : server/log.c line=508 column=40
fTF
ile && : true=0, false=1
&
level_and_mask : server/log.c line=521 column=9
l
evel_and_mask == : true=0, false=1
MC/DC independently affect : true=0, false=1
=TF
= APLOG_DEBUG) {
593#if defined(_OSD_POSIX) || defined(WIN32) || defined(__MVS__)
594        char tmp[256];
595        char *e = strrchr(file, '/');
596#ifdef WIN32
597        if (!e) {
598            e = strrchr(file, '\\');
599        }
600#endif
601
602        /* In OSD/POSIX, the compiler returns for __FILE__
603         * a string like: __FILE__="*POSIX(/usr/include/stdio.h)"
604         * (it even returns an absolute path for sources in
605         * the current directory). Here we try to strip this
606         * down to the basename.
607         */
608        if (e != NULL && e[1] != '\0') {
609            apr_snprintf(tmp, sizeof(tmp), "%s", &e[1]);
610            e = &tmp[strlen(tmp)-1];
611            if (*e == ')') {
612                *e = '\0';
613            }
614            file = tmp;
615        }
616#else /* _OSD_POSIX || WIN32 */
617        const char *p;
618        /* On Unix, __FILE__ may be an absolute path in a
619         * VPATH build. */
620        if : true=0, false=0
i
f (file : server/log.c line=508 column=40
f
ile[] : enter=0, leave=0
[
0] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '/' && : true=0, false=0
&
& (p : server/log.c line=617 column=21
p
 = : pass=0
=
 ap_strrchr_c(file : server/log.c line=508 column=40
f
ile, '/')) != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= NULL) {
621            file : server/log.c line=508 column=40
f
ile = : pass=0
=
 p : server/log.c line=617 column=21
p
 + : pass=0
+
 1;
622        }
623#endif /*_OSD_POSIX || WIN32 */
624        len : server/log.c line=518 column=16
l
en += : pass=0
+
apr_snprintf : enter=0, leave=0

apr_snprintf : /usr/include/apr-1/apr_strings.h line=261 column=25
a
pr_snprintf(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en,
625                            "%s(%d): ", file : server/log.c line=508 column=40
f
ile, line : server/log.c line=508 column=50
l
ine);
626    }
627#endif /* TPF */
628
629    if : true=0, false=1
i
f (c : server/log.c line=510 column=44
c
) {
630        /* XXX: TODO: add a method of selecting whether logged client
631         * addresses are in dotted quad or resolved form... dotted
632         * quad is the most secure, which is why I'm implementing it
633         * first. -djg
634         */
635        len : server/log.c line=518 column=16
l
en += : pass=0
+
apr_snprintf : enter=0, leave=0

apr_snprintf : /usr/include/apr-1/apr_strings.h line=261 column=25
a
pr_snprintf(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en,
636                            "[client %s] ", c : server/log.c line=510 column=44
c
-> : enter=0, leave=0
-
>remote_ip : include/httpd.h line=1060 column=11
r
emote_ip);
637    }
638    if : true=0, false=1
i
f (status : server/log.c line=509 column=41
s
tatus != : true=0, false=1
!
= 0) {
639        if : true=0, false=0
i
f (status : server/log.c line=509 column=41
s
tatus < : true=0, false=0
<
 APR_OS_START_EAIERR) {
640            len : server/log.c line=518 column=16
l
en += : pass=0
+
apr_snprintf : enter=0, leave=0

apr_snprintf : /usr/include/apr-1/apr_strings.h line=261 column=25
a
pr_snprintf(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en,
641                                "(%d)", status : server/log.c line=509 column=41
s
tatus);
642        }
643        else if : true=0, false=0
i
f (status : server/log.c line=509 column=41
s
tatus < : true=0, false=0
<
 APR_OS_START_SYSERR) {
644            len : server/log.c line=518 column=16
l
en += : pass=0
+
apr_snprintf : enter=0, leave=0

apr_snprintf : /usr/include/apr-1/apr_strings.h line=261 column=25
a
pr_snprintf(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en,
645                                "(EAI %d)", status : server/log.c line=509 column=41
s
tatus - : pass=0
-
 APR_OS_START_EAIERR);
646        }
647        else if : true=0, false=0
i
f (status : server/log.c line=509 column=41
s
tatus < : true=0, false=0
<
 100000 + : pass=0
+
 APR_OS_START_SYSERR) {
648            len : server/log.c line=518 column=16
l
en += : pass=0
+
apr_snprintf : enter=0, leave=0

apr_snprintf : /usr/include/apr-1/apr_strings.h line=261 column=25
a
pr_snprintf(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en,
649                                "(OS %d)", status : server/log.c line=509 column=41
s
tatus - : pass=0
-
 APR_OS_START_SYSERR);
650        }
651        else {
652            len : server/log.c line=518 column=16
l
en += : pass=0
+
apr_snprintf : enter=0, leave=0

apr_snprintf : /usr/include/apr-1/apr_strings.h line=261 column=25
a
pr_snprintf(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en,
653                                "(os 0x%08x)", status : server/log.c line=509 column=41
s
tatus - : pass=0
-
 APR_OS_START_SYSERR);
654        }
655        apr_strerror : enter=0, leave=0

apr_strerror : /usr/include/apr-1/apr_errno.h line=52 column=21
a
pr_strerror(status : server/log.c line=509 column=41
s
tatus, errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en);
656        len : server/log.c line=518 column=16
l
en += : pass=0
+
strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en);
657        if : true=0, false=0
i
f (MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en > : true=0, false=0
>
 2) {
658            errstr : server/log.c line=514 column=10
e
rrstr[len : server/log.c line=518 column=16
l
en++ : pass=0
+
+] = : enter=0, leave=0
=
 ':';
659            errstr : server/log.c line=514 column=10
e
rrstr[len : server/log.c line=518 column=16
l
en++ : pass=0
+
+] = : enter=0, leave=0
=
 ' ';
660            errstr : server/log.c line=514 column=10
e
rrstr[len : server/log.c line=518 column=16
l
en] = : enter=0, leave=0
=
 '\0';
661        }
662    }
663
664    errstrlen : server/log.c line=518 column=21
e
rrstrlen = : pass=1
=
 len : server/log.c line=518 column=16
l
en;
665#ifndef AP_UNSAFE_ERROR_LOG_UNESCAPED
666    if : true=1, false=0
i
f (apr_vsnprintf : enter=1, leave=1

apr_vsnprintf : /usr/include/apr-1/apr_strings.h line=273 column=18
a
pr_vsnprintf(scratch : server/log.c line=516 column=10
s
cratch, MAX_STRING_LEN - : pass=1
-
 len : server/log.c line=518 column=16
l
en, fmt : server/log.c line=512 column=40
f
mt, args : server/log.c line=512 column=53
a
rgs)) {
667        len : server/log.c line=518 column=16
l
en += : pass=1
+
ap_escape_errorlog_item : enter=1, leave=1

ap_escape_errorlog_item : include/httpd.h line=1537 column=24
a
p_escape_errorlog_item(errstr : server/log.c line=514 column=10
e
rrstr + : pass=1
+
 len : server/log.c line=518 column=16
l
en, scratch : server/log.c line=516 column=10
s
cratch,
668                                       MAX_STRING_LEN - : pass=1
-
 len : server/log.c line=518 column=16
l
en);
669    }
670#else
671    len += apr_vsnprintf(errstr + len, MAX_STRING_LEN - len, fmt, args);
672#endif
673
674    if : true=0, false=1
i
f (   MC/DC independently affect : true=0, false=1

r : server/log.c line=511 column=47
rTF
 && : true=0, false=1
&
& (referer : server/log.c line=520 column=17
r
eferer = : pass=0
MC/DC independently affect : true=0, false=0
=TF
 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(r : server/log.c line=511 column=47
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Referer"))
675#ifndef AP_UNSAFE_ERROR_LOG_UNESCAPED
676        && : true=0, false=1
&
MC/DC independently affect : true=0, false=0
ap_escape_errorlog_item : enter=0, leave=0

ap_escape_errorlog_item : include/httpd.h line=1537 column=24
aTF
p_escape_errorlog_item(scratch : server/log.c line=516 column=10
s
cratch, referer : server/log.c line=520 column=17
r
eferer, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en)
677#endif
678        ) {
679        len : server/log.c line=518 column=16
l
en += : pass=0
+
apr_snprintf : enter=0, leave=0

apr_snprintf : /usr/include/apr-1/apr_strings.h line=261 column=25
a
pr_snprintf(errstr : server/log.c line=514 column=10
e
rrstr + : pass=0
+
 len : server/log.c line=518 column=16
l
en, MAX_STRING_LEN - : pass=0
-
 len : server/log.c line=518 column=16
l
en,
680                            ", referer: %s",
681#ifndef AP_UNSAFE_ERROR_LOG_UNESCAPED
682                            scratch : server/log.c line=516 column=10
s
cratch
683#else
684                            referer
685#endif
686                            );
687    }
688
689    /* NULL if we are logging to syslog */
690    if : true=1, false=0
i
f (logf : server/log.c line=519 column=17
l
ogf) {
691        /* Truncate for the terminator (as apr_snprintf does) */
692        if : true=0, false=1
i
f (len : server/log.c line=518 column=16
l
en > : true=0, false=1
>
 MAX_STRING_LEN - : pass=1
-
 sizeof(APR_EOL_STR)) {
693            len : server/log.c line=518 column=16
l
en = : pass=0
=
 MAX_STRING_LEN - : pass=0
-
 sizeof(APR_EOL_STR);
694        }
695        strcpy : enter=1, leave=1

strcpy : /usr/include/string.h line=128 column=14
s
trcpy(errstr : server/log.c line=514 column=10
e
rrstr + : pass=1
+
 len : server/log.c line=518 column=16
l
en, APR_EOL_STR);
696        apr_file_puts : enter=1, leave=1

apr_file_puts : /usr/include/apr-1/apr_file_io.h line=550 column=27
a
pr_file_puts(errstr : server/log.c line=514 column=10
e
rrstr, logf : server/log.c line=519 column=17
l
ogf);
697        apr_file_flush : enter=1, leave=1

apr_file_flush : /usr/include/apr-1/apr_file_io.h line=556 column=27
a
pr_file_flush(logf : server/log.c line=519 column=17
l
ogf);
698    }
699#ifdef HAVE_SYSLOG
700    else {
701        syslog : enter=0, leave=0

syslog : /usr/include/sys/syslog.h line=190 column=13
s
yslog(level_and_mask : server/log.c line=521 column=9
l
evel_and_mask, "%s", errstr : server/log.c line=514 column=10
e
rrstr);
702    }
703#endif
704
705    ap_run_error_log : enter=1, leave=1

ap_run_error_log : server/ line=121 column=1
a
p_run_error_log(file : server/log.c line=508 column=40
f
ile, line : server/log.c line=508 column=50
l
ine, level : server/log.c line=508 column=60
l
evel, status : server/log.c line=509 column=41
s
tatus, s : server/log.c line=509 column=67
s
r : server/log.c line=511 column=47
r
pool : server/log.c line=511 column=62
p
ool, errstr : server/log.c line=514 column=10
e
rrstr + : pass=1
+
 errstrlen : server/log.c line=518 column=21
e
rrstrlen);
706}
707
708AP_DECLARE(void) ap_log_error : call=1
a
p_log_error(const char *file, int line, int level,
709                              apr_status_t status, const server_rec *s,
710                              const char *fmt, ...)
711{
712    va_list args;
713
714    va_start(args : server/log.c line=712 column=13
a
rgs, fmt : server/log.c line=710 column=43
f
mt);
715    log_error_core : enter=1, leave=1

log_error_core : server/log.c line=508 column=13
l
og_error_core(file : server/log.c line=708 column=43
f
ile, line : server/log.c line=708 column=53
l
ine, level : server/log.c line=708 column=63
l
evel, status : server/log.c line=709 column=44
s
tatus, s : server/log.c line=709 column=70
s
, NULL, NULL, NULL, fmt : server/log.c line=710 column=43
f
mt, args : server/log.c line=712 column=13
a
rgs);
716    va_end(args : server/log.c line=712 column=13
a
rgs);
717}
718
719AP_DECLARE(void) ap_log_perror : call=0
a
p_log_perror(const char *file, int line, int level,
720                               apr_status_t status, apr_pool_t *p,
721                               const char *fmt, ...)
722{
723    va_list args;
724
725    va_start(args : server/log.c line=723 column=13
a
rgs, fmt : server/log.c line=721 column=44
f
mt);
726    log_error_core : enter=0, leave=0

log_error_core : server/log.c line=508 column=13
l
og_error_core(file : server/log.c line=719 column=44
f
ile, line : server/log.c line=719 column=54
l
ine, level : server/log.c line=719 column=64
l
evel, status : server/log.c line=720 column=45
s
tatus, NULL, NULL, NULL, p : server/log.c line=720 column=65
p
fmt : server/log.c line=721 column=44
f
mt, args : server/log.c line=723 column=13
a
rgs);
727    va_end(args : server/log.c line=723 column=13
a
rgs);
728}
729
730AP_DECLARE(void) ap_log_rerror : call=0
a
p_log_rerror(const char *file, int line, int level,
731                               apr_status_t status, const request_rec *r,
732                               const char *fmt, ...)
733{
734    va_list args;
735
736    va_start(args : server/log.c line=734 column=13
a
rgs, fmt : server/log.c line=732 column=44
f
mt);
737    log_error_core : enter=0, leave=0

log_error_core : server/log.c line=508 column=13
l
og_error_core(file : server/log.c line=730 column=44
f
ile, line : server/log.c line=730 column=54
l
ine, level : server/log.c line=730 column=64
l
evel, status : server/log.c line=731 column=45
s
tatus, r : server/log.c line=731 column=72
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver, NULL, r : server/log.c line=731 column=72
r
, NULL, fmt : server/log.c line=732 column=44
f
mt,
738                   args : server/log.c line=734 column=13
a
rgs);
739
740    /*
741     * IF APLOG_TOCLIENT is set,
742     * AND the error level is 'warning' or more severe,
743     * AND there isn't already error text associated with this request,
744     * THEN make the message text available to ErrorDocument and
745     * other error processors.
746     */
747    va_end(args : server/log.c line=734 column=13
a
rgs);
748    va_start(args : server/log.c line=734 column=13
a
rgs,fmt : server/log.c line=732 column=44
f
mt);
749    if : true=0, false=0
i
f ((level : server/log.c line=730 column=64
l
evel & : pass=0
&
 APLOG_TOCLIENT)
750        && : true=0, false=0
&
& ((level : server/log.c line=730 column=64
l
evel & : pass=0
&
 APLOG_LEVELMASK) <= : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
= APLOG_WARNING)
751        && : true=0, false=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(r : server/log.c line=731 column=72
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "error-notes") == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL)) {
752        apr_table_setn : enter=0, leave=0

apr_table_setn : /usr/include/apr-1/apr_tables.h line=282 column=19
a
pr_table_setn(r : server/log.c line=731 column=72
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "error-notes",
753                       ap_escape_html : enter=0, leave=0

ap_escape_html : include/httpd.h line=1512 column=20
a
p_escape_html(r : server/log.c line=731 column=72
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, apr_pvsprintf : enter=0, leave=0

apr_pvsprintf : /usr/include/apr-1/apr_strings.h line=160 column=21
a
pr_pvsprintf(r : server/log.c line=731 column=72
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, fmt : server/log.c line=732 column=44
f
mt,
754                                                             args : server/log.c line=734 column=13
a
rgs)));
755    }
756    va_end(args : server/log.c line=734 column=13
a
rgs);
757}
758
759AP_DECLARE(void) ap_log_cerror : call=0
a
p_log_cerror(const char *file, int line, int level,
760                               apr_status_t status, const conn_rec *c,
761                               const char *fmt, ...)
762{
763    va_list args;
764
765    va_start(args : server/log.c line=763 column=13
a
rgs, fmt : server/log.c line=761 column=44
f
mt);
766    log_error_core : enter=0, leave=0

log_error_core : server/log.c line=508 column=13
l
og_error_core(file : server/log.c line=759 column=44
f
ile, line : server/log.c line=759 column=54
l
ine, level : server/log.c line=759 column=64
l
evel, status : server/log.c line=760 column=45
s
tatus, c : server/log.c line=760 column=69
c
-> : enter=0, leave=0
-
>base_server : include/httpd.h line=1049 column=17
b
ase_server, c : server/log.c line=760 column=69
c
, NULL, NULL,
767                   fmt : server/log.c line=761 column=44
f
mt, args : server/log.c line=763 column=13
a
rgs);
768    va_end(args : server/log.c line=763 column=13
a
rgs);
769}
770
771AP_DECLARE(void) ap_log_pid : call=0
a
p_log_pid(apr_pool_t *p, const char *filename)
772{
773    apr_file_t *pid_file = NULL;
774    apr_finfo_t finfo;
775    static pid_t saved_pid = -1;
776    pid_t mypid;
777    apr_status_t rv;
778    const char *fname;
779
780    if : true=0, false=0
i
f (! : true=0, false=0
!
filename : server/log.c line=771 column=56
f
ilename) {
781        return : pass=0
r
eturn;
782    }
783
784    fname : server/log.c line=778 column=17
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(p : server/log.c line=771 column=41
p
filename : server/log.c line=771 column=56
f
ilename);
785    if : true=0, false=0
i
f (! : true=0, false=0
!
fname : server/log.c line=778 column=17
f
name) {
786        ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_STARTUP| : pass=0
|
APLOG_CRIT, APR_EBADPATH,
787                     NULL, "Invalid PID file path %s, ignoring.", filename : server/log.c line=771 column=56
f
ilename);
788        return : pass=0
r
eturn;
789    }
790
791    mypid : server/log.c line=776 column=11
m
ypid = : pass=0
=
 getpid : enter=0, leave=0

getpid : /usr/include/unistd.h line=625 column=16
g
etpid();
792    if : true=0, false=0
i
f (mypid : server/log.c line=776 column=11
m
ypid != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
saved_pid : server/log.c line=775 column=18
s
aved_pid
793        && : true=0, false=0
&
apr_stat : enter=0, leave=0

apr_stat : /usr/include/apr-1/apr_file_info.h line=229 column=27
a
pr_stat(&finfo : server/log.c line=774 column=17
f
info, fname : server/log.c line=778 column=17
f
name, APR_FINFO_MTIME, p : server/log.c line=771 column=41
p
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_SUCCESS) {
794        /* AP_SIG_GRACEFUL and HUP call this on each restart.
795         * Only warn on first time through for this pid.
796         *
797         * XXX: Could just write first time through too, although
798         *      that may screw up scripts written to do something
799         *      based on the last modification time of the pid file.
800         */
801        ap_log_perror : enter=0, leave=0

ap_log_perror : server/log.c line=719 column=18
a
p_log_perror(APLOG_MARK, APLOG_WARNING, 0, p : server/log.c line=771 column=41
p
,
802                      "pid file %s overwritten -- Unclean "
803                      "shutdown of previous Apache run?",
804                      fname : server/log.c line=778 column=17
f
name);
805    }
806
807    if : true=0, false=0
i
f ((rv : server/log.c line=777 column=18
r
= : pass=0
=
 apr_file_open : enter=0, leave=0

apr_file_open : /usr/include/apr-1/apr_file_io.h line=235 column=27
a
pr_file_open(&pid_file : server/log.c line=773 column=17
p
id_file, fname : server/log.c line=778 column=17
f
name,
808                            APR_WRITE | : pass=0
|
 APR_CREATE | : pass=0
|
 APR_TRUNCATE,
809                            APR_UREAD | : pass=0
|
 APR_UWRITE | : pass=0
|
 APR_GREAD | : pass=0
|
 APR_WREAD, p : server/log.c line=771 column=41
p
))
810        != : true=0, false=0
!
= APR_SUCCESS) {
811        ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_ERR, rv : server/log.c line=777 column=18
r
v, NULL,
812                     "could not create %s", fname : server/log.c line=778 column=17
f
name);
813        ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
814                     "%s: could not log pid to file %s",
815                     ap_server_argv0 : include/http_main.h line=42 column=36 ap_server_argv0, fname : server/log.c line=778 column=17
f
name);
816        exit : enter=0, leave=0

exit : /usr/include/stdlib.h line=544 column=13
e
xit(1);
817    }
818    apr_file_printf : enter=0, leave=0

apr_file_printf : /usr/include/apr-1/apr_file_io.h line=759 column=25
a
pr_file_printf(pid_file : server/log.c line=773 column=17
p
id_file, "%ld" APR_EOL_STR, (long)mypid : server/log.c line=776 column=11
m
ypid);
819    apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(pid_file : server/log.c line=773 column=17
p
id_file);
820    saved_pid : server/log.c line=775 column=18
s
aved_pid = : pass=0
=
 mypid : server/log.c line=776 column=11
m
ypid;
821}
822
823AP_DECLARE(apr_status_t) ap_read_pid : call=0
a
p_read_pid(apr_pool_t *p, const char *filename,
824                                     pid_t *mypid)
825{
826    const apr_size_t BUFFER_SIZE = sizeof(long) * : pass=0
*
 3 + : pass=0
+
 2; /* see apr_ltoa */
827    apr_file_t *pid_file = NULL;
828    apr_status_t rv;
829    const char *fname;
830    char *buf, *endptr;
831    apr_size_t bytes_read;
832
833    if : true=0, false=0
i
f (! : true=0, false=0
!
filename : server/log.c line=823 column=65
f
ilename) {
834        return : pass=0
r
eturn APR_EGENERAL;
835    }
836
837    fname : server/log.c line=829 column=17
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(p : server/log.c line=823 column=50
p
filename : server/log.c line=823 column=65
f
ilename);
838    if : true=0, false=0
i
f (! : true=0, false=0
!
fname : server/log.c line=829 column=17
f
name) {
839        ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_STARTUP| : pass=0
|
APLOG_CRIT, APR_EBADPATH,
840                     NULL, "Invalid PID file path %s, ignoring.", filename : server/log.c line=823 column=65
f
ilename);
841        return : pass=0
r
eturn APR_EGENERAL;
842    }
843
844    rv : server/log.c line=828 column=18
r
= : pass=0
=
 apr_file_open : enter=0, leave=0

apr_file_open : /usr/include/apr-1/apr_file_io.h line=235 column=27
a
pr_file_open(&pid_file : server/log.c line=827 column=17
p
id_file, fname : server/log.c line=829 column=17
f
name, APR_READ, APR_OS_DEFAULT, p : server/log.c line=823 column=50
p
);
845    if : true=0, false=0
i
f (rv : server/log.c line=828 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
846        return : pass=0
r
eturn rv : server/log.c line=828 column=18
r
v;
847    }
848
849    buf : server/log.c line=830 column=11
b
uf = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : server/log.c line=823 column=50
p
BUFFER_SIZE : server/log.c line=826 column=22
B
UFFER_SIZE);
850
851    rv : server/log.c line=828 column=18
r
= : pass=0
=
 apr_file_read_full : enter=0, leave=0

apr_file_read_full : /usr/include/apr-1/apr_file_io.h line=467 column=27
a
pr_file_read_full(pid_file : server/log.c line=827 column=17
p
id_file, buf : server/log.c line=830 column=11
b
uf, BUFFER_SIZE : server/log.c line=826 column=22
B
UFFER_SIZE - : pass=0
-
 1, &bytes_read : server/log.c line=831 column=16
b
ytes_read);
852    if : true=0, false=0
i
f (rv : server/log.c line=828 column=18
r
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS && : true=0, false=0
&
rv : server/log.c line=828 column=18
r
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_EOF) {
853        return : pass=0
r
eturn rv : server/log.c line=828 column=18
r
v;
854    }
855
856    /* If we fill the buffer, we're probably reading a corrupt pid file.
857     * To be nice, let's also ensure the first char is a digit. */
858    if : true=0, false=0
i
f (bytes_read : server/log.c line=831 column=16
b
ytes_read == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 0 || : true=0, false=0
|
bytes_read : server/log.c line=831 column=16
b
ytes_read == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
BUFFER_SIZE : server/log.c line=826 column=22
B
UFFER_SIZE - : pass=0
-
 1 || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
apr_isdigit(* dereference : enter=0, leave=0
*
buf : server/log.c line=830 column=11
b
uf)) {
859        return : pass=0
r
eturn APR_EGENERAL;
860    }
861
862    buf : server/log.c line=830 column=11
b
uf[bytes_read : server/log.c line=831 column=16
b
ytes_read] = : enter=0, leave=0
=
 '\0';
863    *mypid : server/log.c line=824 column=45
m
ypid = : enter=0, leave=0
=
 strtol : enter=0, leave=0

strtol : /usr/include/stdlib.h line=184 column=17
s
trtol(buf : server/log.c line=830 column=11
b
uf, &endptr : server/log.c line=830 column=17
e
ndptr, 10);
864
865    apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(pid_file : server/log.c line=827 column=17
p
id_file);
866    return : pass=0
r
eturn APR_SUCCESS;
867}
868
869AP_DECLARE(void) ap_log_assert : call=0
a
p_log_assert(const char *szExp, const char *szFile,
870                               int nLine)
871{
872    char time_str[APR_CTIME_LEN];
873
874    apr_ctime : enter=0, leave=0

apr_ctime : /usr/include/apr-1/apr_time.h line=204 column=27
a
pr_ctime(time_str : server/log.c line=872 column=10
t
ime_str, 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());
875    ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_CRIT, 0, NULL,
876                 "[%s] file %s, line %d, assertion \"%s\" failed",
877                 time_str : server/log.c line=872 column=10
t
ime_str, szFile : server/log.c line=869 column=63
s
zFile, nLine : server/log.c line=870 column=36
n
Line, szExp : server/log.c line=869 column=44
s
zExp);
878#if defined(WIN32)
879    DebugBreak();
880#else
881    /* unix assert does an abort leading to a core dump */
882    abort : enter=0, leave=0

abort : /usr/include/stdlib.h line=514 column=13
a
bort();
883#endif
884}
885
886/* piped log support */
887
888#ifdef AP_HAVE_RELIABLE_PIPED_LOGS
889/* forward declaration */
890static void piped_log_maintenance(int reason, void *data, apr_wait_t status);
891
892/* Spawn the piped logger process pl->program. */
893static apr_status_t piped_log_spawn : call=0
p
iped_log_spawn(piped_log *pl)
894{
895    apr_procattr_t *procattr;
896    apr_proc_t *procnew = NULL;
897    apr_status_t status;
898
899    if : true=0, false=0
i
f (((status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_procattr_create : enter=0, leave=0

apr_procattr_create : /usr/include/apr-1/apr_thread_proc.h line=396 column=27
a
pr_procattr_create(&procattr : server/log.c line=895 column=21
p
rocattr, pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
)) != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS) || : true=0, false=0
|
|
900        ((status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_procattr_cmdtype_set : enter=0, leave=0

apr_procattr_cmdtype_set : /usr/include/apr-1/apr_thread_proc.h line=491 column=27
a
pr_procattr_cmdtype_set(procattr : server/log.c line=895 column=21
p
rocattr, pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>cmdtype : include/http_log.h line=293 column=19
c
mdtype))
901         != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS) || : true=0, false=0
|
|
902        ((status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_procattr_child_in_set : enter=0, leave=0

apr_procattr_child_in_set : /usr/include/apr-1/apr_thread_proc.h line=432 column=27
a
pr_procattr_child_in_set(procattr : server/log.c line=895 column=21
p
rocattr,
903                                             ap_piped_log_read_fd(pl : server/log.c line=893 column=48
p
l),
904                                             ap_piped_log_write_fd(pl : server/log.c line=893 column=48
p
l)))
905         != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS) || : true=0, false=0
|
|
906        ((status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_procattr_child_errfn_set : enter=0, leave=0

apr_procattr_child_errfn_set : /usr/include/apr-1/apr_thread_proc.h line=531 column=27
a
pr_procattr_child_errfn_set(procattr : server/log.c line=895 column=21
p
rocattr, log_child_errfn : server/log.c line=255 column=13
l
og_child_errfn))
907         != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS) || : true=0, false=0
|
|
908        ((status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_procattr_error_check_set : enter=0, leave=0

apr_procattr_error_check_set : /usr/include/apr-1/apr_thread_proc.h line=546 column=27
a
pr_procattr_error_check_set(procattr : server/log.c line=895 column=21
p
rocattr, 1)) != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS)) {
909        char buf[120];
910        /* Something bad happened, give up and go away. */
911        ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
912                     "piped_log_spawn: unable to setup child process '%s': %s",
913                     pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>program : include/http_log.h line=289 column=11
p
rogram, apr_strerror : enter=0, leave=0

apr_strerror : /usr/include/apr-1/apr_errno.h line=52 column=21
a
pr_strerror(status : server/log.c line=897 column=18
s
tatus, buf : server/log.c line=909 column=14
b
uf, sizeof(buf)));
914    }
915    else {
916        char **args;
917        const char *pname;
918        apr_file_t *outfile, *errfile;
919
920        if : true=0, false=0
i
f ((status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_file_open_stdout : enter=0, leave=0

apr_file_open_stdout : /usr/include/apr-1/apr_file_io.h line=332 column=27
a
pr_file_open_stdout(&outfile : server/log.c line=918 column=21
o
utfile, pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
)) == : true=0, false=0
=
= APR_SUCCESS)
921            status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_procattr_child_out_set : enter=0, leave=0

apr_procattr_child_out_set : /usr/include/apr-1/apr_thread_proc.h line=449 column=27
a
pr_procattr_child_out_set(procattr : server/log.c line=895 column=21
p
rocattr, outfile : server/log.c line=918 column=21
o
utfile, NULL);
922        if : true=0, false=0
i
f ((status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_file_open_stderr : enter=0, leave=0

apr_file_open_stderr : /usr/include/apr-1/apr_file_io.h line=322 column=27
a
pr_file_open_stderr(&errfile : server/log.c line=918 column=31
e
rrfile, pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
)) == : true=0, false=0
=
= APR_SUCCESS)
923            status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_procattr_child_err_set : enter=0, leave=0

apr_procattr_child_err_set : /usr/include/apr-1/apr_thread_proc.h line=466 column=27
a
pr_procattr_child_err_set(procattr : server/log.c line=895 column=21
p
rocattr, errfile : server/log.c line=918 column=31
e
rrfile, NULL);
924
925        apr_tokenize_to_argv : enter=0, leave=0

apr_tokenize_to_argv : /usr/include/apr-1/apr_strings.h line=214 column=27
a
pr_tokenize_to_argv(pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>program : include/http_log.h line=289 column=11
p
rogram, &args : server/log.c line=916 column=16
a
rgs, pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
);
926        pname : server/log.c line=917 column=21
p
name = : pass=0
=
 apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
args : server/log.c line=916 column=16
a
rgs[] : enter=0, leave=0
[
0]);
927        procnew : server/log.c line=896 column=17
p
rocnew = : pass=0
=
 apr_pcalloc(pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
, sizeof(apr_proc_t));
928        status : server/log.c line=897 column=18
s
tatus = : pass=0
=
 apr_proc_create : enter=0, leave=0

apr_proc_create : /usr/include/apr-1/apr_thread_proc.h line=608 column=27
a
pr_proc_create(procnew : server/log.c line=896 column=17
p
rocnew, pname : server/log.c line=917 column=21
p
name, (const char * const *) args : server/log.c line=916 column=16
a
rgs,
929                                 NULL, procattr : server/log.c line=895 column=21
p
rocattr, pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
);
930
931        if : true=0, false=0
i
f (status : server/log.c line=897 column=18
s
tatus == : true=0, false=0
=
= APR_SUCCESS) {
932            pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>pid : include/http_log.h line=291 column=17
p
id = : enter=0, leave=0
=
 procnew : server/log.c line=896 column=17
p
rocnew;
933            /* procnew->in was dup2'd from ap_piped_log_write_fd(pl);
934             * since the original fd is still valid, close the copy to
935             * avoid a leak. */
936            apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(procnew : server/log.c line=896 column=17
p
rocnew-> : enter=0, leave=0
-
>in : /usr/include/apr-1/apr_thread_proc.h line=137 column=17 in);
937            procnew : server/log.c line=896 column=17
p
rocnew-> : enter=0, leave=0
-
>in : /usr/include/apr-1/apr_thread_proc.h line=137 column=17 i= : enter=0, leave=0
=
 NULL;
938            apr_proc_other_child_register : enter=0, leave=0

apr_proc_other_child_register : /usr/include/apr-1/apr_thread_proc.h line=705 column=19
a
pr_proc_other_child_register(procnew : server/log.c line=896 column=17
p
rocnew, piped_log_maintenance : server/log.c line=890 column=13
p
iped_log_maintenance, pl : server/log.c line=893 column=48
p
l,
939                                          ap_piped_log_write_fd(pl : server/log.c line=893 column=48
p
l), pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
);
940            close_handle_in_child : enter=0, leave=0

close_handle_in_child : server/log.c line=174 column=13
c
lose_handle_in_child(pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
, ap_piped_log_read_fd(pl : server/log.c line=893 column=48
p
l));
941        }
942        else {
943            char buf[120];
944            /* Something bad happened, give up and go away. */
945            ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
946                         "unable to start piped log program '%s': %s",
947                         pl : server/log.c line=893 column=48
p
l-> : enter=0, leave=0
-
>program : include/http_log.h line=289 column=11
p
rogram, apr_strerror : enter=0, leave=0

apr_strerror : /usr/include/apr-1/apr_errno.h line=52 column=21
a
pr_strerror(status : server/log.c line=897 column=18
s
tatus, buf : server/log.c line=943 column=18
b
uf, sizeof(buf)));
948        }
949    }
950
951    return : pass=0
r
eturn status : server/log.c line=897 column=18
s
tatus;
952}
953
954
955static void piped_log_maintenance : call=0
p
iped_log_maintenance(int reason, void *data, apr_wait_t status)
956{
957    piped_log *pl = data : server/log.c line=955 column=53
d
ata;
958    apr_status_t stats;
959    int mpm_state;
960
961    switch : pass=0
s
witch (reason : server/log.c line=955 column=39
r
eason) {
962    case : true=0, false=0
c
ase APR_OC_REASON_DEATH:
963    case : true=0, false=0
c
ase APR_OC_REASON_LOST:
964        pl : server/log.c line=957 column=16
p
l-> : enter=0, leave=0
-
>pid : include/http_log.h line=291 column=17
p
id = : enter=0, leave=0
=
 NULL; /* in case we don't get it going again, this
965                         * tells other logic not to try to kill it
966                         */
967        apr_proc_other_child_unregister : enter=0, leave=0

apr_proc_other_child_unregister : /usr/include/apr-1/apr_thread_proc.h line=721 column=19
a
pr_proc_other_child_unregister(pl : server/log.c line=957 column=16
p
l);
968        stats : server/log.c line=958 column=18
s
tats = : pass=0
=
 ap_mpm_query : enter=0, leave=0

ap_mpm_query : include/ap_mpm.h line=161 column=26
a
p_mpm_query(AP_MPMQ_MPM_STATE, &mpm_state : server/log.c line=959 column=9
m
pm_state);
969        if : true=0, false=0
i
f (stats : server/log.c line=958 column=18
s
tats != : true=0, false=0
!
= APR_SUCCESS) {
970            ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
971                         "can't query MPM state; not restarting "
972                         "piped log program '%s'",
973                         pl : server/log.c line=957 column=16
p
l-> : enter=0, leave=0
-
>program : include/http_log.h line=289 column=11
p
rogram);
974        }
975        else if : true=0, false=0
i
f (mpm_state : server/log.c line=959 column=9
m
pm_state != : true=0, false=0
!
= AP_MPMQ_STOPPING) {
976            ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
977                         "piped log program '%s' failed unexpectedly",
978                         pl : server/log.c line=957 column=16
p
l-> : enter=0, leave=0
-
>program : include/http_log.h line=289 column=11
p
rogram);
979            if : true=0, false=0
i
f ((stats : server/log.c line=958 column=18
s
tats = : pass=0
=
 piped_log_spawn : enter=0, leave=0

piped_log_spawn : server/log.c line=893 column=21
p
iped_log_spawn(pl : server/log.c line=957 column=16
p
l)) != : true=0, false=0
!
= APR_SUCCESS) {
980                /* what can we do?  This could be the error log we're having
981                 * problems opening up... */
982                char buf[120];
983                ap_log_error : enter=0, leave=0

ap_log_error : server/log.c line=708 column=18
a
p_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
984                             "piped_log_maintenance: unable to respawn '%s': %s",
985                             pl : server/log.c line=957 column=16
p
l-> : enter=0, leave=0
-
>program : include/http_log.h line=289 column=11
p
rogram, apr_strerror : enter=0, leave=0

apr_strerror : /usr/include/apr-1/apr_errno.h line=52 column=21
a
pr_strerror(stats : server/log.c line=958 column=18
s
tats, buf : server/log.c line=982 column=22
b
uf, sizeof(buf)));
986            }
987        }
988        break : pass=0
b
reak;
989
990    case : true=0, false=0
c
ase APR_OC_REASON_UNWRITABLE:
991        /* We should not kill off the pipe here, since it may only be full.
992         * If it really is locked, we should kill it off manually. */
993    break : pass=0
b
reak;
994
995    case : true=0, false=0
c
ase APR_OC_REASON_RESTART:
996        if : true=0, false=0
i
f (pl : server/log.c line=957 column=16
p
l-> : enter=0, leave=0
-
>pid : include/http_log.h line=291 column=17
p
id != : true=0, false=0
!
= NULL) {
997            apr_proc_kill : enter=0, leave=0

apr_proc_kill : /usr/include/apr-1/apr_thread_proc.h line=770 column=27
a
pr_proc_kill(pl : server/log.c line=957 column=16
p
l-> : enter=0, leave=0
-
>pid : include/http_log.h line=291 column=17
p
id, SIGTERM);
998            pl : server/log.c line=957 column=16
p
l-> : enter=0, leave=0
-
>pid : include/http_log.h line=291 column=17
p
id = : enter=0, leave=0
=
 NULL;
999        }
1000        break : pass=0
b
reak;
1001
1002    case : true=0, false=0
c
ase APR_OC_REASON_UNREGISTER:
1003        break : pass=0
b
reak;
1004    }
1005}
1006
1007
1008static apr_status_t piped_log_cleanup_for_exec : call=0
p
iped_log_cleanup_for_exec(void *data)
1009{
1010    piped_log *pl = data : server/log.c line=1008 column=54
d
ata;
1011
1012    apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(ap_piped_log_read_fd(pl : server/log.c line=1010 column=16
p
l));
1013    apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(ap_piped_log_write_fd(pl : server/log.c line=1010 column=16
p
l));
1014    return : pass=0
r
eturn APR_SUCCESS;
1015}
1016
1017
1018static apr_status_t piped_log_cleanup : call=0
p
iped_log_cleanup(void *data)
1019{
1020    piped_log *pl = data : server/log.c line=1018 column=45
d
ata;
1021
1022    if : true=0, false=0
i
f (pl : server/log.c line=1020 column=16
p
l-> : enter=0, leave=0
-
>pid : include/http_log.h line=291 column=17
p
id != : true=0, false=0
!
= NULL) {
1023        apr_proc_kill : enter=0, leave=0

apr_proc_kill : /usr/include/apr-1/apr_thread_proc.h line=770 column=27
a
pr_proc_kill(pl : server/log.c line=1020 column=16
p
l-> : enter=0, leave=0
-
>pid : include/http_log.h line=291 column=17
p
id, SIGTERM);
1024    }
1025    return : pass=0
r
eturn piped_log_cleanup_for_exec : enter=0, leave=0

piped_log_cleanup_for_exec : server/log.c line=1008 column=21
p
iped_log_cleanup_for_exec(data : server/log.c line=1018 column=45
d
ata);
1026}
1027
1028
1029AP_DECLARE(piped_log *) ap_open_piped_log_ex : call=0
a
p_open_piped_log_ex(apr_pool_t *p,
1030                                             const char *program,
1031                                             apr_cmdtype_e cmdtype)
1032{
1033    piped_log *pl;
1034
1035    pl : server/log.c line=1033 column=16
p
= : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : server/log.c line=1029 column=58
p
, sizeof (*pl));
1036    pl : server/log.c line=1033 column=16
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
 = : enter=0, leave=0
=
 p : server/log.c line=1029 column=58
p
;
1037    pl : server/log.c line=1033 column=16
p
l-> : enter=0, leave=0
-
>program : include/http_log.h line=289 column=11
p
rogram = : 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(p : server/log.c line=1029 column=58
p
program : server/log.c line=1030 column=58
p
rogram);
1038    pl : server/log.c line=1033 column=16
p
l-> : enter=0, leave=0
-
>pid : include/http_log.h line=291 column=17
p
id = : enter=0, leave=0
=
 NULL;
1039    pl : server/log.c line=1033 column=16
p
l-> : enter=0, leave=0
-
>cmdtype : include/http_log.h line=293 column=19
c
mdtype = : enter=0, leave=0
=
 cmdtype : server/log.c line=1031 column=60
c
mdtype;
1040    if : true=0, false=0
i
f (apr_file_pipe_create : enter=0, leave=0

apr_file_pipe_create : /usr/include/apr-1/apr_file_io.h line=647 column=27
a
pr_file_pipe_create(&ap_piped_log_read_fd(pl : server/log.c line=1033 column=16
p
l),
1041                             &ap_piped_log_write_fd(pl : server/log.c line=1033 column=16
p
l), p : server/log.c line=1029 column=58
p
!= : true=0, false=0
!
= APR_SUCCESS) {
1042        return : pass=0
r
eturn NULL;
1043    }
1044    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/log.c line=1029 column=58
p
pl : server/log.c line=1033 column=16
p
l, piped_log_cleanup : server/log.c line=1018 column=21
p
iped_log_cleanup,
1045                              piped_log_cleanup_for_exec : server/log.c line=1008 column=21
p
iped_log_cleanup_for_exec);
1046    if : true=0, false=0
i
f (piped_log_spawn : enter=0, leave=0

piped_log_spawn : server/log.c line=893 column=21
p
iped_log_spawn(pl : server/log.c line=1033 column=16
p
l) != : true=0, false=0
!
= APR_SUCCESS) {
1047        apr_pool_cleanup_kill : enter=0, leave=0

apr_pool_cleanup_kill : /usr/include/apr-1/apr_pools.h line=638 column=19
a
pr_pool_cleanup_kill(p : server/log.c line=1029 column=58
p
pl : server/log.c line=1033 column=16
p
l, piped_log_cleanup : server/log.c line=1018 column=21
p
iped_log_cleanup);
1048        apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(ap_piped_log_read_fd(pl : server/log.c line=1033 column=16
p
l));
1049        apr_file_close : enter=0, leave=0

apr_file_close : /usr/include/apr-1/apr_file_io.h line=243 column=27
a
pr_file_close(ap_piped_log_write_fd(pl : server/log.c line=1033 column=16
p
l));
1050        return : pass=0
r
eturn NULL;
1051    }
1052    return : pass=0
r
eturn pl : server/log.c line=1033 column=16
p
l;
1053}
1054
1055#else /* !AP_HAVE_RELIABLE_PIPED_LOGS */
1056
1057static apr_status_t piped_log_cleanup(void *data)
1058{
1059    piped_log *pl = data;
1060
1061    apr_file_close(ap_piped_log_write_fd(pl));
1062    return APR_SUCCESS;
1063}
1064
1065AP_DECLARE(piped_log *) ap_open_piped_log_ex(apr_pool_t *p,
1066                                             const char *program,
1067                                             apr_cmdtype_e cmdtype)
1068{
1069    piped_log *pl;
1070    apr_file_t *dummy = NULL;
1071    int rc;
1072
1073    rc = log_child(p, program, &dummy, cmdtype, 0);
1074    if (rc != APR_SUCCESS) {
1075        ap_log_error(APLOG_MARK, APLOG_STARTUP, rc, NULL,
1076                     "Couldn't start piped log process");
1077        return NULL;
1078    }
1079
1080    pl = apr_palloc(p, sizeof (*pl));
1081    pl->p = p;
1082    ap_piped_log_read_fd(pl) = NULL;
1083    ap_piped_log_write_fd(pl) = dummy;
1084    apr_pool_cleanup_register(p, pl, piped_log_cleanup, piped_log_cleanup);
1085
1086    return pl;
1087}
1088
1089#endif
1090
1091AP_DECLARE(piped_log *) ap_open_piped_log : call=0
a
p_open_piped_log(apr_pool_t *p,
1092                                          const char *program)
1093{
1094    apr_cmdtype_e cmdtype = APR_SHELLCMD_ENV : /usr/include/apr-1/apr_thread_proc.h line=50 column=5 APR_SHELLCMD_ENV;
1095
1096    /* In 2.4 favor PROGRAM_ENV, accept "||prog" syntax for compatibility
1097     * and "|$cmd" to override the default.
1098     * Any 2.2 backport would continue to favor SHELLCMD_ENV so there 
1099     * accept "||prog" to override, and "|$cmd" to ease conversion.
1100     */
1101    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
program : server/log.c line=1092 column=55
p
rogram == : true=0, false=0
=
= '|') {
1102        cmdtype : server/log.c line=1094 column=19
c
mdtype = : pass=0
=
 APR_PROGRAM_ENV : /usr/include/apr-1/apr_thread_proc.h line=48 column=5 APR_PROGRAM_ENV;
1103        ++ : pass=0
+
+program : server/log.c line=1092 column=55
p
rogram;
1104    }
1105    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
program : server/log.c line=1092 column=55
p
rogram == : true=0, false=0
=
= '$')
1106        ++ : pass=0
+
+program : server/log.c line=1092 column=55
p
rogram;
1107
1108    return : pass=0
r
eturn ap_open_piped_log_ex : enter=0, leave=0

ap_open_piped_log_ex : server/log.c line=1029 column=25
a
p_open_piped_log_ex(p : server/log.c line=1091 column=55
p
program : server/log.c line=1092 column=55
p
rogram, cmdtype : server/log.c line=1094 column=19
c
mdtype);
1109}
1110
1111AP_DECLARE(void) ap_close_piped_log : call=0
a
p_close_piped_log(piped_log *pl)
1112{
1113    apr_pool_cleanup_run : enter=0, leave=0

apr_pool_cleanup_run : /usr/include/apr-1/apr_pools.h line=670 column=27
a
pr_pool_cleanup_run(pl : server/log.c line=1111 column=48
p
l-> : enter=0, leave=0
-
>p : include/http_log.h line=282 column=17
p
pl : server/log.c line=1111 column=48
p
l, piped_log_cleanup : server/log.c line=1018 column=21
p
iped_log_cleanup);
1114}
1115
1116AP_IMPLEMENT_HOOK_VOID(error_log,
1117                       (const char *file, int line, int level,
1118                        apr_status_t status, const server_rec *s,
1119                        const request_rec *r, apr_pool_t *pool,
1120                        const char *errstr), (file : server/log.c line=1117 column=37
f
ile, line : server/log.c line=1117 column=47
l
ine, level : server/log.c line=1117 column=57
l
evel,
1121                        status : server/log.c line=1118 column=38
s
tatus, s : server/log.c line=1118 column=64
s
r : server/log.c line=1119 column=44
r
pool : server/log.c line=1119 column=59
p
ool, errstr : server/log.c line=1120 column=37
e
rrstr))
1122
1123[EOF]


Generated by expcov