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

 Index  Statistics  Last 
Directory./server
Filenameprotocol.c
ModifiedFri May 22 01:47:38 2015

Pass Half Fail Excluded Total
Function
0
0.00%
37
100.00%
0
0.00%
37
100%
Expressions
0
0.00%
920
100.00%
0
0.00%
920
100%
Conditions
0
0.00%
0
0.00%
186
100.00%
0
0.00%
186
100%
MC/DC
0
0.00%
70
100.00%
0
0.00%
70
100%
Branches

if
0
0.00%
0
0.00%
120
100.00%
0
0.00%
120
100%
for
0
0.00%
0
0.00%
6
100.00%
0
0.00%
6
100%
while
0
0.00%
0
0.00%
9
100.00%
0
0.00%
9
100%
case
0
0.00%
0
0.00%
0
0.00%
0
0.00%
0
100%

1/* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements.  See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License.  You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 * protocol.c --- routines which directly communicate with the client.
19 *
20 * Code originally by Rob McCool; much redone by Robert S. Thau
21 * and the Apache Software Foundation.
22 */
23
24#include "apr.h"
25#include "apr_strings.h"
26#include "apr_buckets.h"
27#include "apr_lib.h"
28#include "apr_signal.h"
29#include "apr_strmatch.h"
30
31#define APR_WANT_STDIO          /* for sscanf */
32#define APR_WANT_STRFUNC
33#define APR_WANT_MEMFUNC
34#include "apr_want.h"
35
36#define CORE_PRIVATE
37#include "util_filter.h"
38#include "ap_config.h"
39#include "httpd.h"
40#include "http_config.h"
41#include "http_core.h"
42#include "http_protocol.h"
43#include "http_main.h"
44#include "http_request.h"
45#include "http_vhost.h"
46#include "http_log.h"           /* For errors detected in basic auth common
47                                 * support code... */
48#include "mod_core.h"
49#include "util_charset.h"
50#include "util_ebcdic.h"
51#include "scoreboard.h"
52
53#if APR_HAVE_STDARG_H
54#include <stdarg.h>
55#endif
56#if APR_HAVE_UNISTD_H
57#include <unistd.h>
58#endif
59
60
61APR_HOOK_STRUCT(
62    APR_HOOK_LINK(post_read_request)
63    APR_HOOK_LINK(log_transaction)
64    APR_HOOK_LINK(http_scheme)
65    APR_HOOK_LINK(default_port)
66)
67
68AP_DECLARE_DATA ap_filter_rec_t *ap_old_write_func = NULL;
69
70
71/* Patterns to match in ap_make_content_type() */
72static const char *needcset[] = {
73    "text/plain",
74    "text/html",
75    NULL
76};
77static const apr_strmatch_pattern **needcset_patterns;
78static const apr_strmatch_pattern *charset_pattern;
79
80AP_DECLARE(void) ap_setup_make_content_type : call=0
a
p_setup_make_content_type(apr_pool_t *pool)
81{
82    int i;
83    for : true=0, false=0
f
or (i : server/protocol.c line=82 column=9
i
 = : pass=0
=
 0; needcset : server/protocol.c line=72 column=20
n
eedcset[] : enter=0, leave=0
[
i : server/protocol.c line=82 column=9
i
]; i : server/protocol.c line=82 column=9
i
++ : pass=0
+
+) {
84        continue : pass=0
c
ontinue;
85    }
86    needcset_patterns : server/protocol.c line=77 column=37
n
eedcset_patterns = : pass=0
=
 (const apr_strmatch_pattern **)
87        apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(pool : server/protocol.c line=80 column=57
p
ool, (i : server/protocol.c line=82 column=9
i
 + : pass=0
+
 1) * : pass=0
*
 sizeof(apr_strmatch_pattern *));
88    for : true=0, false=0
f
or (i : server/protocol.c line=82 column=9
i
 = : pass=0
=
 0; needcset : server/protocol.c line=72 column=20
n
eedcset[] : enter=0, leave=0
[
i : server/protocol.c line=82 column=9
i
]; i : server/protocol.c line=82 column=9
i
++ : pass=0
+
+) {
89        needcset_patterns : server/protocol.c line=77 column=37
n
eedcset_patterns[i : server/protocol.c line=82 column=9
i
= : enter=0, leave=0
=
 apr_strmatch_precompile : enter=0, leave=0

apr_strmatch_precompile : /usr/include/apr-1/apr_strmatch.h line=74 column=43
a
pr_strmatch_precompile(pool : server/protocol.c line=80 column=57
p
ool, needcset : server/protocol.c line=72 column=20
n
eedcset[] : enter=0, leave=0
[
i : server/protocol.c line=82 column=9
i
], 0);
90    }
91    needcset_patterns : server/protocol.c line=77 column=37
n
eedcset_patterns[i : server/protocol.c line=82 column=9
i
= : enter=0, leave=0
=
 NULL;
92    charset_pattern : server/protocol.c line=78 column=36
c
harset_pattern = : pass=0
=
 apr_strmatch_precompile : enter=0, leave=0

apr_strmatch_precompile : /usr/include/apr-1/apr_strmatch.h line=74 column=43
a
pr_strmatch_precompile(pool : server/protocol.c line=80 column=57
p
ool, "charset=", 0);
93}
94
95/*
96 * Builds the content-type that should be sent to the client from the
97 * content-type specified.  The following rules are followed:
98 *    - if type is NULL, type is set to ap_default_type(r)
99 *    - if charset adding is disabled, stop processing and return type.
100 *    - then, if there are no parameters on type, add the default charset
101 *    - return type
102 */
103AP_DECLARE(const char *)ap_make_content_type : call=0
a
p_make_content_type(request_rec *r, const char *type)
104{
105    const apr_strmatch_pattern **pcset;
106    core_dir_config *conf =
107        (core_dir_config *)ap_get_module_config(r : server/protocol.c line=103 column=59
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config,
108                                                &core_module : include/http_core.h line=345 column=31
c
ore_module);
109    core_request_config *request_conf;
110    apr_size_t type_len;
111
112    if : true=0, false=0
i
f (! : true=0, false=0
!
type : server/protocol.c line=103 column=74
t
ype) {
113        type : server/protocol.c line=103 column=74
t
ype = : pass=0
=
 ap_default_type : enter=0, leave=0

ap_default_type : include/http_core.h line=166 column=26
a
p_default_type(r : server/protocol.c line=103 column=59
r
);
114    }
115
116    if : true=0, false=0
i
f (conf : server/protocol.c line=106 column=22
c
onf-> : enter=0, leave=0
-
>add_default_charset : include/http_core.h line=519 column=14
a
dd_default_charset != : true=0, false=0
!
= ADD_DEFAULT_CHARSET_ON) {
117        return : pass=0
r
eturn type : server/protocol.c line=103 column=74
t
ype;
118    }
119
120    request_conf : server/protocol.c line=109 column=26
r
equest_conf = : pass=0
=
121        ap_get_module_config(r : server/protocol.c line=103 column=59
r
-> : enter=0, leave=0
-
>request_config : include/httpd.h line=979 column=30
r
equest_config, &core_module : include/http_core.h line=345 column=31
c
ore_module);
122    if : true=0, false=0
i
f (request_conf : server/protocol.c line=109 column=26
r
equest_conf-> : enter=0, leave=0
-
>suppress_charset : include/http_core.h line=380 column=9
s
uppress_charset) {
123        return : pass=0
r
eturn type : server/protocol.c line=103 column=74
t
ype;
124    }
125
126    type_len : server/protocol.c line=110 column=16
t
ype_len = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(type : server/protocol.c line=103 column=74
t
ype);
127
128    if : true=0, false=0
i
f (apr_strmatch(charset_pattern : server/protocol.c line=78 column=36
c
harset_pattern, type : server/protocol.c line=103 column=74
t
ype, type_len : server/protocol.c line=110 column=16
t
ype_len) != : true=0, false=0
!
= NULL) {
129        /* already has parameter, do nothing */
130        /* XXX we don't check the validity */
131        ;
132    }
133    else {
134        /* see if it makes sense to add the charset. At present,
135         * we only add it if the Content-type is one of needcset[]
136         */
137        for : true=0, false=0
f
or (pcset : server/protocol.c line=105 column=34
p
cset = : pass=0
=
 needcset_patterns : server/protocol.c line=77 column=37
n
eedcset_patterns; * dereference : enter=0, leave=0
*
pcset : server/protocol.c line=105 column=34
p
cset ; pcset : server/protocol.c line=105 column=34
p
cset++ : pass=0
+
+) {
138            if : true=0, false=0
i
f (apr_strmatch(* dereference : enter=0, leave=0
*
pcset : server/protocol.c line=105 column=34
p
cset, type : server/protocol.c line=103 column=74
t
ype, type_len : server/protocol.c line=110 column=16
t
ype_len) != : true=0, false=0
!
= NULL) {
139                struct iovec concat[3];
140                concat : server/protocol.c line=139 column=30
c
oncat[] : enter=0, leave=0
[
0].iov_base : /usr/include/bits/uio.h line=46 column=11 iov_base = : pass=0
=
 (void *)type : server/protocol.c line=103 column=74
t
ype;
141                concat : server/protocol.c line=139 column=30
c
oncat[] : enter=0, leave=0
[
0].iov_len : /usr/include/bits/uio.h line=47 column=12 iov_len = : pass=0
=
 type_len : server/protocol.c line=110 column=16
t
ype_len;
142                concat : server/protocol.c line=139 column=30
c
oncat[] : enter=0, leave=0
[
1].iov_base : /usr/include/bits/uio.h line=46 column=11 iov_base = : pass=0
=
 (void *)"; charset=";
143                concat : server/protocol.c line=139 column=30
c
oncat[] : enter=0, leave=0
[
1].iov_len : /usr/include/bits/uio.h line=47 column=12 iov_len = : pass=0
=
 sizeof("; charset=") - : pass=0
-
 1;
144                concat : server/protocol.c line=139 column=30
c
oncat[] : enter=0, leave=0
[
2].iov_base : /usr/include/bits/uio.h line=46 column=11 iov_base = : pass=0
=
 (void *)(conf : server/protocol.c line=106 column=22
c
onf-> : enter=0, leave=0
-
>add_default_charset_name : include/http_core.h line=520 column=17
a
dd_default_charset_name);
145                concat : server/protocol.c line=139 column=30
c
oncat[] : enter=0, leave=0
[
2].iov_len : /usr/include/bits/uio.h line=47 column=12 iov_len = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(conf : server/protocol.c line=106 column=22
c
onf-> : enter=0, leave=0
-
>add_default_charset_name : include/http_core.h line=520 column=17
a
dd_default_charset_name);
146                type : server/protocol.c line=103 column=74
t
ype = : pass=0
=
 apr_pstrcatv : enter=0, leave=0

apr_pstrcatv : /usr/include/apr-1/apr_strings.h line=149 column=21
a
pr_pstrcatv(r : server/protocol.c line=103 column=59
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, concat : server/protocol.c line=139 column=30
c
oncat, 3, NULL);
147                break : pass=0
b
reak;
148            }
149        }
150    }
151
152    return : pass=0
r
eturn type : server/protocol.c line=103 column=74
t
ype;
153}
154
155AP_DECLARE(void) ap_set_content_length : call=0
a
p_set_content_length(request_rec *r, apr_off_t clength)
156{
157    r : server/protocol.c line=155 column=53
r
-> : enter=0, leave=0
-
>clength : include/httpd.h line=873 column=15
c
length = : enter=0, leave=0
=
 clength : server/protocol.c line=155 column=66
c
length;
158    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/protocol.c line=155 column=53
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, "Content-Length",
159                   apr_off_t_toa : enter=0, leave=0

apr_off_t_toa : /usr/include/apr-1/apr_strings.h line=299 column=21
a
pr_off_t_toa(r : server/protocol.c line=155 column=53
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, clength : server/protocol.c line=155 column=66
c
length));
160}
161
162/*
163 * Return the latest rational time from a request/mtime (modification time)
164 * pair.  We return the mtime unless it's in the future, in which case we
165 * return the current time.  We use the request time as a reference in order
166 * to limit the number of calls to time().  We don't check for futurosity
167 * unless the mtime is at least as new as the reference.
168 */
169AP_DECLARE(apr_time_t) ap_rationalize_mtime : call=0
a
p_rationalize_mtime(request_rec *r, apr_time_t mtime)
170{
171    apr_time_t now;
172
173    /* For all static responses, it's almost certain that the file was
174     * last modified before the beginning of the request.  So there's
175     * no reason to call time(NULL) again.  But if the response has been
176     * created on demand, then it might be newer than the time the request
177     * started.  In this event we really have to call time(NULL) again
178     * so that we can give the clients the most accurate Last-Modified.  If we
179     * were given a time in the future, we return the current time - the
180     * Last-Modified can't be in the future.
181     */
182    now : server/protocol.c line=171 column=16
n
ow = : pass=0
=
 (mtime : server/protocol.c line=169 column=72
m
time < : true=0, false=0
<
 r : server/protocol.c line=169 column=58
r
-> : enter=0, leave=0
-
>request_time : include/httpd.h line=817 column=16
r
equest_time) conditional operator : true=0, false=0
?
 r : server/protocol.c line=169 column=58
r
-> : enter=0, leave=0
-
>request_time : include/httpd.h line=817 column=16
r
equest_time : 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();
183    return : pass=0
r
eturn (mtime : server/protocol.c line=169 column=72
m
time > : true=0, false=0
>
 now : server/protocol.c line=171 column=16
n
ow) conditional operator : true=0, false=0
?
 now : server/protocol.c line=171 column=16
n
ow : mtime : server/protocol.c line=169 column=72
m
time;
184}
185
186/* Min # of bytes to allocate when reading a request line */
187#define MIN_LINE_ALLOC 80
188
189/* Get a line of protocol input, including any continuation lines
190 * caused by MIME folding (or broken clients) if fold != 0, and place it
191 * in the buffer s, of size n bytes, without the ending newline.
192 *
193 * If s is NULL, ap_rgetline_core will allocate necessary memory from r->pool.
194 *
195 * Returns APR_SUCCESS if there are no problems and sets *read to be
196 * the full length of s.
197 *
198 * APR_ENOSPC is returned if there is not enough buffer space.
199 * Other errors may be returned on other errors.
200 *
201 * The LF is *not* returned in the buffer.  Therefore, a *read of 0
202 * indicates that an empty line was read.
203 *
204 * Notes: Because the buffer uses 1 char for NUL, the most we can return is
205 *        (n - 1) actual characters.
206 *
207 *        If no LF is detected on the last line due to a dropped connection
208 *        or a full buffer, that's considered an error.
209 */
210AP_DECLARE(apr_status_t) ap_rgetline_core : call=0
a
p_rgetline_core(char **s, apr_size_t n,
211                                          apr_size_t *read, request_rec *r,
212                                          int fold, apr_bucket_brigade *bb)
213{
214    apr_status_t rv;
215    apr_bucket *e;
216    apr_size_t bytes_handled = 0, current_alloc = 0;
217    char *pos, *last_char = * dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
;
218    int do_alloc = (* dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
 == : true=0, false=0
=
= NULL), saw_eos = 0;
219
220    /*
221     * Initialize last_char as otherwise a random value will be compared
222     * against APR_ASCII_LF at the end of the loop if bb only contains
223     * zero-length buckets.
224     */
225    if : true=0, false=0
i
f (last_char : server/protocol.c line=217 column=17
l
ast_char) {
226        *last_char : server/protocol.c line=217 column=17
l
ast_char = : enter=0, leave=0
=
 '\0';
227    }
228
229    for (;;) {
230        apr_brigade_cleanup : enter=0, leave=0

apr_brigade_cleanup : /usr/include/apr-1/apr_buckets.h line=679 column=27
a
pr_brigade_cleanup(bb : server/protocol.c line=212 column=73
b
b);
231        rv : server/protocol.c line=214 column=18
r
= : pass=0
=
 ap_get_brigade : enter=0, leave=0

ap_get_brigade : include/util_filter.h line=298 column=26
a
p_get_brigade(r : server/protocol.c line=211 column=74
r
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=992 column=25
i
nput_filters, bb : server/protocol.c line=212 column=73
b
b, AP_MODE_GETLINE : include/util_filter.h line=57 column=5
A
P_MODE_GETLINE,
232                            APR_BLOCK_READ : /usr/include/apr-1/apr_buckets.h line=58 column=5 APR_BLOCK_READ, 0);
233        if : true=0, false=0
i
f (rv : server/protocol.c line=214 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
234            return : pass=0
r
eturn rv : server/protocol.c line=214 column=18
r
v;
235        }
236
237        /* Something horribly wrong happened.  Someone didn't block! */
238        if : true=0, false=0
i
f (APR_BRIGADE_EMPTY(bb : server/protocol.c line=212 column=73
b
b)) {
239            return : pass=0
r
eturn APR_EGENERAL;
240        }
241
242        for : true=0, false=0
f
or (e : server/protocol.c line=215 column=17
e
 = : pass=0
=
 APR_BRIGADE_FIRST(bb : server/protocol.c line=212 column=73
b
b);
243             e : server/protocol.c line=215 column=17
e
 != : true=0, false=0
!
= APR_BRIGADE_SENTINEL(bb : server/protocol.c line=212 column=73
b
b);
244             e : server/protocol.c line=215 column=17
e
 = : pass=0
=
 APR_BUCKET_NEXT(e : server/protocol.c line=215 column=17
e
))
245        {
246            const char *str;
247            apr_size_t len;
248
249            /* If we see an EOS, don't bother doing anything more. */
250            if : true=0, false=0
i
f (APR_BUCKET_IS_EOS(e : server/protocol.c line=215 column=17
e
)) {
251                saw_eos : server/protocol.c line=218 column=34
s
aw_eos = : pass=0
=
 1;
252                break : pass=0
b
reak;
253            }
254
255            rv : server/protocol.c line=214 column=18
r
= : pass=0
=
 apr_bucket_read(e : server/protocol.c line=215 column=17
e
, &str : server/protocol.c line=246 column=25
s
tr, &len : server/protocol.c line=247 column=24
l
en, APR_BLOCK_READ : /usr/include/apr-1/apr_buckets.h line=58 column=5 APR_BLOCK_READ);
256            if : true=0, false=0
i
f (rv : server/protocol.c line=214 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
257                return : pass=0
r
eturn rv : server/protocol.c line=214 column=18
r
v;
258            }
259
260            if : true=0, false=0
i
f (len : server/protocol.c line=247 column=24
l
en == : true=0, false=0
=
= 0) {
261                /* no use attempting a zero-byte alloc (hurts when
262                 * using --with-efence --enable-pool-debug) or
263                 * doing any of the other logic either
264                 */
265                continue : pass=0
c
ontinue;
266            }
267
268            /* Would this overrun our buffer?  If so, we'll die. */
269            if : true=0, false=0
i
f (n : server/protocol.c line=210 column=64
n
 < : true=0, false=0
<
 bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled + : pass=0
+
 len : server/protocol.c line=247 column=24
l
en) {
270                *read : server/protocol.c line=211 column=55
r
ead = : enter=0, leave=0
=
 bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled;
271                if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
) {
272                    /* ensure this string is NUL terminated */
273                    if : true=0, false=0
i
f (bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled > : true=0, false=0
>
 0) {
274                        (* dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
)[bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled- : pass=0
-
1] = : enter=0, leave=0
=
 '\0';
275                    }
276                    else {
277                        (* dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
)[0] = : enter=0, leave=0
=
 '\0';
278                    }
279                }
280                return : pass=0
r
eturn APR_ENOSPC;
281            }
282
283            /* Do we have to handle the allocation ourselves? */
284            if : true=0, false=0
i
f (do_alloc : server/protocol.c line=218 column=9
d
o_alloc) {
285                /* We'll assume the common case where one bucket is enough. */
286                if : true=0, false=0
i
f (! : true=0, false=0
!
* dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
) {
287                    current_alloc : server/protocol.c line=216 column=35
c
urrent_alloc = : pass=0
=
 len : server/protocol.c line=247 column=24
l
en;
288                    if : true=0, false=0
i
f (current_alloc : server/protocol.c line=216 column=35
c
urrent_alloc < : true=0, false=0
<
 MIN_LINE_ALLOC) {
289                        current_alloc : server/protocol.c line=216 column=35
c
urrent_alloc = : pass=0
=
 MIN_LINE_ALLOC;
290                    }
291                    *s : server/protocol.c line=210 column=50
s
 = : enter=0, leave=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : server/protocol.c line=211 column=74
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, current_alloc : server/protocol.c line=216 column=35
c
urrent_alloc);
292                }
293                else if : true=0, false=0
i
f (bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled + : pass=0
+
 len : server/protocol.c line=247 column=24
l
en > : true=0, false=0
>
 current_alloc : server/protocol.c line=216 column=35
c
urrent_alloc) {
294                    /* Increase the buffer size */
295                    apr_size_t new_size = current_alloc : server/protocol.c line=216 column=35
c
urrent_alloc * : pass=0
*
 2;
296                    char *new_buffer;
297
298                    if : true=0, false=0
i
f (bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled + : pass=0
+
 len : server/protocol.c line=247 column=24
l
en > : true=0, false=0
>
 new_size : server/protocol.c line=295 column=32
n
ew_size) {
299                        new_size : server/protocol.c line=295 column=32
n
ew_size = : pass=0
=
 (bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled + : pass=0
+
 len : server/protocol.c line=247 column=24
l
en) * : pass=0
*
 2;
300                    }
301
302                    new_buffer : server/protocol.c line=296 column=27
n
ew_buffer = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : server/protocol.c line=211 column=74
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, new_size : server/protocol.c line=295 column=32
n
ew_size);
303
304                    /* Copy what we already had. */
305                    memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(new_buffer : server/protocol.c line=296 column=27
n
ew_buffer, * dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled);
306                    current_alloc : server/protocol.c line=216 column=35
c
urrent_alloc = : pass=0
=
 new_size : server/protocol.c line=295 column=32
n
ew_size;
307                    *s : server/protocol.c line=210 column=50
s
 = : enter=0, leave=0
=
 new_buffer : server/protocol.c line=296 column=27
n
ew_buffer;
308                }
309            }
310
311            /* Just copy the rest of the data to the end of the old buffer. */
312            pos : server/protocol.c line=217 column=11
p
os = : pass=0
=
 * dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
 + : pass=0
+
 bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled;
313            memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(pos : server/protocol.c line=217 column=11
p
os, str : server/protocol.c line=246 column=25
s
tr, len : server/protocol.c line=247 column=24
l
en);
314            last_char : server/protocol.c line=217 column=17
l
ast_char = : pass=0
=
 pos : server/protocol.c line=217 column=11
p
os + : pass=0
+
 len : server/protocol.c line=247 column=24
l
en - : pass=0
-
 1;
315
316            /* We've now processed that new data - update accordingly. */
317            bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled += : pass=0
+
len : server/protocol.c line=247 column=24
l
en;
318        }
319
320        /* If we got a full line of input, stop reading */
321        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

last_char : server/protocol.c line=217 column=17
lTF
ast_char && : true=0, false=0
&
& (* dereference : enter=0, leave=0
*
last_char : server/protocol.c line=217 column=17
l
ast_char == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_ASCII_LF)) {
322            break : pass=0
b
reak;
323        }
324    }
325
326    /* Now NUL-terminate the string at the end of the line;
327     * if the last-but-one character is a CR, terminate there */
328    if : true=0, false=0
i
f (last_char : server/protocol.c line=217 column=17
l
ast_char > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 * dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
 && : true=0, false=0
&
last_char : server/protocol.c line=217 column=17
l
ast_char[] : enter=0, leave=0
[
-1] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_ASCII_CR) {
329        last_char : server/protocol.c line=217 column=17
l
ast_char-- : pass=0
-
-;
330    }
331    *last_char : server/protocol.c line=217 column=17
l
ast_char = : enter=0, leave=0
=
 '\0';
332    bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled = : pass=0
=
 last_char : server/protocol.c line=217 column=17
l
ast_char - : pass=0
-
 * dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
;
333
334    /* If we're folding, we have more work to do.
335     *
336     * Note that if an EOS was seen, we know we can't have another line.
337     */
338    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

fold : server/protocol.c line=212 column=47
fTF
old && : true=0, false=0
&
MC/DC independently affect : true=0, false=0

bytes_handled : server/protocol.c line=216 column=16
bTF
ytes_handled && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
saw_eos : server/protocol.c line=218 column=34
s
aw_eos) {
339        for (;;) {
340            const char *str;
341            apr_size_t len;
342            char c;
343
344            /* Clear the temp brigade for this filter read. */
345            apr_brigade_cleanup : enter=0, leave=0

apr_brigade_cleanup : /usr/include/apr-1/apr_buckets.h line=679 column=27
a
pr_brigade_cleanup(bb : server/protocol.c line=212 column=73
b
b);
346
347            /* We only care about the first byte. */
348            rv : server/protocol.c line=214 column=18
r
= : pass=0
=
 ap_get_brigade : enter=0, leave=0

ap_get_brigade : include/util_filter.h line=298 column=26
a
p_get_brigade(r : server/protocol.c line=211 column=74
r
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=992 column=25
i
nput_filters, bb : server/protocol.c line=212 column=73
b
b, AP_MODE_SPECULATIVE : include/util_filter.h line=62 column=5
A
P_MODE_SPECULATIVE,
349                                APR_BLOCK_READ : /usr/include/apr-1/apr_buckets.h line=58 column=5 APR_BLOCK_READ, 1);
350            if : true=0, false=0
i
f (rv : server/protocol.c line=214 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
351                return : pass=0
r
eturn rv : server/protocol.c line=214 column=18
r
v;
352            }
353
354            if : true=0, false=0
i
f (APR_BRIGADE_EMPTY(bb : server/protocol.c line=212 column=73
b
b)) {
355                break : pass=0
b
reak;
356            }
357
358            e : server/protocol.c line=215 column=17
e
 = : pass=0
=
 APR_BRIGADE_FIRST(bb : server/protocol.c line=212 column=73
b
b);
359
360            /* If we see an EOS, don't bother doing anything more. */
361            if : true=0, false=0
i
f (APR_BUCKET_IS_EOS(e : server/protocol.c line=215 column=17
e
)) {
362                break : pass=0
b
reak;
363            }
364
365            rv : server/protocol.c line=214 column=18
r
= : pass=0
=
 apr_bucket_read(e : server/protocol.c line=215 column=17
e
, &str : server/protocol.c line=340 column=25
s
tr, &len : server/protocol.c line=341 column=24
l
en, APR_BLOCK_READ : /usr/include/apr-1/apr_buckets.h line=58 column=5 APR_BLOCK_READ);
366            if : true=0, false=0
i
f (rv : server/protocol.c line=214 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
367                apr_brigade_cleanup : enter=0, leave=0

apr_brigade_cleanup : /usr/include/apr-1/apr_buckets.h line=679 column=27
a
pr_brigade_cleanup(bb : server/protocol.c line=212 column=73
b
b);
368                return : pass=0
r
eturn rv : server/protocol.c line=214 column=18
r
v;
369            }
370
371            /* Found one, so call ourselves again to get the next line.
372             *
373             * FIXME: If the folding line is completely blank, should we
374             * stop folding?  Does that require also looking at the next
375             * char?
376             */
377            /* When we call destroy, the buckets are deleted, so save that
378             * one character we need.  This simplifies our execution paths
379             * at the cost of one character read.
380             */
381            c : server/protocol.c line=342 column=18
c
 = : pass=0
=
 * dereference : enter=0, leave=0
*
str : server/protocol.c line=340 column=25
s
tr;
382            if : true=0, false=0
i
f (c : server/protocol.c line=342 column=18
c
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_ASCII_BLANK || : true=0, false=0
|
c : server/protocol.c line=342 column=18
c
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_ASCII_TAB) {
383                /* Do we have enough space? We may be full now. */
384                if : true=0, false=0
i
f (bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled >= : true=0, false=0
>
n : server/protocol.c line=210 column=64
n
) {
385                    *read : server/protocol.c line=211 column=55
r
ead = : enter=0, leave=0
=
 n : server/protocol.c line=210 column=64
n
;
386                    /* ensure this string is terminated */
387                    (* dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
)[n : server/protocol.c line=210 column=64
n
- : pass=0
-
1] = : enter=0, leave=0
=
 '\0';
388                    return : pass=0
r
eturn APR_ENOSPC;
389                }
390                else {
391                    apr_size_t next_size, next_len;
392                    char *tmp;
393
394                    /* If we're doing the allocations for them, we have to
395                     * give ourselves a NULL and copy it on return.
396                     */
397                    if : true=0, false=0
i
f (do_alloc : server/protocol.c line=218 column=9
d
o_alloc) {
398                        tmp : server/protocol.c line=392 column=27
t
mp = : pass=0
=
 NULL;
399                    } else {
400                        /* We're null terminated. */
401                        tmp : server/protocol.c line=392 column=27
t
mp = : pass=0
=
 last_char : server/protocol.c line=217 column=17
l
ast_char;
402                    }
403
404                    next_size : server/protocol.c line=391 column=32
n
ext_size = : pass=0
=
 n : server/protocol.c line=210 column=64
n
 - : pass=0
-
 bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled;
405
406                    rv : server/protocol.c line=214 column=18
r
= : pass=0
=
 ap_rgetline_core : enter=0, leave=0

ap_rgetline_core : server/protocol.c line=210 column=26
a
p_rgetline_core(&tmp : server/protocol.c line=392 column=27
t
mp, next_size : server/protocol.c line=391 column=32
n
ext_size,
407                                          &next_len : server/protocol.c line=391 column=43
n
ext_len, r : server/protocol.c line=211 column=74
r
, 0, bb : server/protocol.c line=212 column=73
b
b);
408                    if : true=0, false=0
i
f (rv : server/protocol.c line=214 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
409                        return : pass=0
r
eturn rv : server/protocol.c line=214 column=18
r
v;
410                    }
411
412                    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

do_alloc : server/protocol.c line=218 column=9
dTF
o_alloc && : true=0, false=0
&
next_len : server/protocol.c line=391 column=43
n
ext_len > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 0) {
413                        char *new_buffer;
414                        apr_size_t new_size = bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled + : pass=0
+
 next_len : server/protocol.c line=391 column=43
n
ext_len + : pass=0
+
 1;
415
416                        /* we need to alloc an extra byte for a null */
417                        new_buffer : server/protocol.c line=413 column=31
n
ew_buffer = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : server/protocol.c line=211 column=74
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, new_size : server/protocol.c line=414 column=36
n
ew_size);
418
419                        /* Copy what we already had. */
420                        memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(new_buffer : server/protocol.c line=413 column=31
n
ew_buffer, * dereference : enter=0, leave=0
*
s : server/protocol.c line=210 column=50
s
bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled);
421
422                        /* copy the new line, including the trailing null */
423                        memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(new_buffer : server/protocol.c line=413 column=31
n
ew_buffer + : pass=0
+
 bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled, tmp : server/protocol.c line=392 column=27
t
mp, next_len : server/protocol.c line=391 column=43
n
ext_len + : pass=0
+
 1);
424                        *s : server/protocol.c line=210 column=50
s
 = : enter=0, leave=0
=
 new_buffer : server/protocol.c line=413 column=31
n
ew_buffer;
425                    }
426
427                    last_char : server/protocol.c line=217 column=17
l
ast_char += : pass=0
+
next_len : server/protocol.c line=391 column=43
n
ext_len;
428                    bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled += : pass=0
+
next_len : server/protocol.c line=391 column=43
n
ext_len;
429                }
430            }
431            else { /* next character is not tab or space */
432                break : pass=0
b
reak;
433            }
434        }
435    }
436
437    *read : server/protocol.c line=211 column=55
r
ead = : enter=0, leave=0
=
 bytes_handled : server/protocol.c line=216 column=16
b
ytes_handled;
438    return : pass=0
r
eturn APR_SUCCESS;
439}
440
441#if APR_CHARSET_EBCDIC
442AP_DECLARE(apr_status_t) ap_rgetline(char **s, apr_size_t n,
443                                     apr_size_t *read, request_rec *r,
444                                     int fold, apr_bucket_brigade *bb)
445{
446    /* on ASCII boxes, ap_rgetline is a macro which simply invokes
447     * ap_rgetline_core with the same parms
448     *
449     * on EBCDIC boxes, each complete http protocol input line needs to be
450     * translated into the code page used by the compiler.  Since
451     * ap_rgetline_core uses recursion, we do the translation in a wrapper
452     * function to insure that each input character gets translated only once.
453     */
454    apr_status_t rv;
455
456    rv = ap_rgetline_core(s, n, read, r, fold, bb);
457    if (rv == APR_SUCCESS) {
458        ap_xlate_proto_from_ascii(*s, *read);
459    }
460    return rv;
461}
462#endif
463
464AP_DECLARE(int) ap_getline : call=0
a
p_getline(char *s, int n, request_rec *r, int fold)
465{
466    char *tmp_s = s : server/protocol.c line=464 column=34
s
;
467    apr_status_t rv;
468    apr_size_t len;
469    apr_bucket_brigade *tmp_bb;
470
471    tmp_bb : server/protocol.c line=469 column=25
t
mp_bb = : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=464 column=57
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : server/protocol.c line=464 column=57
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
472    rv : server/protocol.c line=467 column=18
r
= : pass=0
=
 ap_rgetline(&tmp_s : server/protocol.c line=466 column=11
t
mp_s, n : server/protocol.c line=464 column=41
n
, &len : server/protocol.c line=468 column=16
l
en, r : server/protocol.c line=464 column=57
r
fold : server/protocol.c line=464 column=64
f
old, tmp_bb : server/protocol.c line=469 column=25
t
mp_bb);
473    apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=469 column=25
t
mp_bb);
474
475    /* Map the out-of-space condition to the old API. */
476    if : true=0, false=0
i
f (rv : server/protocol.c line=467 column=18
r
== : true=0, false=0
=
= APR_ENOSPC) {
477        return : pass=0
r
eturn n : server/protocol.c line=464 column=41
n
;
478    }
479
480    /* Anything else is just bad. */
481    if : true=0, false=0
i
f (rv : server/protocol.c line=467 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
482        return : pass=0
r
eturn -1;
483    }
484
485    return : pass=0
r
eturn (int)len : server/protocol.c line=468 column=16
l
en;
486}
487
488/* parse_uri: break apart the uri
489 * Side Effects:
490 * - sets r->args to rest after '?' (or NULL if no '?')
491 * - sets r->uri to request uri (without r->args part)
492 * - sets r->hostname (if not set already) from request (scheme://host:port)
493 */
494AP_CORE_DECLARE(void) ap_parse_uri : call=0
a
p_parse_uri(request_rec *r, const char *uri)
495{
496    int status = HTTP_OK;
497
498    r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>unparsed_uri : include/httpd.h line=944 column=11
u
nparsed_uri = : 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(r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, uri : server/protocol.c line=494 column=64
u
ri);
499
500    /* http://issues.apache.org/bugzilla/show_bug.cgi?id=31875
501     * http://issues.apache.org/bugzilla/show_bug.cgi?id=28450
502     *
503     * This is not in fact a URI, it's a path.  That matters in the
504     * case of a leading double-slash.  We need to resolve the issue
505     * by normalising that out before treating it as a URI.
506     */
507    while : true=0, false=0
w
hile ((uri : server/protocol.c line=494 column=64
u
ri[] : enter=0, leave=0
[
0] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '/') && : true=0, false=0
&
& (uri : server/protocol.c line=494 column=64
u
ri[] : enter=0, leave=0
[
1] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '/')) {
508        ++ : pass=0
+
+uri : server/protocol.c line=494 column=64
u
ri ;
509    }
510    if : true=0, false=0
i
f (r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>method_number : include/httpd.h line=831 column=9
m
ethod_number == : true=0, false=0
=
= M_CONNECT) {
511        status : server/protocol.c line=496 column=9
s
tatus = : pass=0
=
 apr_uri_parse_hostinfo : enter=0, leave=0

apr_uri_parse_hostinfo : /usr/include/apr-1/apr_uri.h line=169 column=27
a
pr_uri_parse_hostinfo(r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, uri : server/protocol.c line=494 column=64
u
ri, &r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri);
512    }
513    else {
514        /* Simple syntax Errors in URLs are trapped by
515         * parse_uri_components().
516         */
517        status : server/protocol.c line=496 column=9
s
tatus = : pass=0
=
 apr_uri_parse : enter=0, leave=0

apr_uri_parse : /usr/include/apr-1/apr_uri.h line=159 column=27
a
pr_uri_parse(r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, uri : server/protocol.c line=494 column=64
u
ri, &r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri);
518    }
519
520    if : true=0, false=0
i
f (status : server/protocol.c line=496 column=9
s
tatus == : true=0, false=0
=
= APR_SUCCESS) {
521        /* if it has a scheme we may need to do absoluteURI vhost stuff */
522        if : true=0, false=0
i
f (r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uriMC/DC independently affect : true=0, false=0
.TF
scheme : /usr/include/apr-1/apr_uri.h line=87 column=11 scheme
523            && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri.scheme : /usr/include/apr-1/apr_uri.h line=87 column=11 scheme, ap_http_scheme(r : server/protocol.c line=494 column=49
r
))) {
524            r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>hostname : include/httpd.h line=814 column=17
h
ostname = : enter=0, leave=0
=
 r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri.hostname : /usr/include/apr-1/apr_uri.h line=95 column=11 hostname;
525        }
526        else if : true=0, false=0
i
f (r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>method_number : include/httpd.h line=831 column=9
m
ethod_number == : true=0, false=0
=
= M_CONNECT) {
527            r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>hostname : include/httpd.h line=814 column=17
h
ostname = : enter=0, leave=0
=
 r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri.hostname : /usr/include/apr-1/apr_uri.h line=95 column=11 hostname;
528        }
529
530        r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs = : enter=0, leave=0
=
 r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri.query : /usr/include/apr-1/apr_uri.h line=101 column=11 query;
531        r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri = : enter=0, leave=0
=
 r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri.path : /usr/include/apr-1/apr_uri.h line=99 column=11 path conditional operator : true=0, false=0
?
 r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>parsed_uri : include/httpd.h line=959 column=15
p
arsed_uri.path : /usr/include/apr-1/apr_uri.h line=99 column=11 path
532                 : apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, "/");
533
534#if defined(OS2) || defined(WIN32)
535        /* Handle path translations for OS/2 and plug security hole.
536         * This will prevent "http://www.wherever.com/..\..\/" from
537         * returning a directory for the root drive.
538         */
539        {
540            char *x;
541
542            for (x = r->uri; (x = strchr(x, '\\')) != NULL; )
543                *x = '/';
544        }
545#endif /* OS2 || WIN32 */
546    }
547    else {
548        r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs = : enter=0, leave=0
=
 NULL;
549        r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>hostname : include/httpd.h line=814 column=17
h
ostname = : enter=0, leave=0
=
 NULL;
550        r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_BAD_REQUEST;             /* set error status */
551        r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri = : 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(r : server/protocol.c line=494 column=49
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, uri : server/protocol.c line=494 column=64
u
ri);
552    }
553}
554
555static int read_request_line : call=0
r
ead_request_line(request_rec *r, apr_bucket_brigade *bb)
556{
557    const char *ll;
558    const char *uri;
559    const char *pro;
560
561#if 0
562    conn_rec *conn = r->connection;
563#endif
564    int major = 1, minor = 0;   /* Assume HTTP/1.0 if non-"HTTP" protocol */
565    char http[5];
566    apr_size_t len;
567    int num_blank_lines = 0;
568    int max_blank_lines = r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>limit_req_fields : include/httpd.h line=1239 column=9
l
imit_req_fields;
569
570    if : true=0, false=0
i
f (max_blank_lines : server/protocol.c line=568 column=9
m
ax_blank_lines <= : true=0, false=0
<
= 0) {
571        max_blank_lines : server/protocol.c line=568 column=9
m
ax_blank_lines = : pass=0
=
 DEFAULT_LIMIT_REQUEST_FIELDS;
572    }
573
574    /* Read past empty lines until we get a real request line,
575     * a read error, the connection closes (EOF), or we timeout.
576     *
577     * We skip empty lines because browsers have to tack a CRLF on to the end
578     * of POSTs to support old CERN webservers.  But note that we may not
579     * have flushed any previous response completely to the client yet.
580     * We delay the flush as long as possible so that we can improve
581     * performance for clients that are pipelining requests.  If a request
582     * is pipelined then we won't block during the (implicit) read() below.
583     * If the requests aren't pipelined, then the client is still waiting
584     * for the final buffer flush from us, and we will block in the implicit
585     * read().  B_SAFEREAD ensures that the BUFF layer flushes if it will
586     * have to block during a read.
587     */
588
589    do {
590        apr_status_t rv;
591
592        /* insure ap_rgetline allocates memory each time thru the loop
593         * if there are empty lines
594         */
595        r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>the_request : include/httpd.h line=799 column=11
t
he_request = : enter=0, leave=0
=
 NULL;
596        rv : server/protocol.c line=590 column=22
r
= : pass=0
=
 ap_rgetline(&(r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>the_request : include/httpd.h line=799 column=11
t
he_request), (apr_size_t)(r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>limit_req_line : include/httpd.h line=1235 column=9
l
imit_req_line + : pass=0
+
 2),
597                         &len : server/protocol.c line=566 column=16
l
en, r : server/protocol.c line=555 column=43
r
, 0, bb : server/protocol.c line=555 column=66
b
b);
598
599        if : true=0, false=0
i
f (rv : server/protocol.c line=590 column=22
r
!= : true=0, false=0
!
= APR_SUCCESS) {
600            r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>request_time : include/httpd.h line=817 column=16
r
equest_time = : enter=0, leave=0
=
 apr_time_now : enter=0, leave=0

apr_time_now : /usr/include/apr-1/apr_time.h line=85 column=25
a
pr_time_now();
601
602            /* ap_rgetline returns APR_ENOSPC if it fills up the
603             * buffer before finding the end-of-line.  This is only going to
604             * happen if it exceeds the configured limit for a request-line.
605             */
606            if : true=0, false=0
i
f (rv : server/protocol.c line=590 column=22
r
== : true=0, false=0
=
= APR_ENOSPC) {
607                r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus    = : enter=0, leave=0
=
 HTTP_REQUEST_URI_TOO_LARGE;
608            }
609            else if : true=0, false=0
i
f (APR_STATUS_IS_TIMEUP(rv : server/protocol.c line=590 column=22
r
v)) {
610                r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_REQUEST_TIME_OUT;
611            }
612            r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>proto_num : include/httpd.h line=812 column=9
p
roto_num = : enter=0, leave=0
=
 HTTP_VERSION(1,0);
613            r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>protocol : include/httpd.h line=810 column=11
p
rotocol  = : enter=0, leave=0
=
 apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, "HTTP/1.0");
614            return : pass=0
r
eturn 0;
615        }
616    } while : true=0, false=0
w
hile ((len : server/protocol.c line=566 column=16
l
en <= : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
= 0) && : true=0, false=0
&
& (++ : pass=0
+
+num_blank_lines : server/protocol.c line=567 column=9
n
um_blank_lines < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 max_blank_lines : server/protocol.c line=568 column=9
m
ax_blank_lines));
617
618    /* we've probably got something to do, ignore graceful restart requests */
619
620    r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>request_time : include/httpd.h line=817 column=16
r
equest_time = : enter=0, leave=0
=
 apr_time_now : enter=0, leave=0

apr_time_now : /usr/include/apr-1/apr_time.h line=85 column=25
a
pr_time_now();
621    ll : server/protocol.c line=557 column=17
l
= : pass=0
=
 r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>the_request : include/httpd.h line=799 column=11
t
he_request;
622    r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>method : include/httpd.h line=829 column=17
m
ethod = : enter=0, leave=0
=
 ap_getword_white : enter=0, leave=0

ap_getword_white : include/httpd.h line=1318 column=20
a
p_getword_white(r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &ll : server/protocol.c line=557 column=17
l
l);
623
624#if 0
625/* XXX If we want to keep track of the Method, the protocol module should do
626 * it.  That support isn't in the scoreboard yet.  Hopefully next week
627 * sometime.   rbb */
628    ap_update_connection_status(AP_CHILD_THREAD_FROM_ID(conn->id), "Method",
629                                r->method);
630#endif
631
632    uri : server/protocol.c line=558 column=17
u
ri = : pass=0
=
 ap_getword_white : enter=0, leave=0

ap_getword_white : include/httpd.h line=1318 column=20
a
p_getword_white(r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &ll : server/protocol.c line=557 column=17
l
l);
633
634    /* Provide quick information about the request method as soon as known */
635
636    r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>method_number : include/httpd.h line=831 column=9
m
ethod_number = : enter=0, leave=0
=
 ap_method_number_of : enter=0, leave=0

ap_method_number_of : include/http_protocol.h line=569 column=17
a
p_method_number_of(r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>method : include/httpd.h line=829 column=17
m
ethod);
637    if : true=0, false=0
i
f (r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>method_number : include/httpd.h line=831 column=9
m
ethod_number == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= M_GET && : true=0, false=0
&
r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>method : include/httpd.h line=829 column=17
m
ethod[] : enter=0, leave=0
[
0] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 'H') {
638        r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>header_only : include/httpd.h line=808 column=9
h
eader_only = : enter=0, leave=0
=
 1;
639    }
640
641    ap_parse_uri : enter=0, leave=0

ap_parse_uri : server/protocol.c line=494 column=23
a
p_parse_uri(r : server/protocol.c line=555 column=43
r
uri : server/protocol.c line=558 column=17
u
ri);
642
643    if : true=0, false=0
i
f (ll : server/protocol.c line=557 column=17
l
l[] : enter=0, leave=0
[
0]) {
644        r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>assbackwards : include/httpd.h line=801 column=9
a
ssbackwards = : enter=0, leave=0
=
 0;
645        pro : server/protocol.c line=559 column=17
p
ro = : pass=0
=
 ll : server/protocol.c line=557 column=17
l
l;
646        len : server/protocol.c line=566 column=16
l
en = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(ll : server/protocol.c line=557 column=17
l
l);
647    } else {
648        r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>assbackwards : include/httpd.h line=801 column=9
a
ssbackwards = : enter=0, leave=0
=
 1;
649        pro : server/protocol.c line=559 column=17
p
ro = : pass=0
=
 "HTTP/0.9";
650        len : server/protocol.c line=566 column=16
l
en = : pass=0
=
 8;
651    }
652    r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>protocol : include/httpd.h line=810 column=11
p
rotocol = : enter=0, leave=0
=
 apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, pro : server/protocol.c line=559 column=17
p
ro, len : server/protocol.c line=566 column=16
l
en);
653
654    /* XXX ap_update_connection_status(conn->id, "Protocol", r->protocol); */
655
656    /* Avoid sscanf in the common case */
657    if : true=0, false=0
i
f (len : server/protocol.c line=566 column=16
l
en == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 8
658        && : true=0, false=0
&
pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
0] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 'H' && : true=0, false=0
&
pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
1] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 'T' && : true=0, false=0
&
pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
2] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 'T' && : true=0, false=0
&
pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
3] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 'P'
659        && : true=0, false=0
&
pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
4] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '/' && : true=0, false=0
&
& apr_isdigit(pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
5]) && : true=0, false=0
&
pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
6] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '.'
660        && : true=0, false=0
&
& apr_isdigit(pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
7])) {
661        r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>proto_num : include/httpd.h line=812 column=9
p
roto_num = : enter=0, leave=0
=
 HTTP_VERSION(pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
5] - : pass=0
-
 '0', pro : server/protocol.c line=559 column=17
p
ro[] : enter=0, leave=0
[
7] - : pass=0
-
 '0');
662    }
663    else if : true=0, false=0
i
f (3 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
sscanf : enter=0, leave=0

sscanf : /usr/include/stdio.h line=437 column=12
s
scanf(r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>protocol : include/httpd.h line=810 column=11
p
rotocol, "%4s/%u.%u", http : server/protocol.c line=565 column=10
h
ttp, &major : server/protocol.c line=564 column=9
m
ajor, &minor : server/protocol.c line=564 column=20
m
inor)
664             && : true=0, false=0
&
& (strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp("http", http : server/protocol.c line=565 column=10
h
ttp) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 0)
665             && : true=0, false=0
&
& (minor : server/protocol.c line=564 column=20
m
inor < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 HTTP_VERSION(1, 0)) ) /* don't allow HTTP/0.1000 */
666        r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>proto_num : include/httpd.h line=812 column=9
p
roto_num = : enter=0, leave=0
=
 HTTP_VERSION(major : server/protocol.c line=564 column=9
m
ajor, minor : server/protocol.c line=564 column=20
m
inor);
667    else
668        r : server/protocol.c line=555 column=43
r
-> : enter=0, leave=0
-
>proto_num : include/httpd.h line=812 column=9
p
roto_num = : enter=0, leave=0
=
 HTTP_VERSION(1, 0);
669
670    return : pass=0
r
eturn 1;
671}
672
673/* get the length of the field name for logging, but no more than 80 bytes */
674#define LOG_NAME_MAX_LEN 80
675static int field_name_len : call=0
f
ield_name_len(const char *field)
676{
677    const char *end = ap_strchr_c(field : server/protocol.c line=675 column=39
f
ield, ':');
678    if : true=0, false=0
i
f (end : server/protocol.c line=677 column=17
e
nd == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL || : true=0, false=0
|
end : server/protocol.c line=677 column=17
e
nd - : pass=0
-
 field : server/protocol.c line=675 column=39
f
ield > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 LOG_NAME_MAX_LEN)
679        return : pass=0
r
eturn LOG_NAME_MAX_LEN;
680    return : pass=0
r
eturn end : server/protocol.c line=677 column=17
e
nd - : pass=0
-
 field : server/protocol.c line=675 column=39
f
ield;
681}
682
683AP_DECLARE(void) ap_get_mime_headers_core : call=0
a
p_get_mime_headers_core(request_rec *r, apr_bucket_brigade *bb)
684{
685    char *last_field = NULL;
686    apr_size_t last_len = 0;
687    apr_size_t alloc_len = 0;
688    char *field;
689    char *value;
690    apr_size_t len;
691    int fields_read = 0;
692    char *tmp_field;
693
694    /*
695     * Read header lines until we get the empty separator line, a read error,
696     * the connection closes (EOF), reach the server limit, or we timeout.
697     */
698    while : true=0, false=0
w
hile(1) {
699        apr_status_t rv;
700        int folded = 0;
701
702        field : server/protocol.c line=688 column=11
f
ield = : pass=0
=
 NULL;
703        rv : server/protocol.c line=699 column=22
r
= : pass=0
=
 ap_rgetline(&field : server/protocol.c line=688 column=11
f
ield, r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>limit_req_fieldsize : include/httpd.h line=1237 column=9
l
imit_req_fieldsize + : pass=0
+
 2,
704                         &len : server/protocol.c line=690 column=16
l
en, r : server/protocol.c line=683 column=56
r
, 0, bb : server/protocol.c line=683 column=79
b
b);
705
706        if : true=0, false=0
i
f (rv : server/protocol.c line=699 column=22
r
!= : true=0, false=0
!
= APR_SUCCESS) {
707            if : true=0, false=0
i
f (APR_STATUS_IS_TIMEUP(rv : server/protocol.c line=699 column=22
r
v)) {
708                r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_REQUEST_TIME_OUT;
709            }
710            else {
711                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_DEBUG, rv : server/protocol.c line=699 column=22
r
v, r : server/protocol.c line=683 column=56
r
712                              "Failed to read request header line %s", field : server/protocol.c line=688 column=11
f
ield);
713                r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_BAD_REQUEST;
714            }
715
716            /* ap_rgetline returns APR_ENOSPC if it fills up the buffer before
717             * finding the end-of-line.  This is only going to happen if it
718             * exceeds the configured limit for a field size.
719             */
720            if : true=0, false=0
i
f (rv : server/protocol.c line=699 column=22
r
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= APR_ENOSPC && : true=0, false=0
&
MC/DC independently affect : true=0, false=0

field : server/protocol.c line=688 column=11
fTF
ield) {
721                /* insure ap_escape_html will terminate correctly */
722                field : server/protocol.c line=688 column=11
f
ield[len : server/protocol.c line=690 column=16
l
en - : pass=0
-
 1] = : enter=0, leave=0
=
 '\0';
723                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/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "error-notes",
724                               apr_psprintf : enter=0, leave=0

apr_psprintf : /usr/include/apr-1/apr_strings.h line=170 column=28
a
pr_psprintf(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool,
725                                           "Size of a request header field "
726                                           "exceeds server limit.<br />\n"
727                                           "<pre>\n%.*s\n</pre>/n",
728                                           field_name_len : enter=0, leave=0

field_name_len : server/protocol.c line=675 column=12
f
ield_name_len(field : server/protocol.c line=688 column=11
f
ield), 
729                                           ap_escape_html : enter=0, leave=0

ap_escape_html : include/httpd.h line=1512 column=20
a
p_escape_html(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, field : server/protocol.c line=688 column=11
f
ield)));
730                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_INFO, 0, r : server/protocol.c line=683 column=56
r
731                              "Request header exceeds LimitRequestFieldSize: "
732                              "%.*s", field_name_len : enter=0, leave=0

field_name_len : server/protocol.c line=675 column=12
f
ield_name_len(field : server/protocol.c line=688 column=11
f
ield), field : server/protocol.c line=688 column=11
f
ield);
733            }
734            return : pass=0
r
eturn;
735        }
736
737        if : true=0, false=0
i
f (last_field : server/protocol.c line=685 column=11
l
ast_field != : true=0, false=0
!
= NULL) {
738            if : true=0, false=0
i
f ((len : server/protocol.c line=690 column=16
l
en > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 0) && : true=0, false=0
&
& ((* dereference : enter=0, leave=0
*
field : server/protocol.c line=688 column=11
f
ield == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\t') || : true=0, false=0
|
* dereference : enter=0, leave=0
*
field : server/protocol.c line=688 column=11
f
ield == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ' ')) {
739                /* This line is a continuation of the preceding line(s),
740                 * so append it to the line that we've set aside.
741                 * Note: this uses a power-of-two allocator to avoid
742                 * doing O(n) allocs and using O(n^2) space for
743                 * continuations that span many many lines.
744                 */
745                apr_size_t fold_len = last_len : server/protocol.c line=686 column=16
l
ast_len + : pass=0
+
 len : server/protocol.c line=690 column=16
l
en + : pass=0
+
 1; /* trailing null */
746
747                if : true=0, false=0
i
f (fold_len : server/protocol.c line=745 column=28
f
old_len >= : true=0, false=0
>
= (apr_size_t)(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>limit_req_fieldsize : include/httpd.h line=1237 column=9
l
imit_req_fieldsize)) {
748                    r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_BAD_REQUEST;
749                    /* report what we have accumulated so far before the
750                     * overflow (last_field) as the field with the problem
751                     */
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/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "error-notes",
753                                   apr_psprintf : enter=0, leave=0

apr_psprintf : /usr/include/apr-1/apr_strings.h line=170 column=28
a
pr_psprintf(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool,
754                                               "Size of a request header field "
755                                               "after folding "
756                                               "exceeds server limit.<br />\n"
757                                               "<pre>\n%.*s\n</pre>\n",
758                                               field_name_len : enter=0, leave=0

field_name_len : server/protocol.c line=675 column=12
f
ield_name_len(last_field : server/protocol.c line=685 column=11
l
ast_field),
759                                               ap_escape_html : enter=0, leave=0

ap_escape_html : include/httpd.h line=1512 column=20
a
p_escape_html(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, last_field : server/protocol.c line=685 column=11
l
ast_field)));
760                    ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_INFO, 0, r : server/protocol.c line=683 column=56
r
,
761                                  "Request header exceeds LimitRequestFieldSize "
762                                  "after folding: %.*s",
763                                  field_name_len : enter=0, leave=0

field_name_len : server/protocol.c line=675 column=12
f
ield_name_len(last_field : server/protocol.c line=685 column=11
l
ast_field), last_field : server/protocol.c line=685 column=11
l
ast_field);
764                    return : pass=0
r
eturn;
765                }
766
767                if : true=0, false=0
i
f (fold_len : server/protocol.c line=745 column=28
f
old_len > : true=0, false=0
>
 alloc_len : server/protocol.c line=687 column=16
a
lloc_len) {
768                    char *fold_buf;
769                    alloc_len : server/protocol.c line=687 column=16
a
lloc_len += : pass=0
+
alloc_len : server/protocol.c line=687 column=16
a
lloc_len;
770                    if : true=0, false=0
i
f (fold_len : server/protocol.c line=745 column=28
f
old_len > : true=0, false=0
>
 alloc_len : server/protocol.c line=687 column=16
a
lloc_len) {
771                        alloc_len : server/protocol.c line=687 column=16
a
lloc_len = : pass=0
=
 fold_len : server/protocol.c line=745 column=28
f
old_len;
772                    }
773                    fold_buf : server/protocol.c line=768 column=27
f
old_buf = : pass=0
=
 (char *)apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, alloc_len : server/protocol.c line=687 column=16
a
lloc_len);
774                    memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(fold_buf : server/protocol.c line=768 column=27
f
old_buf, last_field : server/protocol.c line=685 column=11
l
ast_field, last_len : server/protocol.c line=686 column=16
l
ast_len);
775                    last_field : server/protocol.c line=685 column=11
l
ast_field = : pass=0
=
 fold_buf : server/protocol.c line=768 column=27
f
old_buf;
776                }
777                memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(last_field : server/protocol.c line=685 column=11
l
ast_field + : pass=0
+
 last_len : server/protocol.c line=686 column=16
l
ast_len, field : server/protocol.c line=688 column=11
f
ield, len : server/protocol.c line=690 column=16
l
en + : pass=0
+
1); /* +1 for nul */
778                last_len : server/protocol.c line=686 column=16
l
ast_len += : pass=0
+
len : server/protocol.c line=690 column=16
l
en;
779                folded : server/protocol.c line=700 column=13
f
olded = : pass=0
=
 1;
780            }
781            else /* not a continuation line */ {
782
783                if : true=0, false=0
i
f (r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erverMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>limit_req_fields : include/httpd.h line=1239 column=9
l
imit_req_fields
784                    && : true=0, false=0
&
& (++ : pass=0
+
+fields_read : server/protocol.c line=691 column=9
f
ields_read > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>limit_req_fields : include/httpd.h line=1239 column=9
l
imit_req_fields)) {
785                    r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_BAD_REQUEST;
786                    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/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "error-notes",
787                                   "The number of request header fields "
788                                   "exceeds this server's limit.");
789                    return : pass=0
r
eturn;
790                }
791
792                if : true=0, false=0
i
f (! : true=0, false=0
!
(value : server/protocol.c line=689 column=11
v
alue = : pass=0
=
 strchr : enter=0, leave=0

strchr : /usr/include/string.h line=235 column=14
s
trchr(last_field : server/protocol.c line=685 column=11
l
ast_field, ':'))) { /* Find ':' or    */
793                    r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_BAD_REQUEST;      /* abort bad request */
794                    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/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "error-notes",
795                                   apr_psprintf : enter=0, leave=0

apr_psprintf : /usr/include/apr-1/apr_strings.h line=170 column=28
a
pr_psprintf(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool,
796                                               "Request header field is "
797                                               "missing ':' separator.<br />\n"
798                                               "<pre>\n%.*s</pre>\n",
799                                               (int)LOG_NAME_MAX_LEN,
800                                               ap_escape_html : enter=0, leave=0

ap_escape_html : include/httpd.h line=1512 column=20
a
p_escape_html(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool,
801                                                              last_field : server/protocol.c line=685 column=11
l
ast_field)));
802                    ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r : server/protocol.c line=683 column=56
r
,
803                                  "Request header field is missing ':' "
804                                  "separator: %.*s", (int)LOG_NAME_MAX_LEN,
805                                  last_field : server/protocol.c line=685 column=11
l
ast_field);
806
807                    return : pass=0
r
eturn;
808                }
809
810                tmp_field : server/protocol.c line=692 column=11
t
mp_field = : pass=0
=
 value : server/protocol.c line=689 column=11
v
alue - : pass=0
-
 1; /* last character of field-name */
811
812                *value : server/protocol.c line=689 column=11
v
alue++ : pass=0
+
= : enter=0, leave=0
=
 '\0'; /* NUL-terminate at colon */
813
814                while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
value : server/protocol.c line=689 column=11
v
alue == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ' ' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
value : server/protocol.c line=689 column=11
v
alue == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\t') {
815                    ++ : pass=0
+
+value : server/protocol.c line=689 column=11
v
alue;            /* Skip to start of value   */
816                }
817
818                /* Strip LWS after field-name: */
819                while : true=0, false=0
w
hile (tmp_field : server/protocol.c line=692 column=11
t
mp_field > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 last_field : server/protocol.c line=685 column=11
l
ast_field
820                       && : true=0, false=0
&
& (* dereference : enter=0, leave=0
*
tmp_field : server/protocol.c line=692 column=11
t
mp_field == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ' ' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
tmp_field : server/protocol.c line=692 column=11
t
mp_field == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\t')) {
821                    *tmp_field : server/protocol.c line=692 column=11
t
mp_field-- : pass=0
-
= : enter=0, leave=0
=
 '\0';
822                }
823
824                /* Strip LWS after field-value: */
825                tmp_field : server/protocol.c line=692 column=11
t
mp_field = : pass=0
=
 last_field : server/protocol.c line=685 column=11
l
ast_field + : pass=0
+
 last_len : server/protocol.c line=686 column=16
l
ast_len - : pass=0
-
 1;
826                while : true=0, false=0
w
hile (tmp_field : server/protocol.c line=692 column=11
t
mp_field > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 value : server/protocol.c line=689 column=11
v
alue
827                       && : true=0, false=0
&
& (* dereference : enter=0, leave=0
*
tmp_field : server/protocol.c line=692 column=11
t
mp_field == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ' ' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
tmp_field : server/protocol.c line=692 column=11
t
mp_field == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\t')) {
828                    *tmp_field : server/protocol.c line=692 column=11
t
mp_field-- : pass=0
-
= : enter=0, leave=0
=
 '\0';
829                }
830
831                apr_table_addn : enter=0, leave=0

apr_table_addn : /usr/include/apr-1/apr_tables.h line=336 column=19
a
pr_table_addn(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, last_field : server/protocol.c line=685 column=11
l
ast_field, value : server/protocol.c line=689 column=11
v
alue);
832
833                /* reset the alloc_len so that we'll allocate a new
834                 * buffer if we have to do any more folding: we can't
835                 * use the previous buffer because its contents are
836                 * now part of r->headers_in
837                 */
838                alloc_len : server/protocol.c line=687 column=16
a
lloc_len = : pass=0
=
 0;
839
840            } /* end if current line is not a continuation starting with tab */
841        }
842
843        /* Found a blank line, stop. */
844        if : true=0, false=0
i
f (len : server/protocol.c line=690 column=16
l
en == : true=0, false=0
=
= 0) {
845            break : pass=0
b
reak;
846        }
847
848        /* Keep track of this line so that we can parse it on
849         * the next loop iteration.  (In the folded case, last_field
850         * has been updated already.)
851         */
852        if : true=0, false=0
i
f (! : true=0, false=0
!
folded : server/protocol.c line=700 column=13
f
olded) {
853            last_field : server/protocol.c line=685 column=11
l
ast_field = : pass=0
=
 field : server/protocol.c line=688 column=11
f
ield;
854            last_len : server/protocol.c line=686 column=16
l
ast_len = : pass=0
=
 len : server/protocol.c line=690 column=16
l
en;
855        }
856    }
857
858    apr_table_compress : enter=0, leave=0

apr_table_compress : /usr/include/apr-1/apr_tables.h line=459 column=19
a
pr_table_compress(r : server/protocol.c line=683 column=56
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, APR_OVERLAP_TABLES_MERGE);
859}
860
861AP_DECLARE(void) ap_get_mime_headers : call=0
a
p_get_mime_headers(request_rec *r)
862{
863    apr_bucket_brigade *tmp_bb;
864    tmp_bb : server/protocol.c line=863 column=25
t
mp_bb = : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=861 column=51
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : server/protocol.c line=861 column=51
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
865    ap_get_mime_headers_core : enter=0, leave=0

ap_get_mime_headers_core : server/protocol.c line=683 column=18
a
p_get_mime_headers_core(r : server/protocol.c line=861 column=51
r
tmp_bb : server/protocol.c line=863 column=25
t
mp_bb);
866    apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=863 column=25
t
mp_bb);
867}
868
869request_rec *ap_read_request : call=0
a
p_read_request(conn_rec *conn)
870{
871    request_rec *r;
872    apr_pool_t *p;
873    const char *expect;
874    int access_status;
875    apr_bucket_brigade *tmp_bb;
876    apr_socket_t *csd;
877    apr_interval_time_t cur_timeout;
878
879    apr_pool_create(&p : server/protocol.c line=872 column=17
p
conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>pool : include/httpd.h line=1047 column=17
p
ool);
880    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(p : server/protocol.c line=872 column=17
p
, "request");
881    r : server/protocol.c line=871 column=18
r
 = : pass=0
=
 apr_pcalloc(p : server/protocol.c line=872 column=17
p
, sizeof(request_rec));
882    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool            = : enter=0, leave=0
=
 p : server/protocol.c line=872 column=17
p
;
883    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection      = : enter=0, leave=0
=
 conn : server/protocol.c line=869 column=40
c
onn;
884    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver          = : enter=0, leave=0
=
 conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>base_server : include/httpd.h line=1049 column=17
b
ase_server;
885
886    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>user : include/httpd.h line=930 column=11
u
ser            = : enter=0, leave=0
=
 NULL;
887    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>ap_auth_type : include/httpd.h line=932 column=11
a
p_auth_type    = : enter=0, leave=0
=
 NULL;
888
889    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>allowed_methods : include/httpd.h line=857 column=23
a
llowed_methods = : enter=0, leave=0
=
 ap_make_method_list : enter=0, leave=0

ap_make_method_list : include/http_protocol.h line=253 column=32
a
p_make_method_list(p : server/protocol.c line=872 column=17
p
, 2);
890
891    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in      = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 25);
892    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>trailers_in : include/httpd.h line=1011 column=18
t
railers_in     = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 5);
893    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env  = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 25);
894    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out     = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 12);
895    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>err_headers_out : include/httpd.h line=906 column=18
e
rr_headers_out = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 5);
896    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>trailers_out : include/httpd.h line=1013 column=18
t
railers_out    = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 5);
897    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes           = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 5);
898
899    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>request_config : include/httpd.h line=979 column=30
r
equest_config  = : enter=0, leave=0
=
 ap_create_request_config : enter=0, leave=0

ap_create_request_config : include/http_config.h line=837 column=36
a
p_create_request_config(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool);
900    /* Must be set before we run create request hook */
901
902    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>proto_output_filters : include/httpd.h line=996 column=25
p
roto_output_filters = : enter=0, leave=0
=
 conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=1099 column=25
o
utput_filters;
903    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters  = : enter=0, leave=0
=
 r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>proto_output_filters : include/httpd.h line=996 column=25
p
roto_output_filters;
904    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>proto_input_filters : include/httpd.h line=999 column=25
p
roto_input_filters = : enter=0, leave=0
=
 conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=1097 column=25
i
nput_filters;
905    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=992 column=25
i
nput_filters   = : enter=0, leave=0
=
 r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>proto_input_filters : include/httpd.h line=999 column=25
p
roto_input_filters;
906    ap_run_create_request : enter=0, leave=0

ap_run_create_request : server/ line=42 column=1
a
p_run_create_request(r : server/protocol.c line=871 column=18
r
);
907    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config  = : enter=0, leave=0
=
 r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>lookup_defaults : include/httpd.h line=1209 column=30
l
ookup_defaults;
908
909    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>sent_bodyct : include/httpd.h line=860 column=15
s
ent_bodyct     = : enter=0, leave=0
=
 0;                      /* bytect isn't for body */
910
911    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>read_length : include/httpd.h line=878 column=15
r
ead_length     = : enter=0, leave=0
=
 0;
912    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>read_body : include/httpd.h line=882 column=9
r
ead_body       = : enter=0, leave=0
=
 REQUEST_NO_BODY;
913
914    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus          = : enter=0, leave=0
=
 HTTP_OK;  /* Until further notice */
915    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>the_request : include/httpd.h line=799 column=11
t
he_request     = : enter=0, leave=0
=
 NULL;
916
917    /* Begin by presuming any module can make its own path_info assumptions,
918     * until some module interjects and changes the value.
919     */
920    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>used_path_info : include/httpd.h line=969 column=9
u
sed_path_info = : enter=0, leave=0
=
 AP_REQ_DEFAULT_PATH_INFO;
921
922    tmp_bb : server/protocol.c line=875 column=25
t
mp_bb = : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
923
924    /* Get the request... */
925    if : true=0, false=0
i
f (! : true=0, false=0
!
read_request_line : enter=0, leave=0

read_request_line : server/protocol.c line=555 column=12
r
ead_request_line(r : server/protocol.c line=871 column=18
r
tmp_bb : server/protocol.c line=875 column=25
t
mp_bb)) {
926        if : true=0, false=0
i
f (r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus == : true=0, false=0
=
= HTTP_REQUEST_URI_TOO_LARGE) {
927            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : server/protocol.c line=871 column=18
r
,
928                          "request failed: URI too long (longer than %d)", r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>limit_req_line : include/httpd.h line=1235 column=9
l
imit_req_line);
929            ap_send_error_response : enter=0, leave=0

ap_send_error_response : include/http_protocol.h line=97 column=18
a
p_send_error_response(r : server/protocol.c line=871 column=18
r
, 0);
930            ap_update_child_status : enter=0, leave=0

ap_update_child_status : include/scoreboard.h line=187 column=17
a
p_update_child_status(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>sbh : include/httpd.h line=1101 column=11
s
bh, SERVER_BUSY_LOG, r : server/protocol.c line=871 column=18
r
);
931            ap_run_log_transaction : enter=0, leave=0

ap_run_log_transaction : server/ line=187 column=1
a
p_run_log_transaction(r : server/protocol.c line=871 column=18
r
);
932            apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=875 column=25
t
mp_bb);
933            return : pass=0
r
eturn r : server/protocol.c line=871 column=18
r
;
934        }
935        else if : true=0, false=0
i
f (r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus == : true=0, false=0
=
= HTTP_REQUEST_TIME_OUT) {
936            ap_update_child_status : enter=0, leave=0

ap_update_child_status : include/scoreboard.h line=187 column=17
a
p_update_child_status(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>sbh : include/httpd.h line=1101 column=11
s
bh, SERVER_BUSY_LOG, r : server/protocol.c line=871 column=18
r
);
937            if : true=0, false=0
i
f (! : true=0, false=0
!
r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>keepalives : include/httpd.h line=1081 column=9
k
eepalives) {
938                ap_run_log_transaction : enter=0, leave=0

ap_run_log_transaction : server/ line=187 column=1
a
p_run_log_transaction(r : server/protocol.c line=871 column=18
r
);
939            }
940            apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=875 column=25
t
mp_bb);
941            return : pass=0
r
eturn r : server/protocol.c line=871 column=18
r
;
942        }
943
944        apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=875 column=25
t
mp_bb);
945        return : pass=0
r
eturn NULL;
946    }
947
948    /* We may have been in keep_alive_timeout mode, so toggle back
949     * to the normal timeout mode as we fetch the header lines,
950     * as necessary.
951     */
952    csd : server/protocol.c line=876 column=19
c
sd = : pass=0
=
 ap_get_module_config(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>conn_config : include/httpd.h line=1092 column=30
c
onn_config, &core_module : include/http_core.h line=345 column=31
c
ore_module);
953    apr_socket_timeout_get : enter=0, leave=0

apr_socket_timeout_get : /usr/include/apr-1/apr_network_io.h line=644 column=27
a
pr_socket_timeout_get(csd : server/protocol.c line=876 column=19
c
sd, &cur_timeout : server/protocol.c line=877 column=25
c
ur_timeout);
954    if : true=0, false=0
i
f (cur_timeout : server/protocol.c line=877 column=25
c
ur_timeout != : true=0, false=0
!
conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>base_server : include/httpd.h line=1049 column=17
b
ase_server-> : enter=0, leave=0
-
>timeout : include/httpd.h line=1216 column=25
t
imeout) {
955        apr_socket_timeout_set : enter=0, leave=0

apr_socket_timeout_set : /usr/include/apr-1/apr_network_io.h line=614 column=27
a
pr_socket_timeout_set(csd : server/protocol.c line=876 column=19
c
sd, conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>base_server : include/httpd.h line=1049 column=17
b
ase_server-> : enter=0, leave=0
-
>timeout : include/httpd.h line=1216 column=25
t
imeout);
956        cur_timeout : server/protocol.c line=877 column=25
c
ur_timeout = : pass=0
=
 conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>base_server : include/httpd.h line=1049 column=17
b
ase_server-> : enter=0, leave=0
-
>timeout : include/httpd.h line=1216 column=25
t
imeout;
957    }
958
959    if : true=0, false=0
i
f (! : true=0, false=0
!
r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>assbackwards : include/httpd.h line=801 column=9
a
ssbackwards) {
960        const char *tenc;
961
962        ap_get_mime_headers_core : enter=0, leave=0

ap_get_mime_headers_core : server/protocol.c line=683 column=18
a
p_get_mime_headers_core(r : server/protocol.c line=871 column=18
r
tmp_bb : server/protocol.c line=875 column=25
t
mp_bb);
963        if : true=0, false=0
i
f (r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus != : true=0, false=0
!
= HTTP_OK) {
964            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : server/protocol.c line=871 column=18
r
,
965                          "request failed: error reading the headers");
966            ap_send_error_response : enter=0, leave=0

ap_send_error_response : include/http_protocol.h line=97 column=18
a
p_send_error_response(r : server/protocol.c line=871 column=18
r
, 0);
967            ap_update_child_status : enter=0, leave=0

ap_update_child_status : include/scoreboard.h line=187 column=17
a
p_update_child_status(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>sbh : include/httpd.h line=1101 column=11
s
bh, SERVER_BUSY_LOG, r : server/protocol.c line=871 column=18
r
);
968            ap_run_log_transaction : enter=0, leave=0

ap_run_log_transaction : server/ line=187 column=1
a
p_run_log_transaction(r : server/protocol.c line=871 column=18
r
);
969            apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=875 column=25
t
mp_bb);
970            return : pass=0
r
eturn r : server/protocol.c line=871 column=18
r
;
971        }
972
973        tenc : server/protocol.c line=960 column=21
t
enc = : pass=0
=
 apr_table_get : enter=0, leave=0

apr_table_get : /usr/include/apr-1/apr_tables.h line=258 column=27
a
pr_table_get(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Transfer-Encoding");
974        if : true=0, false=0
i
f (tenc : server/protocol.c line=960 column=21
t
enc) {
975            /* http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-23
976             * Section 3.3.3.3: "If a Transfer-Encoding header field is
977             * present in a request and the chunked transfer coding is not
978             * the final encoding ...; the server MUST respond with the 400
979             * (Bad Request) status code and then close the connection".
980             */
981            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(tenc : server/protocol.c line=960 column=21
t
enc, "chunked") == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 0 /* fast path */
982                    || : true=0, false=0
|
MC/DC independently affect : true=0, false=0
ap_find_last_token : enter=0, leave=0

ap_find_last_token : include/httpd.h line=1441 column=17
aTF
p_find_last_token(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, tenc : server/protocol.c line=960 column=21
t
enc, "chunked"))) {
983                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_INFO, 0, r : server/protocol.c line=871 column=18
r
,
984                              "client sent unknown Transfer-Encoding "
985                              "(%s): %s", tenc : server/protocol.c line=960 column=21
t
enc, r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri);
986                r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_BAD_REQUEST;
987                conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>keepalive : include/httpd.h line=1074 column=25
k
eepalive = : enter=0, leave=0
=
 AP_CONN_CLOSE : include/httpd.h line=1038 column=5
A
P_CONN_CLOSE;
988                ap_send_error_response : enter=0, leave=0

ap_send_error_response : include/http_protocol.h line=97 column=18
a
p_send_error_response(r : server/protocol.c line=871 column=18
r
, 0);
989                ap_update_child_status : enter=0, leave=0

ap_update_child_status : include/scoreboard.h line=187 column=17
a
p_update_child_status(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>sbh : include/httpd.h line=1101 column=11
s
bh, SERVER_BUSY_LOG, r : server/protocol.c line=871 column=18
r
);
990                ap_run_log_transaction : enter=0, leave=0

ap_run_log_transaction : server/ line=187 column=1
a
p_run_log_transaction(r : server/protocol.c line=871 column=18
r
);
991                apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=875 column=25
t
mp_bb);
992                return : pass=0
r
eturn r : server/protocol.c line=871 column=18
r
;
993            }
994
995            /* http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-23
996             * Section 3.3.3.3: "If a message is received with both a
997             * Transfer-Encoding and a Content-Length header field, the
998             * Transfer-Encoding overrides the Content-Length. ... A sender
999             * MUST remove the received Content-Length field".
1000             */
1001            apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-Length");
1002        }
1003    }
1004    else {
1005        if : true=0, false=0
i
f (r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>header_only : include/httpd.h line=808 column=9
h
eader_only) {
1006            /*
1007             * Client asked for headers only with HTTP/0.9, which doesn't send
1008             * headers! Have to dink things just to make sure the error message
1009             * comes through...
1010             */
1011            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : server/protocol.c line=871 column=18
r
,
1012                          "client sent invalid HTTP/0.9 request: HEAD %s",
1013                          r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri);
1014            r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>header_only : include/httpd.h line=808 column=9
h
eader_only = : enter=0, leave=0
=
 0;
1015            r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_BAD_REQUEST;
1016            ap_send_error_response : enter=0, leave=0

ap_send_error_response : include/http_protocol.h line=97 column=18
a
p_send_error_response(r : server/protocol.c line=871 column=18
r
, 0);
1017            ap_update_child_status : enter=0, leave=0

ap_update_child_status : include/scoreboard.h line=187 column=17
a
p_update_child_status(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>sbh : include/httpd.h line=1101 column=11
s
bh, SERVER_BUSY_LOG, r : server/protocol.c line=871 column=18
r
);
1018            ap_run_log_transaction : enter=0, leave=0

ap_run_log_transaction : server/ line=187 column=1
a
p_run_log_transaction(r : server/protocol.c line=871 column=18
r
);
1019            apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=875 column=25
t
mp_bb);
1020            return : pass=0
r
eturn r : server/protocol.c line=871 column=18
r
;
1021        }
1022    }
1023
1024    apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(tmp_bb : server/protocol.c line=875 column=25
t
mp_bb);
1025
1026    /* update what we think the virtual host is based on the headers we've
1027     * now read. may update status.
1028     */
1029    ap_update_vhost_from_headers : enter=0, leave=0

ap_update_vhost_from_headers : include/http_vhost.h line=99 column=18
a
p_update_vhost_from_headers(r : server/protocol.c line=871 column=18
r
);
1030
1031    /* Toggle to the Host:-based vhost's timeout mode to fetch the
1032     * request body and send the response body, if needed.
1033     */
1034    if : true=0, false=0
i
f (cur_timeout : server/protocol.c line=877 column=25
c
ur_timeout != : true=0, false=0
!
r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>timeout : include/httpd.h line=1216 column=25
t
imeout) {
1035        apr_socket_timeout_set : enter=0, leave=0

apr_socket_timeout_set : /usr/include/apr-1/apr_network_io.h line=614 column=27
a
pr_socket_timeout_set(csd : server/protocol.c line=876 column=19
c
sd, r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>timeout : include/httpd.h line=1216 column=25
t
imeout);
1036        cur_timeout : server/protocol.c line=877 column=25
c
ur_timeout = : pass=0
=
 r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>timeout : include/httpd.h line=1216 column=25
t
imeout;
1037    }
1038
1039    /* we may have switched to another server */
1040    r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config = : enter=0, leave=0
=
 r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>lookup_defaults : include/httpd.h line=1209 column=30
l
ookup_defaults;
1041
1042    if : true=0, false=0
i
f ((! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>hostname : include/httpd.h line=814 column=17
h
ostname && : true=0, false=0
&
& (r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>proto_num : include/httpd.h line=812 column=9
p
roto_num >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
= HTTP_VERSION(1, 1)))
1043        || : true=0, false=0
|
| ((r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>proto_num : include/httpd.h line=812 column=9
p
roto_num == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= HTTP_VERSION(1, 1))
1044            && : true=0, false=0
&
! : true=0, false=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/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Host"))) {
1045        /*
1046         * Client sent us an HTTP/1.1 or later request without telling us the
1047         * hostname, either with a full URL or a Host: header. We therefore
1048         * need to (as per the 1.1 spec) send an error.  As a special case,
1049         * HTTP/1.1 mentions twice (S9, S14.23) that a request MUST contain
1050         * a Host: header, and the server MUST respond with 400 if it doesn't.
1051         */
1052        r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_BAD_REQUEST;
1053        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : server/protocol.c line=871 column=18
r
,
1054                      "client sent HTTP/1.1 request without hostname "
1055                      "(see RFC2616 section 14.23): %s", r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri);
1056    }
1057
1058    /*
1059     * Add the HTTP_IN filter here to ensure that ap_discard_request_body
1060     * called by ap_die and by ap_send_error_response works correctly on
1061     * status codes that do not cause the connection to be dropped and
1062     * in situations where the connection should be kept alive.
1063     */
1064
1065    ap_add_input_filter_handle : enter=0, leave=0

ap_add_input_filter_handle : include/util_filter.h line=412 column=27
a
p_add_input_filter_handle(ap_http_input_filter_handle : modules/http/mod_core.h line=42 column=41 ap_http_input_filter_handle,
1066                               NULL, r : server/protocol.c line=871 column=18
r
r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection);
1067
1068    if : true=0, false=0
i
f (r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus != : true=0, false=0
!
= HTTP_OK) {
1069        ap_send_error_response : enter=0, leave=0

ap_send_error_response : include/http_protocol.h line=97 column=18
a
p_send_error_response(r : server/protocol.c line=871 column=18
r
, 0);
1070        ap_update_child_status : enter=0, leave=0

ap_update_child_status : include/scoreboard.h line=187 column=17
a
p_update_child_status(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>sbh : include/httpd.h line=1101 column=11
s
bh, SERVER_BUSY_LOG, r : server/protocol.c line=871 column=18
r
);
1071        ap_run_log_transaction : enter=0, leave=0

ap_run_log_transaction : server/ line=187 column=1
a
p_run_log_transaction(r : server/protocol.c line=871 column=18
r
);
1072        return : pass=0
r
eturn r : server/protocol.c line=871 column=18
r
;
1073    }
1074
1075    if : true=0, false=0
i
f ((access_status : server/protocol.c line=874 column=9
a
ccess_status = : pass=0
=
 ap_run_post_read_request : enter=0, leave=0

ap_run_post_read_request : server/ line=163 column=1
a
p_run_post_read_request(r : server/protocol.c line=871 column=18
r
))) {
1076        ap_die : enter=0, leave=0

ap_die : include/http_request.h line=250 column=18
a
p_die(access_status : server/protocol.c line=874 column=9
a
ccess_status, r : server/protocol.c line=871 column=18
r
);
1077        ap_update_child_status : enter=0, leave=0

ap_update_child_status : include/scoreboard.h line=187 column=17
a
p_update_child_status(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>sbh : include/httpd.h line=1101 column=11
s
bh, SERVER_BUSY_LOG, r : server/protocol.c line=871 column=18
r
);
1078        ap_run_log_transaction : enter=0, leave=0

ap_run_log_transaction : server/ line=187 column=1
a
p_run_log_transaction(r : server/protocol.c line=871 column=18
r
);
1079        return : pass=0
r
eturn NULL;
1080    }
1081
1082    if : true=0, false=0
i
f (((expect : server/protocol.c line=873 column=17
e
xpect = : pass=0
=
 apr_table_get : enter=0, leave=0

apr_table_get : /usr/include/apr-1/apr_tables.h line=258 column=27
a
pr_table_get(r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Expect")) != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= NULL)
1083        && : true=0, false=0
&
& (expect : server/protocol.c line=873 column=17
e
xpect[] : enter=0, leave=0
[
0] != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\0')) {
1084        /*
1085         * The Expect header field was added to HTTP/1.1 after RFC 2068
1086         * as a means to signal when a 100 response is desired and,
1087         * unfortunately, to signal a poor man's mandatory extension that
1088         * the server must understand or return 417 Expectation Failed.
1089         */
1090        if : true=0, false=0
i
f (strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(expect : server/protocol.c line=873 column=17
e
xpect, "100-continue") == : true=0, false=0
=
= 0) {
1091            r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>expecting_100 : include/httpd.h line=886 column=14
e
xpecting_100 = : enter=0, leave=0
=
 1;
1092        }
1093        else {
1094            r : server/protocol.c line=871 column=18
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus = : enter=0, leave=0
=
 HTTP_EXPECTATION_FAILED;
1095            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_INFO, 0, r : server/protocol.c line=871 column=18
r
,
1096                          "client sent an unrecognized expectation value of "
1097                          "Expect: %s", expect : server/protocol.c line=873 column=17
e
xpect);
1098            ap_send_error_response : enter=0, leave=0

ap_send_error_response : include/http_protocol.h line=97 column=18
a
p_send_error_response(r : server/protocol.c line=871 column=18
r
, 0);
1099            ap_update_child_status : enter=0, leave=0

ap_update_child_status : include/scoreboard.h line=187 column=17
a
p_update_child_status(conn : server/protocol.c line=869 column=40
c
onn-> : enter=0, leave=0
-
>sbh : include/httpd.h line=1101 column=11
s
bh, SERVER_BUSY_LOG, r : server/protocol.c line=871 column=18
r
);
1100            ap_run_log_transaction : enter=0, leave=0

ap_run_log_transaction : server/ line=187 column=1
a
p_run_log_transaction(r : server/protocol.c line=871 column=18
r
);
1101            return : pass=0
r
eturn r : server/protocol.c line=871 column=18
r
;
1102        }
1103    }
1104
1105    return : pass=0
r
eturn r : server/protocol.c line=871 column=18
r
;
1106}
1107
1108/* if a request with a body creates a subrequest, remove original request's
1109 * input headers which pertain to the body which has already been read.
1110 * out-of-line helper function for ap_set_sub_req_protocol.
1111 */
1112
1113static void strip_headers_request_body : call=0
s
trip_headers_request_body(request_rec *rnew)
1114{
1115    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-Encoding");
1116    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-Language");
1117    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-Length");
1118    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-Location");
1119    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-MD5");
1120    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-Range");
1121    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-Type");
1122    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Expires");
1123    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Last-Modified");
1124    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(rnew : server/protocol.c line=1113 column=53
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Transfer-Encoding");
1125}
1126
1127/*
1128 * A couple of other functions which initialize some of the fields of
1129 * a request structure, as appropriate for adjuncts of one kind or another
1130 * to a request in progress.  Best here, rather than elsewhere, since
1131 * *someone* has to set the protocol-specific fields...
1132 */
1133
1134AP_DECLARE(void) ap_set_sub_req_protocol : call=0
a
p_set_sub_req_protocol(request_rec *rnew,
1135                                         const request_rec *r)
1136{
1137    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>the_request : include/httpd.h line=799 column=11
t
he_request     = : enter=0, leave=0
=
 r : server/protocol.c line=1135 column=61
r
-> : enter=0, leave=0
-
>the_request : include/httpd.h line=799 column=11
t
he_request;  /* Keep original request-line */
1138
1139    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>assbackwards : include/httpd.h line=801 column=9
a
ssbackwards    = : enter=0, leave=0
=
 1;   /* Don't send headers from this. */
1140    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>no_local_copy : include/httpd.h line=937 column=9
n
o_local_copy   = : enter=0, leave=0
=
 1;   /* Don't try to send HTTP_NOT_MODIFIED for a
1141                                  * fragment. */
1142    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>method : include/httpd.h line=829 column=17
m
ethod          = : enter=0, leave=0
=
 "GET";
1143    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>method_number : include/httpd.h line=831 column=9
m
ethod_number   = : enter=0, leave=0
=
 M_GET;
1144    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>protocol : include/httpd.h line=810 column=11
p
rotocol        = : enter=0, leave=0
=
 "INCLUDED";
1145
1146    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus          = : enter=0, leave=0
=
 HTTP_OK;
1147
1148    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in      = : enter=0, leave=0
=
 apr_table_copy : enter=0, leave=0

apr_table_copy : /usr/include/apr-1/apr_tables.h line=231 column=28
a
pr_table_copy(rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : server/protocol.c line=1135 column=61
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in);
1149    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>trailers_in : include/httpd.h line=1011 column=18
t
railers_in     = : enter=0, leave=0
=
 apr_table_copy : enter=0, leave=0

apr_table_copy : /usr/include/apr-1/apr_tables.h line=231 column=28
a
pr_table_copy(rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : server/protocol.c line=1135 column=61
r
-> : enter=0, leave=0
-
>trailers_in : include/httpd.h line=1011 column=18
t
railers_in);
1150
1151    /* did the original request have a body?  (e.g. POST w/SSI tags)
1152     * if so, make sure the subrequest doesn't inherit body headers
1153     */
1154    if : true=0, false=0
i
f (MC/DC independently affect : 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
aTF
pr_table_get(r : server/protocol.c line=1135 column=61
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Content-Length")
1155        || : true=0, false=0
|
MC/DC independently affect : 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
aTF
pr_table_get(r : server/protocol.c line=1135 column=61
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in, "Transfer-Encoding")) {
1156        strip_headers_request_body : enter=0, leave=0

strip_headers_request_body : server/protocol.c line=1113 column=13
s
trip_headers_request_body(rnew : server/protocol.c line=1134 column=55
r
new);
1157    }
1158    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env  = : enter=0, leave=0
=
 apr_table_copy : enter=0, leave=0

apr_table_copy : /usr/include/apr-1/apr_tables.h line=231 column=28
a
pr_table_copy(rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : server/protocol.c line=1135 column=61
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env);
1159    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out     = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 5);
1160    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>err_headers_out : include/httpd.h line=906 column=18
e
rr_headers_out = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 5);
1161    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>trailers_out : include/httpd.h line=1013 column=18
t
railers_out    = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 5);
1162    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes           = : enter=0, leave=0
=
 apr_table_make : enter=0, leave=0

apr_table_make : /usr/include/apr-1/apr_tables.h line=222 column=28
a
pr_table_make(rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 5);
1163
1164    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>expecting_100 : include/httpd.h line=886 column=14
e
xpecting_100   = : enter=0, leave=0
=
 r : server/protocol.c line=1135 column=61
r
-> : enter=0, leave=0
-
>expecting_100 : include/httpd.h line=886 column=14
e
xpecting_100;
1165    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>read_length : include/httpd.h line=878 column=15
r
ead_length     = : enter=0, leave=0
=
 r : server/protocol.c line=1135 column=61
r
-> : enter=0, leave=0
-
>read_length : include/httpd.h line=878 column=15
r
ead_length;
1166    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>read_body : include/httpd.h line=882 column=9
r
ead_body       = : enter=0, leave=0
=
 REQUEST_NO_BODY;
1167
1168    rnew : server/protocol.c line=1134 column=55
r
new-> : enter=0, leave=0
-
>main : include/httpd.h line=793 column=18
m
ain = : enter=0, leave=0
=
 (request_rec *) r : server/protocol.c line=1135 column=61
r
;
1169}
1170
1171static void end_output_stream : call=0
e
nd_output_stream(request_rec *r)
1172{
1173    conn_rec *c = r : server/protocol.c line=1171 column=44
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection;
1174    apr_bucket_brigade *bb;
1175    apr_bucket *b;
1176
1177    bb : server/protocol.c line=1174 column=25
b
= : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=1171 column=44
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, c : server/protocol.c line=1173 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1178    b : server/protocol.c line=1175 column=17
b
 = : pass=0
=
 apr_bucket_eos_create : enter=0, leave=0

apr_bucket_eos_create : /usr/include/apr-1/apr_buckets.h line=1260 column=27
a
pr_bucket_eos_create(c : server/protocol.c line=1173 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1179    APR_BRIGADE_INSERT_TAIL(bb : server/protocol.c line=1174 column=25
b
b, b : server/protocol.c line=1175 column=17
b
);
1180    ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(r : server/protocol.c line=1171 column=44
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters, bb : server/protocol.c line=1174 column=25
b
b);
1181}
1182
1183AP_DECLARE(void) ap_finalize_sub_req_protocol : call=0
a
p_finalize_sub_req_protocol(request_rec *sub)
1184{
1185    /* tell the filter chain there is no more content coming */
1186    if : true=0, false=0
i
f (! : true=0, false=0
!
sub : server/protocol.c line=1183 column=60
s
ub-> : enter=0, leave=0
-
>eos_sent : include/httpd.h line=1002 column=9
e
os_sent) {
1187        end_output_stream : enter=0, leave=0

end_output_stream : server/protocol.c line=1171 column=13
e
nd_output_stream(sub : server/protocol.c line=1183 column=60
s
ub);
1188    }
1189}
1190
1191/* finalize_request_protocol is called at completion of sending the
1192 * response.  Its sole purpose is to send the terminating protocol
1193 * information for any wrappers around the response message body
1194 * (i.e., transfer encodings).  It should have been named finalize_response.
1195 */
1196AP_DECLARE(void) ap_finalize_request_protocol : call=0
a
p_finalize_request_protocol(request_rec *r)
1197{
1198    (void) ap_discard_request_body : enter=0, leave=0

ap_discard_request_body : include/http_protocol.h line=462 column=17
a
p_discard_request_body(r : server/protocol.c line=1196 column=60
r
);
1199
1200    /* tell the filter chain there is no more content coming */
1201    if : true=0, false=0
i
f (! : true=0, false=0
!
r : server/protocol.c line=1196 column=60
r
-> : enter=0, leave=0
-
>eos_sent : include/httpd.h line=1002 column=9
e
os_sent) {
1202        end_output_stream : enter=0, leave=0

end_output_stream : server/protocol.c line=1171 column=13
e
nd_output_stream(r : server/protocol.c line=1196 column=60
r
);
1203    }
1204}
1205
1206/*
1207 * Support for the Basic authentication protocol, and a bit for Digest.
1208 */
1209AP_DECLARE(void) ap_note_auth_failure : call=0
a
p_note_auth_failure(request_rec *r)
1210{
1211    const char *type = ap_auth_type : enter=0, leave=0

ap_auth_type : include/http_core.h line=310 column=26
a
p_auth_type(r : server/protocol.c line=1209 column=52
r
);
1212    if : true=0, false=0
i
f (type : server/protocol.c line=1211 column=17
t
ype) {
1213        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(type : server/protocol.c line=1211 column=17
t
ype, "Basic"))
1214            ap_note_basic_auth_failure : enter=0, leave=0

ap_note_basic_auth_failure : include/http_protocol.h line=478 column=18
a
p_note_basic_auth_failure(r : server/protocol.c line=1209 column=52
r
);
1215        else 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(type : server/protocol.c line=1211 column=17
t
ype, "Digest"))
1216            ap_note_digest_auth_failure : enter=0, leave=0

ap_note_digest_auth_failure : include/http_protocol.h line=486 column=18
a
p_note_digest_auth_failure(r : server/protocol.c line=1209 column=52
r
);
1217    }
1218    else {
1219        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR,
1220                      0, r : server/protocol.c line=1209 column=52
r
, "need AuthType to note auth failure: %s", r : server/protocol.c line=1209 column=52
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri);
1221    }
1222}
1223
1224AP_DECLARE(void) ap_note_basic_auth_failure : call=0
a
p_note_basic_auth_failure(request_rec *r)
1225{
1226    const char *type = ap_auth_type : enter=0, leave=0

ap_auth_type : include/http_core.h line=310 column=26
a
p_auth_type(r : server/protocol.c line=1224 column=58
r
);
1227
1228    /* if there is no AuthType configure or it is something other than
1229     * Basic, let ap_note_auth_failure() deal with it
1230     */
1231    if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
type : server/protocol.c line=1226 column=17
t
ype || : true=0, false=0
|
MC/DC independently affect : true=0, false=0
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
sTF
trcasecmp(type : server/protocol.c line=1226 column=17
t
ype, "Basic"))
1232        ap_note_auth_failure : enter=0, leave=0

ap_note_auth_failure : server/protocol.c line=1209 column=18
a
p_note_auth_failure(r : server/protocol.c line=1224 column=58
r
);
1233    else
1234        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/protocol.c line=1224 column=58
r
-> : enter=0, leave=0
-
>err_headers_out : include/httpd.h line=906 column=18
e
rr_headers_out,
1235                       (PROXYREQ_PROXY == : true=0, false=0
=
r : server/protocol.c line=1224 column=58
r
-> : enter=0, leave=0
-
>proxyreq : include/httpd.h line=806 column=9
p
roxyreq) conditional operator : true=0, false=0
?
 "Proxy-Authenticate"
1236                                                       : "WWW-Authenticate",
1237                       apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : server/protocol.c line=1224 column=58
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, "Basic realm=\"", ap_auth_name : enter=0, leave=0

ap_auth_name : include/http_core.h line=317 column=26
a
p_auth_name(r : server/protocol.c line=1224 column=58
r
),
1238                                   "\"", NULL));
1239}
1240
1241AP_DECLARE(void) ap_note_digest_auth_failure : call=0
a
p_note_digest_auth_failure(request_rec *r)
1242{
1243    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/protocol.c line=1241 column=59
r
-> : enter=0, leave=0
-
>err_headers_out : include/httpd.h line=906 column=18
e
rr_headers_out,
1244                   (PROXYREQ_PROXY == : true=0, false=0
=
r : server/protocol.c line=1241 column=59
r
-> : enter=0, leave=0
-
>proxyreq : include/httpd.h line=806 column=9
p
roxyreq) conditional operator : true=0, false=0
?
 "Proxy-Authenticate"
1245                                                   : "WWW-Authenticate",
1246                   apr_psprintf : enter=0, leave=0

apr_psprintf : /usr/include/apr-1/apr_strings.h line=170 column=28
a
pr_psprintf(r : server/protocol.c line=1241 column=59
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, "Digest realm=\"%s\", nonce=\""
1247                                "%" APR_UINT64_T_HEX_FMT "\"",
1248                                ap_auth_name : enter=0, leave=0

ap_auth_name : include/http_core.h line=317 column=26
a
p_auth_name(r : server/protocol.c line=1241 column=59
r
), (apr_uint64_t)r : server/protocol.c line=1241 column=59
r
-> : enter=0, leave=0
-
>request_time : include/httpd.h line=817 column=16
r
equest_time));
1249}
1250
1251AP_DECLARE(int) ap_get_basic_auth_pw : call=0
a
p_get_basic_auth_pw(request_rec *r, const char **pw)
1252{
1253    const char *auth_line = 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/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>headers_in : include/httpd.h line=901 column=18
h
eaders_in,
1254                                          (PROXYREQ_PROXY == : true=0, false=0
=
r : server/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>proxyreq : include/httpd.h line=806 column=9
p
roxyreq)
1255                                              conditional operator : true=0, false=0
?
 "Proxy-Authorization"
1256                                              : "Authorization");
1257    const char *t;
1258
1259    if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
(t : server/protocol.c line=1257 column=17
t
 = : pass=0
=
 ap_auth_type : enter=0, leave=0

ap_auth_type : include/http_core.h line=310 column=26
a
p_auth_type(r : server/protocol.c line=1251 column=51
r
)) || : true=0, false=0
|
MC/DC independently affect : true=0, false=0
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
sTF
trcasecmp(t : server/protocol.c line=1257 column=17
t
, "Basic"))
1260        return : pass=0
r
eturn DECLINED;
1261
1262    if : true=0, false=0
i
f (! : true=0, false=0
!
ap_auth_name : enter=0, leave=0

ap_auth_name : include/http_core.h line=317 column=26
a
p_auth_name(r : server/protocol.c line=1251 column=51
r
)) {
1263        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR,
1264                      0, r : server/protocol.c line=1251 column=51
r
, "need AuthName: %s", r : server/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri);
1265        return : pass=0
r
eturn HTTP_INTERNAL_SERVER_ERROR;
1266    }
1267
1268    if : true=0, false=0
i
f (! : true=0, false=0
!
auth_line : server/protocol.c line=1253 column=17
a
uth_line) {
1269        ap_note_basic_auth_failure : enter=0, leave=0

ap_note_basic_auth_failure : server/protocol.c line=1224 column=18
a
p_note_basic_auth_failure(r : server/protocol.c line=1251 column=51
r
);
1270        return : pass=0
r
eturn HTTP_UNAUTHORIZED;
1271    }
1272
1273    if : true=0, false=0
i
f (strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(ap_getword : enter=0, leave=0

ap_getword : include/httpd.h line=1299 column=20
a
p_getword(r : server/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &auth_line : server/protocol.c line=1253 column=17
a
uth_line, ' '), "Basic")) {
1274        /* Client tried to authenticate using wrong auth scheme */
1275        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : server/protocol.c line=1251 column=51
r
,
1276                      "client used wrong authentication scheme: %s", r : server/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri);
1277        ap_note_basic_auth_failure : enter=0, leave=0

ap_note_basic_auth_failure : server/protocol.c line=1224 column=18
a
p_note_basic_auth_failure(r : server/protocol.c line=1251 column=51
r
);
1278        return : pass=0
r
eturn HTTP_UNAUTHORIZED;
1279    }
1280
1281    while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
auth_line : server/protocol.c line=1253 column=17
a
uth_line == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ' ' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
auth_line : server/protocol.c line=1253 column=17
a
uth_line == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\t') {
1282        auth_line : server/protocol.c line=1253 column=17
a
uth_line++ : pass=0
+
+;
1283    }
1284
1285    t : server/protocol.c line=1257 column=17
t
 = : pass=0
=
 ap_pbase64decode : enter=0, leave=0

ap_pbase64decode : include/httpd.h line=1662 column=20
a
p_pbase64decode(r : server/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, auth_line : server/protocol.c line=1253 column=17
a
uth_line);
1286    r : server/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>user : include/httpd.h line=930 column=11
u
ser = : enter=0, leave=0
=
 ap_getword_nulls : enter=0, leave=0

ap_getword_nulls : include/httpd.h line=1338 column=20
a
p_getword_nulls (r : server/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &t : server/protocol.c line=1257 column=17
t
, ':');
1287    r : server/protocol.c line=1251 column=51
r
-> : enter=0, leave=0
-
>ap_auth_type : include/httpd.h line=932 column=11
a
p_auth_type = : enter=0, leave=0
=
 "Basic";
1288
1289    *pw : server/protocol.c line=1251 column=67
p
= : enter=0, leave=0
=
 t : server/protocol.c line=1257 column=17
t
;
1290
1291    return : pass=0
r
eturn OK;
1292}
1293
1294struct content_length_ctx {
1295    int data_sent;  /* true if the C-L filter has already sent at
1296                     * least one bucket on to the next output filter
1297                     * for this request
1298                     */
1299};
1300
1301/* This filter computes the content length, but it also computes the number
1302 * of bytes sent to the client.  This means that this filter will always run
1303 * through all of the buckets in all brigades
1304 */
1305AP_CORE_DECLARE_NONSTD(apr_status_t) ap_content_length_filter : call=0
a
p_content_length_filter(
1306    ap_filter_t *f,
1307    apr_bucket_brigade *b)
1308{
1309    request_rec *r = f : server/protocol.c line=1306 column=18
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
1310    struct content_length_ctx *ctx;
1311    apr_bucket *e;
1312    int eos = 0;
1313    apr_read_type_e eblock = APR_NONBLOCK_READ : /usr/include/apr-1/apr_buckets.h line=59 column=5 APR_NONBLOCK_READ;
1314
1315    ctx : server/protocol.c line=1310 column=32
c
tx = : pass=0
=
 f : server/protocol.c line=1306 column=18
f
-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx;
1316    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : server/protocol.c line=1310 column=32
c
tx) {
1317        f : server/protocol.c line=1306 column=18
f
-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx = : enter=0, leave=0
=
 ctx : server/protocol.c line=1310 column=32
c
tx = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : server/protocol.c line=1309 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, sizeof(*ctx));
1318        ctx : server/protocol.c line=1310 column=32
c
tx-> : enter=0, leave=0
-
>data_sent : server/protocol.c line=1295 column=9
d
ata_sent = : enter=0, leave=0
=
 0;
1319    }
1320
1321    /* Loop through this set of buckets to compute their length
1322     */
1323    e : server/protocol.c line=1311 column=17
e
 = : pass=0
=
 APR_BRIGADE_FIRST(b : server/protocol.c line=1307 column=25
b
);
1324    while : true=0, false=0
w
hile (e : server/protocol.c line=1311 column=17
e
 != : true=0, false=0
!
= APR_BRIGADE_SENTINEL(b : server/protocol.c line=1307 column=25
b
)) {
1325        if : true=0, false=0
i
f (APR_BUCKET_IS_EOS(e : server/protocol.c line=1311 column=17
e
)) {
1326            eos : server/protocol.c line=1312 column=9
e
os = : pass=0
=
 1;
1327            break : pass=0
b
reak;
1328        }
1329        if : true=0, false=0
i
f (e : server/protocol.c line=1311 column=17
e
-> : enter=0, leave=0
-
>length : /usr/include/apr-1/apr_buckets.h line=234 column=16 length == : true=0, false=0
=
= (apr_size_t)-1) {
1330            apr_size_t len;
1331            const char *ignored;
1332            apr_status_t rv;
1333
1334            /* This is probably a pipe bucket.  Send everything
1335             * prior to this, and then read the data for this bucket.
1336             */
1337            rv : server/protocol.c line=1332 column=26
r
= : pass=0
=
 apr_bucket_read(e : server/protocol.c line=1311 column=17
e
, &ignored : server/protocol.c line=1331 column=25
i
gnored, &len : server/protocol.c line=1330 column=24
l
en, eblock : server/protocol.c line=1313 column=21
e
block);
1338            if : true=0, false=0
i
f (rv : server/protocol.c line=1332 column=26
r
== : true=0, false=0
=
= APR_SUCCESS) {
1339                /* Attempt a nonblocking read next time through */
1340                eblock : server/protocol.c line=1313 column=21
e
block = : pass=0
=
 APR_NONBLOCK_READ : /usr/include/apr-1/apr_buckets.h line=59 column=5 APR_NONBLOCK_READ;
1341                r : server/protocol.c line=1309 column=18
r
-> : enter=0, leave=0
-
>bytes_sent : include/httpd.h line=862 column=15
b
ytes_sent += : enter=0, leave=0
+
len : server/protocol.c line=1330 column=24
l
en;
1342            }
1343            else if : true=0, false=0
i
f (APR_STATUS_IS_EAGAIN(rv : server/protocol.c line=1332 column=26
r
v)) {
1344                /* Output everything prior to this bucket, and then
1345                 * do a blocking read on the next batch.
1346                 */
1347                if : true=0, false=0
i
f (e : server/protocol.c line=1311 column=17
e
 != : true=0, false=0
!
= APR_BRIGADE_FIRST(b : server/protocol.c line=1307 column=25
b
)) {
1348                    apr_bucket_brigade *split = apr_brigade_split : enter=0, leave=0

apr_brigade_split : /usr/include/apr-1/apr_buckets.h line=709 column=35
a
pr_brigade_split(b : server/protocol.c line=1307 column=25
b
e : server/protocol.c line=1311 column=17
e
);
1349                    apr_bucket *flush = apr_bucket_flush_create : enter=0, leave=0

apr_bucket_flush_create : /usr/include/apr-1/apr_buckets.h line=1278 column=27
a
pr_bucket_flush_create(r : server/protocol.c line=1309 column=18
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1350
1351                    APR_BRIGADE_INSERT_TAIL(b : server/protocol.c line=1307 column=25
b
flush : server/protocol.c line=1349 column=33
f
lush);
1352                    rv : server/protocol.c line=1332 column=26
r
= : pass=0
=
 ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(f : server/protocol.c line=1306 column=18
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext, b : server/protocol.c line=1307 column=25
b
);
1353                    if : true=0, false=0
i
f (rv : server/protocol.c line=1332 column=26
r
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS || : true=0, false=0
|
f : server/protocol.c line=1306 column=18
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>aborted : include/httpd.h line=1070 column=14
a
borted) {
1354                        apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(split : server/protocol.c line=1348 column=41
s
plit);
1355                        return : pass=0
r
eturn rv : server/protocol.c line=1332 column=26
r
v;
1356                    }
1357                    b : server/protocol.c line=1307 column=25
b
 = : pass=0
=
 split : server/protocol.c line=1348 column=41
s
plit;
1358                    e : server/protocol.c line=1311 column=17
e
 = : pass=0
=
 APR_BRIGADE_FIRST(b : server/protocol.c line=1307 column=25
b
);
1359
1360                    ctx : server/protocol.c line=1310 column=32
c
tx-> : enter=0, leave=0
-
>data_sent : server/protocol.c line=1295 column=9
d
ata_sent = : enter=0, leave=0
=
 1;
1361                }
1362                eblock : server/protocol.c line=1313 column=21
e
block = : pass=0
=
 APR_BLOCK_READ : /usr/include/apr-1/apr_buckets.h line=58 column=5 APR_BLOCK_READ;
1363                continue : pass=0
c
ontinue;
1364            }
1365            else {
1366                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, rv : server/protocol.c line=1332 column=26
r
v, r : server/protocol.c line=1309 column=18
r
,
1367                              "ap_content_length_filter: "
1368                              "apr_bucket_read() failed");
1369                return : pass=0
r
eturn rv : server/protocol.c line=1332 column=26
r
v;
1370            }
1371        }
1372        else {
1373            r : server/protocol.c line=1309 column=18
r
-> : enter=0, leave=0
-
>bytes_sent : include/httpd.h line=862 column=15
b
ytes_sent += : enter=0, leave=0
+
e : server/protocol.c line=1311 column=17
e
-> : enter=0, leave=0
-
>length : /usr/include/apr-1/apr_buckets.h line=234 column=16 length;
1374        }
1375        e : server/protocol.c line=1311 column=17
e
 = : pass=0
=
 APR_BUCKET_NEXT(e : server/protocol.c line=1311 column=17
e
);
1376    }
1377
1378    /* If we've now seen the entire response and it's otherwise
1379     * okay to set the C-L in the response header, then do so now.
1380     *
1381     * We can only set a C-L in the response header if we haven't already
1382     * sent any buckets on to the next output filter for this request.
1383     */
1384    if : true=0, false=0
i
f (ctx : server/protocol.c line=1310 column=32
c
tx-> : enter=0, leave=0
-
>data_sent : server/protocol.c line=1295 column=9
d
ata_sent == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 0 && : true=0, false=0
&
MC/DC independently affect : true=0, false=0

eos : server/protocol.c line=1312 column=9
eTF
os && : true=0, false=0
&
&
1385        /* don't whack the C-L if it has already been set for a HEAD
1386         * by something like proxy.  the brigade only has an EOS bucket
1387         * in this case, making r->bytes_sent zero.
1388         *
1389         * if r->bytes_sent > 0 we have a (temporary) body whose length may 
1390         * have been changed by a filter.  the C-L header might not have been 
1391         * updated so we do it here.  long term it would be cleaner to have 
1392         * such filters update or remove the C-L header, and just use it 
1393         * if present.
1394         */
1395        ! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
(r : server/protocol.c line=1309 column=18
r
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>header_only : include/httpd.h line=808 column=9
h
eader_only && : true=0, false=0
&
r : server/protocol.c line=1309 column=18
r
-> : enter=0, leave=0
-
>bytes_sent : include/httpd.h line=862 column=15
b
ytes_sent == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 0 && : true=0, false=0
&
&   
1396            MC/DC independently affect : 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
aTF
pr_table_get(r : server/protocol.c line=1309 column=18
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, "Content-Length"))) {
1397        ap_set_content_length : enter=0, leave=0

ap_set_content_length : server/protocol.c line=155 column=18
a
p_set_content_length(r : server/protocol.c line=1309 column=18
r
r : server/protocol.c line=1309 column=18
r
-> : enter=0, leave=0
-
>bytes_sent : include/httpd.h line=862 column=15
b
ytes_sent);
1398    }
1399
1400    ctx : server/protocol.c line=1310 column=32
c
tx-> : enter=0, leave=0
-
>data_sent : server/protocol.c line=1295 column=9
d
ata_sent = : enter=0, leave=0
=
 1;
1401    return : pass=0
r
eturn ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(f : server/protocol.c line=1306 column=18
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext, b : server/protocol.c line=1307 column=25
b
);
1402}
1403
1404/*
1405 * Send the body of a response to the client.
1406 */
1407AP_DECLARE(apr_status_t) ap_send_fd : call=0
a
p_send_fd(apr_file_t *fd, request_rec *r,
1408                                    apr_off_t offset, apr_size_t len,
1409                                    apr_size_t *nbytes)
1410{
1411    conn_rec *c = r : server/protocol.c line=1407 column=66
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection;
1412    apr_bucket_brigade *bb = NULL;
1413    apr_bucket *b;
1414    apr_status_t rv;
1415
1416    bb : server/protocol.c line=1412 column=25
b
= : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=1407 column=66
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, c : server/protocol.c line=1411 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1417    b : server/protocol.c line=1413 column=17
b
 = : pass=0
=
 apr_bucket_file_create : enter=0, leave=0

apr_bucket_file_create : /usr/include/apr-1/apr_buckets.h line=1470 column=27
a
pr_bucket_file_create(fd : server/protocol.c line=1407 column=49
f
d, offset : server/protocol.c line=1408 column=47
o
ffset, len : server/protocol.c line=1408 column=66
l
en, r : server/protocol.c line=1407 column=66
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, c : server/protocol.c line=1411 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1418    APR_BRIGADE_INSERT_TAIL(bb : server/protocol.c line=1412 column=25
b
b, b : server/protocol.c line=1413 column=17
b
);
1419
1420    rv : server/protocol.c line=1414 column=18
r
= : pass=0
=
 ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(r : server/protocol.c line=1407 column=66
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters, bb : server/protocol.c line=1412 column=25
b
b);
1421    if : true=0, false=0
i
f (rv : server/protocol.c line=1414 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
1422        *nbytes : server/protocol.c line=1409 column=49
n
bytes = : enter=0, leave=0
=
 0; /* no way to tell how many were actually sent */
1423    }
1424    else {
1425        *nbytes : server/protocol.c line=1409 column=49
n
bytes = : enter=0, leave=0
=
 len : server/protocol.c line=1408 column=66
l
en;
1426    }
1427
1428    return : pass=0
r
eturn rv : server/protocol.c line=1414 column=18
r
v;
1429}
1430
1431#if APR_HAS_MMAP
1432/* send data from an in-memory buffer */
1433AP_DECLARE(size_t) ap_send_mmap : call=0
a
p_send_mmap(apr_mmap_t *mm, request_rec *r, size_t offset,
1434                                size_t length)
1435{
1436    conn_rec *c = r : server/protocol.c line=1433 column=62
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection;
1437    apr_bucket_brigade *bb = NULL;
1438    apr_bucket *b;
1439
1440    bb : server/protocol.c line=1437 column=25
b
= : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=1433 column=62
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, c : server/protocol.c line=1436 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1441    b : server/protocol.c line=1438 column=17
b
 = : pass=0
=
 apr_bucket_mmap_create : enter=0, leave=0

apr_bucket_mmap_create : /usr/include/apr-1/apr_buckets.h line=1400 column=27
a
pr_bucket_mmap_create(mm : server/protocol.c line=1433 column=45
m
m, offset : server/protocol.c line=1433 column=72
o
ffset, length : server/protocol.c line=1434 column=40
l
ength, c : server/protocol.c line=1436 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1442    APR_BRIGADE_INSERT_TAIL(bb : server/protocol.c line=1437 column=25
b
b, b : server/protocol.c line=1438 column=17
b
);
1443    ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(r : server/protocol.c line=1433 column=62
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters, bb : server/protocol.c line=1437 column=25
b
b);
1444
1445    return : pass=0
r
eturn mm : server/protocol.c line=1433 column=45
m
m-> : enter=0, leave=0
-
>size : /usr/include/apr-1/apr_mmap.h line=82 column=16 size; /* XXX - change API to report apr_status_t? */
1446}
1447#endif /* APR_HAS_MMAP */
1448
1449typedef struct {
1450    apr_bucket_brigade *bb;
1451} old_write_filter_ctx;
1452
1453AP_CORE_DECLARE_NONSTD(apr_status_t) ap_old_write_filter : call=0
a
p_old_write_filter(
1454    ap_filter_t *f, apr_bucket_brigade *bb)
1455{
1456    old_write_filter_ctx *ctx = f : server/protocol.c line=1454 column=18
f
-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx;
1457
1458    AP_DEBUG_ASSERT(ctx);
1459
1460    if : true=0, false=0
i
f (ctx : server/protocol.c line=1456 column=27
c
tx-> : enter=0, leave=0
-
>bb : server/protocol.c line=1450 column=25
b
!= : true=0, false=0
!
= 0) {
1461        /* whatever is coming down the pipe (we don't care), we
1462         * can simply insert our buffered data at the front and
1463         * pass the whole bundle down the chain.
1464         */
1465        APR_BRIGADE_PREPEND(bb : server/protocol.c line=1454 column=41
b
b, ctx : server/protocol.c line=1456 column=27
c
tx-> : enter=0, leave=0
-
>bb : server/protocol.c line=1450 column=25
b
b);
1466    }
1467
1468    return : pass=0
r
eturn ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(f : server/protocol.c line=1454 column=18
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext, bb : server/protocol.c line=1454 column=41
b
b);
1469}
1470
1471static apr_status_t buffer_output : call=0
b
uffer_output(request_rec *r,
1472                                  const char *str, apr_size_t len)
1473{
1474    conn_rec *c = r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection;
1475    ap_filter_t *f;
1476    old_write_filter_ctx *ctx;
1477
1478    if : true=0, false=0
i
f (len : server/protocol.c line=1472 column=63
l
en == : true=0, false=0
=
= 0)
1479        return : pass=0
r
eturn APR_SUCCESS;
1480
1481    /* future optimization: record some flags in the request_rec to
1482     * say whether we've added our filter, and whether it is first.
1483     */
1484
1485    /* this will typically exit on the first test */
1486    for : true=0, false=0
f
or (f : server/protocol.c line=1475 column=18
f
 = : pass=0
=
 r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters; f : server/protocol.c line=1475 column=18
f
 != : true=0, false=0
!
= NULL; f : server/protocol.c line=1475 column=18
f
 = : pass=0
=
 f : server/protocol.c line=1475 column=18
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext) {
1487        if : true=0, false=0
i
f (ap_old_write_func : server/protocol.c line=68 column=34
a
p_old_write_func == : true=0, false=0
=
f : server/protocol.c line=1475 column=18
f
-> : enter=0, leave=0
-
>frec : include/util_filter.h line=265 column=22
f
rec)
1488            break : pass=0
b
reak;
1489    }
1490
1491    if : true=0, false=0
i
f (f : server/protocol.c line=1475 column=18
f
 == : true=0, false=0
=
= NULL) {
1492        /* our filter hasn't been added yet */
1493        ctx : server/protocol.c line=1476 column=27
c
tx = : pass=0
=
 apr_pcalloc(r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, sizeof(*ctx));
1494        ap_add_output_filter : enter=0, leave=0

ap_add_output_filter : include/util_filter.h line=432 column=27
a
p_add_output_filter("OLD_WRITE", ctx : server/protocol.c line=1476 column=27
c
tx, r : server/protocol.c line=1471 column=48
r
r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection);
1495        f : server/protocol.c line=1475 column=18
f
 = : pass=0
=
 r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters;
1496    }
1497
1498    /* if the first filter is not our buffering filter, then we have to
1499     * deliver the content through the normal filter chain
1500     */
1501    if : true=0, false=0
i
f (f : server/protocol.c line=1475 column=18
f
 != : true=0, false=0
!
r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters) {
1502        apr_bucket_brigade *bb = apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, c : server/protocol.c line=1474 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1503        apr_bucket *b = apr_bucket_transient_create : enter=0, leave=0

apr_bucket_transient_create : /usr/include/apr-1/apr_buckets.h line=1318 column=27
a
pr_bucket_transient_create(str : server/protocol.c line=1472 column=47
s
tr, len : server/protocol.c line=1472 column=63
l
en, c : server/protocol.c line=1474 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1504        APR_BRIGADE_INSERT_TAIL(bb : server/protocol.c line=1502 column=29
b
b, b : server/protocol.c line=1503 column=21
b
);
1505
1506        return : pass=0
r
eturn ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters, bb : server/protocol.c line=1502 column=29
b
b);
1507    }
1508
1509    /* grab the context from our filter */
1510    ctx : server/protocol.c line=1476 column=27
c
tx = : pass=0
=
 r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx;
1511
1512    if : true=0, false=0
i
f (ctx : server/protocol.c line=1476 column=27
c
tx-> : enter=0, leave=0
-
>bb : server/protocol.c line=1450 column=25
b
== : true=0, false=0
=
= NULL) {
1513        ctx : server/protocol.c line=1476 column=27
c
tx-> : enter=0, leave=0
-
>bb : server/protocol.c line=1450 column=25
b
= : enter=0, leave=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=1471 column=48
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, c : server/protocol.c line=1474 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1514    }
1515
1516    return : pass=0
r
eturn ap_fwrite(f : server/protocol.c line=1475 column=18
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext, ctx : server/protocol.c line=1476 column=27
c
tx-> : enter=0, leave=0
-
>bb : server/protocol.c line=1450 column=25
b
b, str : server/protocol.c line=1472 column=47
s
tr, len : server/protocol.c line=1472 column=63
l
en);
1517}
1518
1519AP_DECLARE(int) ap_rputc : call=0
a
p_rputc(int c, request_rec *r)
1520{
1521    char c2 = (char)c : server/protocol.c line=1519 column=30
c
;
1522
1523    if : true=0, false=0
i
f (r : server/protocol.c line=1519 column=46
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>aborted : include/httpd.h line=1070 column=14
a
borted) {
1524        return : pass=0
r
eturn -1;
1525    }
1526
1527    if : true=0, false=0
i
f (buffer_output : enter=0, leave=0

buffer_output : server/protocol.c line=1471 column=21
b
uffer_output(r : server/protocol.c line=1519 column=46
r
, &c2 : server/protocol.c line=1521 column=10
c
2, 1) != : true=0, false=0
!
= APR_SUCCESS)
1528        return : pass=0
r
eturn -1;
1529
1530    return : pass=0
r
eturn c : server/protocol.c line=1519 column=30
c
;
1531}
1532
1533AP_DECLARE(int) ap_rputs : call=0
a
p_rputs(const char *str, request_rec *r)
1534{
1535    apr_size_t len;
1536
1537    if : true=0, false=0
i
f (r : server/protocol.c line=1533 column=56
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>aborted : include/httpd.h line=1070 column=14
a
borted)
1538        return : pass=0
r
eturn -1;
1539
1540    if : true=0, false=0
i
f (buffer_output : enter=0, leave=0

buffer_output : server/protocol.c line=1471 column=21
b
uffer_output(r : server/protocol.c line=1533 column=56
r
str : server/protocol.c line=1533 column=38
s
tr, len : server/protocol.c line=1535 column=16
l
en = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(str : server/protocol.c line=1533 column=38
s
tr)) != : true=0, false=0
!
= APR_SUCCESS)
1541        return : pass=0
r
eturn -1;
1542
1543    return : pass=0
r
eturn len : server/protocol.c line=1535 column=16
l
en;
1544}
1545
1546AP_DECLARE(int) ap_rwrite : call=0
a
p_rwrite(const void *buf, int nbyte, request_rec *r)
1547{
1548    if : true=0, false=0
i
f (r : server/protocol.c line=1546 column=68
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>aborted : include/httpd.h line=1070 column=14
a
borted)
1549        return : pass=0
r
eturn -1;
1550
1551    if : true=0, false=0
i
f (buffer_output : enter=0, leave=0

buffer_output : server/protocol.c line=1471 column=21
b
uffer_output(r : server/protocol.c line=1546 column=68
r
buf : server/protocol.c line=1546 column=39
b
uf, nbyte : server/protocol.c line=1546 column=48
n
byte) != : true=0, false=0
!
= APR_SUCCESS)
1552        return : pass=0
r
eturn -1;
1553
1554    return : pass=0
r
eturn nbyte : server/protocol.c line=1546 column=48
n
byte;
1555}
1556
1557struct ap_vrprintf_data {
1558    apr_vformatter_buff_t vbuff;
1559    request_rec *r;
1560    char *buff;
1561};
1562
1563static apr_status_t r_flush : call=0
r
_flush(apr_vformatter_buff_t *buff)
1564{
1565    /* callback function passed to ap_vformatter to be called when
1566     * vformatter needs to write into buff and buff.curpos > buff.endpos */
1567
1568    /* ap_vrprintf_data passed as a apr_vformatter_buff_t, which is then
1569     * "downcast" to an ap_vrprintf_data */
1570    struct ap_vrprintf_data *vd = (struct ap_vrprintf_data*)buff : server/protocol.c line=1563 column=52
b
uff;
1571
1572    if : true=0, false=0
i
f (vd : server/protocol.c line=1570 column=30
v
d-> : enter=0, leave=0
-
>r : server/protocol.c line=1559 column=18
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>aborted : include/httpd.h line=1070 column=14
a
borted)
1573        return : pass=0
r
eturn -1;
1574
1575    /* r_flush is called when vbuff is completely full */
1576    if : true=0, false=0
i
f (buffer_output : enter=0, leave=0

buffer_output : server/protocol.c line=1471 column=21
b
uffer_output(vd : server/protocol.c line=1570 column=30
v
d-> : enter=0, leave=0
-
>r : server/protocol.c line=1559 column=18
r
vd : server/protocol.c line=1570 column=30
v
d-> : enter=0, leave=0
-
>buff : server/protocol.c line=1560 column=11
b
uff, AP_IOBUFSIZE)) {
1577        return : pass=0
r
eturn -1;
1578    }
1579
1580    /* reset the buffer position */
1581    vd : server/protocol.c line=1570 column=30
v
d-> : enter=0, leave=0
-
>vbuff : server/protocol.c line=1558 column=27
v
buff.curpos : /usr/include/apr-1/apr_lib.h line=66 column=11 curpos = : pass=0
=
 vd : server/protocol.c line=1570 column=30
v
d-> : enter=0, leave=0
-
>buff : server/protocol.c line=1560 column=11
b
uff;
1582    vd : server/protocol.c line=1570 column=30
v
d-> : enter=0, leave=0
-
>vbuff : server/protocol.c line=1558 column=27
v
buff.endpos : /usr/include/apr-1/apr_lib.h line=68 column=11 endpos = : pass=0
=
 vd : server/protocol.c line=1570 column=30
v
d-> : enter=0, leave=0
-
>buff : server/protocol.c line=1560 column=11
b
uff + : pass=0
+
 AP_IOBUFSIZE;
1583
1584    return : pass=0
r
eturn APR_SUCCESS;
1585}
1586
1587AP_DECLARE(int) ap_vrprintf : call=0
a
p_vrprintf(request_rec *r, const char *fmt, va_list va)
1588{
1589    apr_size_t written;
1590    struct ap_vrprintf_data vd;
1591    char vrprintf_buf[AP_IOBUFSIZE];
1592
1593    vd : server/protocol.c line=1590 column=29
v
d.vbuff : server/protocol.c line=1558 column=27
v
buff.curpos : /usr/include/apr-1/apr_lib.h line=66 column=11 curpos = : pass=0
=
 vrprintf_buf : server/protocol.c line=1591 column=10
v
rprintf_buf;
1594    vd : server/protocol.c line=1590 column=29
v
d.vbuff : server/protocol.c line=1558 column=27
v
buff.endpos : /usr/include/apr-1/apr_lib.h line=68 column=11 endpos = : pass=0
=
 vrprintf_buf : server/protocol.c line=1591 column=10
v
rprintf_buf + : pass=0
+
 AP_IOBUFSIZE;
1595    vd : server/protocol.c line=1590 column=29
v
d.r : server/protocol.c line=1559 column=18
r
 = : pass=0
=
 r : server/protocol.c line=1587 column=42
r
;
1596    vd : server/protocol.c line=1590 column=29
v
d.buff : server/protocol.c line=1560 column=11
b
uff = : pass=0
=
 vrprintf_buf : server/protocol.c line=1591 column=10
v
rprintf_buf;
1597
1598    if : true=0, false=0
i
f (r : server/protocol.c line=1587 column=42
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>aborted : include/httpd.h line=1070 column=14
a
borted)
1599        return : pass=0
r
eturn -1;
1600
1601    written : server/protocol.c line=1589 column=16
w
ritten = : pass=0
=
 apr_vformatter : enter=0, leave=0

apr_vformatter : /usr/include/apr-1/apr_lib.h line=173 column=18
a
pr_vformatter(r_flush : server/protocol.c line=1563 column=21
r
_flush, &vd : server/protocol.c line=1590 column=29
v
d.vbuff : server/protocol.c line=1558 column=27
v
buff, fmt : server/protocol.c line=1587 column=57
f
mt, va : server/protocol.c line=1587 column=70
v
a);
1602
1603    if : true=0, false=0
i
f (written : server/protocol.c line=1589 column=16
w
ritten != : true=0, false=0
!
= -1) {
1604        int n = vd : server/protocol.c line=1590 column=29
v
d.vbuff : server/protocol.c line=1558 column=27
v
buff.curpos : /usr/include/apr-1/apr_lib.h line=66 column=11 curpos - : pass=0
-
 vrprintf_buf : server/protocol.c line=1591 column=10
v
rprintf_buf;
1605
1606        /* last call to buffer_output, to finish clearing the buffer */
1607        if : true=0, false=0
i
f (buffer_output : enter=0, leave=0

buffer_output : server/protocol.c line=1471 column=21
b
uffer_output(r : server/protocol.c line=1587 column=42
r
vrprintf_buf : server/protocol.c line=1591 column=10
v
rprintf_buf,n : server/protocol.c line=1604 column=13
n
!= : true=0, false=0
!
= APR_SUCCESS)
1608            return : pass=0
r
eturn -1;
1609
1610        written : server/protocol.c line=1589 column=16
w
ritten += : pass=0
+
n : server/protocol.c line=1604 column=13
n
;
1611    }
1612
1613    return : pass=0
r
eturn written : server/protocol.c line=1589 column=16
w
ritten;
1614}
1615
1616AP_DECLARE_NONSTD(int) ap_rprintf : call=0
a
p_rprintf(request_rec *r, const char *fmt, ...)
1617{
1618    va_list va;
1619    int n;
1620
1621    if : true=0, false=0
i
f (r : server/protocol.c line=1616 column=48
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>aborted : include/httpd.h line=1070 column=14
a
borted)
1622        return : pass=0
r
eturn -1;
1623
1624    va_start(va : server/protocol.c line=1618 column=13
v
a, fmt : server/protocol.c line=1616 column=63
f
mt);
1625    n : server/protocol.c line=1619 column=9
n
 = : pass=0
=
 ap_vrprintf : enter=0, leave=0

ap_vrprintf : server/protocol.c line=1587 column=17
a
p_vrprintf(r : server/protocol.c line=1616 column=48
r
fmt : server/protocol.c line=1616 column=63
f
mt, va : server/protocol.c line=1618 column=13
v
a);
1626    va_end(va : server/protocol.c line=1618 column=13
v
a);
1627
1628    return : pass=0
r
eturn n : server/protocol.c line=1619 column=9
n
;
1629}
1630
1631AP_DECLARE_NONSTD(int) ap_rvputs : call=0
a
p_rvputs(request_rec *r, ...)
1632{
1633    va_list va;
1634    const char *s;
1635    apr_size_t len;
1636    apr_size_t written = 0;
1637
1638    if : true=0, false=0
i
f (r : server/protocol.c line=1631 column=47
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>aborted : include/httpd.h line=1070 column=14
a
borted)
1639        return : pass=0
r
eturn -1;
1640
1641    /* ### TODO: if the total output is large, put all the strings
1642     * ### into a single brigade, rather than flushing each time we
1643     * ### fill the buffer
1644     */
1645    va_start(va : server/protocol.c line=1633 column=13
v
a, r : server/protocol.c line=1631 column=47
r
);
1646    while : true=0, false=0
w
hile (1) {
1647        s : server/protocol.c line=1634 column=17
s
 = : pass=0
=
 va_arg(va : server/protocol.c line=1633 column=13
v
a, const char *);
1648        if : true=0, false=0
i
f (s : server/protocol.c line=1634 column=17
s
 == : true=0, false=0
=
= NULL)
1649            break : pass=0
b
reak;
1650
1651        len : server/protocol.c line=1635 column=16
l
en = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(s : server/protocol.c line=1634 column=17
s
);
1652        if : true=0, false=0
i
f (buffer_output : enter=0, leave=0

buffer_output : server/protocol.c line=1471 column=21
b
uffer_output(r : server/protocol.c line=1631 column=47
r
s : server/protocol.c line=1634 column=17
s
len : server/protocol.c line=1635 column=16
l
en) != : true=0, false=0
!
= APR_SUCCESS) {
1653            return : pass=0
r
eturn -1;
1654        }
1655
1656        written : server/protocol.c line=1636 column=16
w
ritten += : pass=0
+
len : server/protocol.c line=1635 column=16
l
en;
1657    }
1658    va_end(va : server/protocol.c line=1633 column=13
v
a);
1659
1660    return : pass=0
r
eturn written : server/protocol.c line=1636 column=16
w
ritten;
1661}
1662
1663AP_DECLARE(int) ap_rflush : call=0
a
p_rflush(request_rec *r)
1664{
1665    conn_rec *c = r : server/protocol.c line=1663 column=40
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection;
1666    apr_bucket_brigade *bb;
1667    apr_bucket *b;
1668
1669    bb : server/protocol.c line=1666 column=25
b
= : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=1663 column=40
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, c : server/protocol.c line=1665 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1670    b : server/protocol.c line=1667 column=17
b
 = : pass=0
=
 apr_bucket_flush_create : enter=0, leave=0

apr_bucket_flush_create : /usr/include/apr-1/apr_buckets.h line=1278 column=27
a
pr_bucket_flush_create(c : server/protocol.c line=1665 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1671    APR_BRIGADE_INSERT_TAIL(bb : server/protocol.c line=1666 column=25
b
b, b : server/protocol.c line=1667 column=17
b
);
1672    if : true=0, false=0
i
f (ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(r : server/protocol.c line=1663 column=40
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters, bb : server/protocol.c line=1666 column=25
b
b) != : true=0, false=0
!
= APR_SUCCESS)
1673        return : pass=0
r
eturn -1;
1674
1675    return : pass=0
r
eturn 0;
1676}
1677
1678/*
1679 * This function sets the Last-Modified output header field to the value
1680 * of the mtime field in the request structure - rationalized to keep it from
1681 * being in the future.
1682 */
1683AP_DECLARE(void) ap_set_last_modified : call=0
a
p_set_last_modified(request_rec *r)
1684{
1685    if : true=0, false=0
i
f (! : true=0, false=0
!
r : server/protocol.c line=1683 column=52
r
-> : enter=0, leave=0
-
>assbackwards : include/httpd.h line=801 column=9
a
ssbackwards) {
1686        apr_time_t mod_time = ap_rationalize_mtime : enter=0, leave=0

ap_rationalize_mtime : server/protocol.c line=169 column=24
a
p_rationalize_mtime(r : server/protocol.c line=1683 column=52
r
r : server/protocol.c line=1683 column=52
r
-> : enter=0, leave=0
-
>mtime : include/httpd.h line=864 column=16
m
time);
1687        char *datestr = apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : server/protocol.c line=1683 column=52
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, APR_RFC822_DATE_LEN);
1688
1689        apr_rfc822_date : enter=0, leave=0

apr_rfc822_date : /usr/include/apr-1/apr_time.h line=190 column=27
a
pr_rfc822_date(datestr : server/protocol.c line=1687 column=15
d
atestr, mod_time : server/protocol.c line=1686 column=20
m
od_time);
1690        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/protocol.c line=1683 column=52
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, "Last-Modified", datestr : server/protocol.c line=1687 column=15
d
atestr);
1691    }
1692}
1693
1694typedef struct hdr_ptr {
1695    ap_filter_t *f;
1696    apr_bucket_brigade *bb;
1697} hdr_ptr;
1698
1699static int send_header : call=0
s
end_header(void *data, const char *key, const char *val)
1700{
1701    ap_fputstrs : enter=0, leave=0

ap_fputstrs : include/util_filter.h line=550 column=33
a
p_fputstrs(((hdr_ptr*)data : server/protocol.c line=1699 column=30
d
ata)-> : enter=0, leave=0
-
>f : server/protocol.c line=1695 column=18
f
, ((hdr_ptr*)data : server/protocol.c line=1699 column=30
d
ata)-> : enter=0, leave=0
-
>bb : server/protocol.c line=1696 column=25
b
b,
1702                key : server/protocol.c line=1699 column=48
k
ey, ": ", val : server/protocol.c line=1699 column=65
v
al, CRLF, NULL);
1703    return : pass=0
r
eturn 1;
1704}
1705
1706AP_DECLARE(void) ap_send_interim_response : call=0
a
p_send_interim_response(request_rec *r, int send_headers)
1707{
1708    hdr_ptr x;
1709    char *status_line = NULL;
1710    request_rec *rr;
1711
1712    if : true=0, false=0
i
f (r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>proto_num : include/httpd.h line=812 column=9
p
roto_num < : true=0, false=0
<
 1001) {
1713        /* don't send interim response to HTTP/1.0 Client */
1714        return : pass=0
r
eturn;
1715    }
1716    if : true=0, false=0
i
f (! : true=0, false=0
!
ap_is_HTTP_INFO(r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus)) {
1717        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r : server/protocol.c line=1706 column=56
r
,
1718                      "Status is %d - not sending interim response", r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus);
1719        return : pass=0
r
eturn;
1720    }
1721
1722    /* if we send an interim response, we're no longer in a state of
1723     * expecting one.  Also, this could feasibly be in a subrequest,
1724     * so we need to propagate the fact that we responded.
1725     */
1726    for : true=0, false=0
f
or (rr : server/protocol.c line=1710 column=18
r
= : pass=0
=
 r : server/protocol.c line=1706 column=56
r
rr : server/protocol.c line=1710 column=18
r
!= : true=0, false=0
!
= NULL; rr : server/protocol.c line=1710 column=18
r
= : pass=0
=
 rr : server/protocol.c line=1710 column=18
r
r-> : enter=0, leave=0
-
>main : include/httpd.h line=793 column=18
m
ain) {
1727        rr : server/protocol.c line=1710 column=18
r
r-> : enter=0, leave=0
-
>expecting_100 : include/httpd.h line=886 column=14
e
xpecting_100 = : enter=0, leave=0
=
 0;
1728    }
1729
1730    status_line : server/protocol.c line=1709 column=11
s
tatus_line = : pass=0
=
 apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, AP_SERVER_PROTOCOL, " ", r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>status_line : include/httpd.h line=820 column=17
s
tatus_line, CRLF, NULL);
1731    ap_xlate_proto_to_ascii(status_line, strlen(status_line));
1732
1733    x : server/protocol.c line=1708 column=13
x
.f : server/protocol.c line=1695 column=18
f
 = : pass=0
=
 r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=1099 column=25
o
utput_filters;
1734    x : server/protocol.c line=1708 column=13
x
.bb : server/protocol.c line=1696 column=25
b
= : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
1735
1736    ap_fputs(x : server/protocol.c line=1708 column=13
x
.f : server/protocol.c line=1695 column=18
f
x : server/protocol.c line=1708 column=13
x
.bb : server/protocol.c line=1696 column=25
b
b, status_line : server/protocol.c line=1709 column=11
s
tatus_line);
1737    if : true=0, false=0
i
f (send_headers : server/protocol.c line=1706 column=63
s
end_headers) {
1738        apr_table_do : enter=0, leave=0

apr_table_do : /usr/include/apr-1/apr_tables.h line=382 column=25
a
pr_table_do(send_header : server/protocol.c line=1699 column=12
s
end_header, &x : server/protocol.c line=1708 column=13
x
r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, NULL);
1739        apr_table_clear : enter=0, leave=0

apr_table_clear : /usr/include/apr-1/apr_tables.h line=249 column=19
a
pr_table_clear(r : server/protocol.c line=1706 column=56
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out);
1740    }
1741    ap_fputs(x : server/protocol.c line=1708 column=13
x
.f : server/protocol.c line=1695 column=18
f
x : server/protocol.c line=1708 column=13
x
.bb : server/protocol.c line=1696 column=25
b
b, CRLF);
1742    ap_fflush : enter=0, leave=0

ap_fflush : include/util_filter.h line=514 column=26
a
p_fflush(x : server/protocol.c line=1708 column=13
x
.f : server/protocol.c line=1695 column=18
f
x : server/protocol.c line=1708 column=13
x
.bb : server/protocol.c line=1696 column=25
b
b);
1743    apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(x : server/protocol.c line=1708 column=13
x
.bb : server/protocol.c line=1696 column=25
b
b);
1744}
1745
1746AP_IMPLEMENT_HOOK_RUN_ALL(int,post_read_request,
1747                          (request_rec *r), (r : server/protocol.c line=1747 column=41
r
), OK, DECLINED)
1748AP_IMPLEMENT_HOOK_RUN_ALL(int,log_transaction,
1749                          (request_rec *r), (r : server/protocol.c line=1749 column=41
r
), OK, DECLINED)
1750AP_IMPLEMENT_HOOK_RUN_FIRST(const char *,http_scheme,
1751                            (const request_rec *r), (r : server/protocol.c line=1751 column=49
r
), NULL)
1752AP_IMPLEMENT_HOOK_RUN_FIRST(unsigned short,default_port,
1753                            (const request_rec *r), (r : server/protocol.c line=1753 column=49
r
), 0)
1754[EOF]


Generated by expcov