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

 Index  Statistics  Last 
Directory./server
Filenameutil_filter.c
ModifiedMon Aug 3 21:34:17 2009

Pass Half Fail Excluded Total
Function
7
25.93%
20
74.07%
0
0.00%
27
100%
Expressions
90
29.90%
211
70.10%
0
0.00%
301
100%
Conditions
9
14.52%
0
0.00%
53
85.48%
0
0.00%
62
100%
MC/DC
0
0.00%
17
100.00%
0
0.00%
17
100%
Branches

if
8
19.51%
1
2.44%
32
78.05%
0
0.00%
41
100%
for
4
57.14%
0
0.00%
3
42.86%
0
0.00%
7
100%
while
0
0.00%
0
0.00%
6
100.00%
0
0.00%
6
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#define APR_WANT_STRFUNC
18#include "apr_want.h"
19#include "apr_lib.h"
20#include "apr_hash.h"
21#include "apr_strings.h"
22
23#include "httpd.h"
24#include "http_log.h"
25#include "util_filter.h"
26
27/* NOTE: Apache's current design doesn't allow a pool to be passed thru,
28   so we depend on a global to hold the correct pool
29*/
30#define FILTER_POOL     apr_hook_global_pool : /usr/include/apr-1/apr_hooks.h line=210 column=37 apr_hook_global_pool
31#include "apr_hooks.h"   /* for apr_hook_global_pool */
32
33/*
34** This macro returns true/false if a given filter should be inserted BEFORE
35** another filter. This will happen when one of: 1) there isn't another
36** filter; 2) that filter has a higher filter type (class); 3) that filter
37** corresponds to a different request.
38*/
39#define INSERT_BEFORE(f, before_this) ((before_this) == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL \
40                           || : true=0, false=0
|
| (before_this)-> : enter=0, leave=0
-
>frec : include/util_filter.h line=265 column=22
f
rec-> : enter=0, leave=0
-
>ftype : include/util_filter.h line=239 column=20
f
type > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 (f)-> : enter=0, leave=0
-
>frec : include/util_filter.h line=265 column=22
f
rec-> : enter=0, leave=0
-
>ftype : include/util_filter.h line=239 column=20
f
type \
41                           || : true=0, false=0
|
| (before_this)-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= (f)-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
)
42
43/* Trie structure to hold the mapping from registered
44 * filter names to filters
45 */
46
47typedef struct filter_trie_node filter_trie_node;
48
49typedef struct {
50    int c;
51    filter_trie_node *child;
52} filter_trie_child_ptr;
53
54/* Each trie node has an array of pointers to its children.
55 * The array is kept in sorted order so that add_any_filter()
56 * can do a binary search
57 */
58struct filter_trie_node {
59    ap_filter_rec_t *frec;
60    filter_trie_child_ptr *children;
61    int nchildren;
62    int size;
63};
64
65#define TRIE_INITIAL_SIZE 4
66
67/* Link a trie node to its parent
68 */
69static void trie_node_link : call=181
t
rie_node_link(apr_pool_t *p, filter_trie_node *parent,
70                           filter_trie_node *child, int c)
71{
72    int i, j;
73
74    if : true=2, false=179
i
f (parent : server/util_filter.c line=69 column=61
p
arent-> : enter=181, leave=181
-
>nchildren : server/util_filter.c line=61 column=9
n
children == : true=2, false=179
=
parent : server/util_filter.c line=69 column=61
p
arent-> : enter=181, leave=181
-
>size : server/util_filter.c line=62 column=9
s
ize) {
75        filter_trie_child_ptr *new;
76        parent : server/util_filter.c line=69 column=61
p
arent-> : enter=2, leave=2
-
>size : server/util_filter.c line=62 column=9
s
ize *= : enter=2, leave=2
*
= 2;
77        new : server/util_filter.c line=75 column=32
n
ew = : pass=2
=
 (filter_trie_child_ptr *)apr_palloc : enter=2, leave=2

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : server/util_filter.c line=69 column=40
p
parent : server/util_filter.c line=69 column=61
p
arent-> : enter=2, leave=2
-
>size : server/util_filter.c line=62 column=9
s
ize * : pass=2
*
78                                             sizeof(filter_trie_child_ptr));
79        memcpy : enter=2, leave=2

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(new : server/util_filter.c line=75 column=32
n
ew, parent : server/util_filter.c line=69 column=61
p
arent-> : enter=2, leave=2
-
>children : server/util_filter.c line=60 column=28
c
hildren, parent : server/util_filter.c line=69 column=61
p
arent-> : enter=2, leave=2
-
>nchildren : server/util_filter.c line=61 column=9
n
children * : pass=2
*
80               sizeof(filter_trie_child_ptr));
81        parent : server/util_filter.c line=69 column=61
p
arent-> : enter=2, leave=2
-
>children : server/util_filter.c line=60 column=28
c
hildren = : enter=2, leave=2
=
 new : server/util_filter.c line=75 column=32
n
ew;
82    }
83
84    for : true=130, false=85
f
or (i : server/util_filter.c line=72 column=9
i
 = : pass=181
=
 0; i : server/util_filter.c line=72 column=9
i
 < : true=130, false=85
<
 parent : server/util_filter.c line=69 column=61
p
arent-> : enter=215, leave=215
-
>nchildren : server/util_filter.c line=61 column=9
n
children; i : server/util_filter.c line=72 column=9
i
++ : pass=34
+
+) {
85        if : true=7, false=123
i
f (c : server/util_filter.c line=70 column=57
c
 == : true=7, false=123
=
parent : server/util_filter.c line=69 column=61
p
arent-> : enter=130, leave=130
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=130, leave=130
[
i : server/util_filter.c line=72 column=9
i
].c : server/util_filter.c line=50 column=9
c
) {
86            return : pass=7
r
eturn;
87        }
88        else if : true=89, false=34
i
f (c : server/util_filter.c line=70 column=57
c
 < : true=89, false=34
<
 parent : server/util_filter.c line=69 column=61
p
arent-> : enter=123, leave=123
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=123, leave=123
[
i : server/util_filter.c line=72 column=9
i
].c : server/util_filter.c line=50 column=9
c
) {
89            break : pass=89
b
reak;
90        }
91    }
92    for : true=127, false=174
f
or (j : server/util_filter.c line=72 column=12
j
 = : pass=174
=
 parent : server/util_filter.c line=69 column=61
p
arent-> : enter=174, leave=174
-
>nchildren : server/util_filter.c line=61 column=9
n
children; j : server/util_filter.c line=72 column=12
j
 > : true=127, false=174
>
 i : server/util_filter.c line=72 column=9
i
j : server/util_filter.c line=72 column=12
j
-- : pass=127
-
-) {
93        parent : server/util_filter.c line=69 column=61
p
arent-> : enter=127, leave=127
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=127, leave=127
[
j : server/util_filter.c line=72 column=12
j
].c : server/util_filter.c line=50 column=9
c
 = : pass=127
=
 parent : server/util_filter.c line=69 column=61
p
arent-> : enter=127, leave=127
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=127, leave=127
[
j : server/util_filter.c line=72 column=12
j
 - : pass=127
-
 1].c : server/util_filter.c line=50 column=9
c
;
94        parent : server/util_filter.c line=69 column=61
p
arent-> : enter=127, leave=127
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=127, leave=127
[
j : server/util_filter.c line=72 column=12
j
].child : server/util_filter.c line=51 column=23
c
hild = : pass=127
=
 parent : server/util_filter.c line=69 column=61
p
arent-> : enter=127, leave=127
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=127, leave=127
[
j : server/util_filter.c line=72 column=12
j
 - : pass=127
-
 1].child : server/util_filter.c line=51 column=23
c
hild;
95    }
96    parent : server/util_filter.c line=69 column=61
p
arent-> : enter=174, leave=174
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=174, leave=174
[
i : server/util_filter.c line=72 column=9
i
].c : server/util_filter.c line=50 column=9
c
 = : pass=174
=
 c : server/util_filter.c line=70 column=57
c
;
97    parent : server/util_filter.c line=69 column=61
p
arent-> : enter=174, leave=174
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=174, leave=174
[
i : server/util_filter.c line=72 column=9
i
].child : server/util_filter.c line=51 column=23
c
hild = : pass=174
=
 child : server/util_filter.c line=70 column=46
c
hild;
98
99    parent : server/util_filter.c line=69 column=61
p
arent-> : enter=174, leave=174
-
>nchildren : server/util_filter.c line=61 column=9
n
children++ : pass=174
+
+;
100}
101
102/* Allocate a new node for a trie.
103 * If parent is non-NULL, link the new node under the parent node with
104 * key 'c' (or, if an existing child node matches, return that one)
105 */
106static filter_trie_node *trie_node_alloc : call=100
t
rie_node_alloc(apr_pool_t *p,
107                                         filter_trie_node *parent, char c)
108{
109    filter_trie_node *new_node;
110    if : true=98, false=2
i
f (parent : server/util_filter.c line=107 column=60
p
arent) {
111        int i;
112        for : true=55, false=85
f
or (i : server/util_filter.c line=111 column=13
i
 = : pass=98
=
 0; i : server/util_filter.c line=111 column=13
i
 < : true=55, false=85
<
 parent : server/util_filter.c line=107 column=60
p
arent-> : enter=140, leave=140
-
>nchildren : server/util_filter.c line=61 column=9
n
children; i : server/util_filter.c line=111 column=13
i
++ : pass=42
+
+) {
113            if : true=8, false=47
i
f (c : server/util_filter.c line=107 column=73
c
 == : true=8, false=47
=
parent : server/util_filter.c line=107 column=60
p
arent-> : enter=55, leave=55
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=55, leave=55
[
i : server/util_filter.c line=111 column=13
i
].c : server/util_filter.c line=50 column=9
c
) {
114                return : pass=8
r
eturn parent : server/util_filter.c line=107 column=60
p
arent-> : enter=8, leave=8
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=8, leave=8
[
i : server/util_filter.c line=111 column=13
i
].child : server/util_filter.c line=51 column=23
c
hild;
115            }
116            else if : true=5, false=42
i
f (c : server/util_filter.c line=107 column=73
c
 < : true=5, false=42
<
 parent : server/util_filter.c line=107 column=60
p
arent-> : enter=47, leave=47
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=47, leave=47
[
i : server/util_filter.c line=111 column=13
i
].c : server/util_filter.c line=50 column=9
c
) {
117                break : pass=5
b
reak;
118            }
119        }
120        new_node : server/util_filter.c line=109 column=23
n
ew_node = : pass=90
=
121            (filter_trie_node *)apr_palloc : enter=90, leave=90

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : server/util_filter.c line=106 column=54
p
, sizeof(filter_trie_node));
122        trie_node_link : enter=90, leave=90

trie_node_link : server/util_filter.c line=69 column=13
t
rie_node_link(p : server/util_filter.c line=106 column=54
p
parent : server/util_filter.c line=107 column=60
p
arent, new_node : server/util_filter.c line=109 column=23
n
ew_node, c : server/util_filter.c line=107 column=73
c
);
123    }
124    else { /* No parent node */
125        new_node : server/util_filter.c line=109 column=23
n
ew_node = : pass=2
=
 (filter_trie_node *)apr_palloc : enter=2, leave=2

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : server/util_filter.c line=106 column=54
p
,
126                                                  sizeof(filter_trie_node));
127    }
128
129    new_node : server/util_filter.c line=109 column=23
n
ew_node-> : enter=92, leave=92
-
>frec : server/util_filter.c line=59 column=22
f
rec = : enter=92, leave=92
=
 NULL;
130    new_node : server/util_filter.c line=109 column=23
n
ew_node-> : enter=92, leave=92
-
>nchildren : server/util_filter.c line=61 column=9
n
children = : enter=92, leave=92
=
 0;
131    new_node : server/util_filter.c line=109 column=23
n
ew_node-> : enter=92, leave=92
-
>size : server/util_filter.c line=62 column=9
s
ize = : enter=92, leave=92
=
 TRIE_INITIAL_SIZE;
132    new_node : server/util_filter.c line=109 column=23
n
ew_node-> : enter=92, leave=92
-
>children : server/util_filter.c line=60 column=28
c
hildren = : enter=92, leave=92
=
 (filter_trie_child_ptr *)apr_palloc : enter=92, leave=92

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : server/util_filter.c line=106 column=54
p
,
133                             new_node : server/util_filter.c line=109 column=23
n
ew_node-> : enter=92, leave=92
-
>size : server/util_filter.c line=62 column=9
s
ize * : pass=92
*
 sizeof(filter_trie_child_ptr));
134    return : pass=92
r
eturn new_node : server/util_filter.c line=109 column=23
n
ew_node;
135}
136
137static filter_trie_node *registered_output_filters = NULL;
138static filter_trie_node *registered_input_filters = NULL;
139
140
141static apr_status_t filter_cleanup : call=11
f
ilter_cleanup(void *ctx)
142{
143    registered_output_filters : server/util_filter.c line=137 column=26
r
egistered_output_filters = : pass=11
=
 NULL;
144    registered_input_filters : server/util_filter.c line=138 column=26
r
egistered_input_filters = : pass=11
=
 NULL;
145    return : pass=11
r
eturn APR_SUCCESS;
146}
147
148static ap_filter_rec_t *get_filter_handle : call=0
g
et_filter_handle(const char *name,
149                                          const filter_trie_node *filter_set)
150{
151    if : true=0, false=0
i
f (filter_set : server/util_filter.c line=149 column=67
f
ilter_set) {
152        const char *n;
153        const filter_trie_node *node;
154
155        node : server/util_filter.c line=153 column=33
n
ode = : pass=0
=
 filter_set : server/util_filter.c line=149 column=67
f
ilter_set;
156        for : true=0, false=0
f
or (n : server/util_filter.c line=152 column=21
n
 = : pass=0
=
 name : server/util_filter.c line=148 column=55
n
ame; * dereference : enter=0, leave=0
*
n : server/util_filter.c line=152 column=21
n
n : server/util_filter.c line=152 column=21
n
++ : pass=0
+
+) {
157            int start, end;
158            start : server/util_filter.c line=157 column=17
s
tart = : pass=0
=
 0;
159            end : server/util_filter.c line=157 column=24
e
nd = : pass=0
=
 node : server/util_filter.c line=153 column=33
n
ode-> : enter=0, leave=0
-
>nchildren : server/util_filter.c line=61 column=9
n
children - : pass=0
-
 1;
160            while : true=0, false=0
w
hile (end : server/util_filter.c line=157 column=24
e
nd >= : true=0, false=0
>
start : server/util_filter.c line=157 column=17
s
tart) {
161                int middle = (end : server/util_filter.c line=157 column=24
e
nd + : pass=0
+
 start : server/util_filter.c line=157 column=17
s
tart) / : pass=0
/
 2;
162                char ch = node : server/util_filter.c line=153 column=33
n
ode-> : enter=0, leave=0
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=0, leave=0
[
middle : server/util_filter.c line=161 column=21
m
iddle].c : server/util_filter.c line=50 column=9
c
;
163                if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
n : server/util_filter.c line=152 column=21
n
 == : true=0, false=0
=
ch : server/util_filter.c line=162 column=22
c
h) {
164                    node : server/util_filter.c line=153 column=33
n
ode = : pass=0
=
 node : server/util_filter.c line=153 column=33
n
ode-> : enter=0, leave=0
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=0, leave=0
[
middle : server/util_filter.c line=161 column=21
m
iddle].child : server/util_filter.c line=51 column=23
c
hild;
165                    break : pass=0
b
reak;
166                }
167                else if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
n : server/util_filter.c line=152 column=21
n
 < : true=0, false=0
<
 ch : server/util_filter.c line=162 column=22
c
h) {
168                    end : server/util_filter.c line=157 column=24
e
nd = : pass=0
=
 middle : server/util_filter.c line=161 column=21
m
iddle - : pass=0
-
 1;
169                }
170                else {
171                    start : server/util_filter.c line=157 column=17
s
tart = : pass=0
=
 middle : server/util_filter.c line=161 column=21
m
iddle + : pass=0
+
 1;
172                }
173            }
174            if : true=0, false=0
i
f (end : server/util_filter.c line=157 column=24
e
nd < : true=0, false=0
<
 start : server/util_filter.c line=157 column=17
s
tart) {
175                node : server/util_filter.c line=153 column=33
n
ode = : pass=0
=
 NULL;
176                break : pass=0
b
reak;
177            }
178        }
179
180        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

node : server/util_filter.c line=153 column=33
nTF
ode && : true=0, false=0
&
node : server/util_filter.c line=153 column=33
n
odeMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>frec : server/util_filter.c line=59 column=22
f
rec) {
181            return : pass=0
r
eturn node : server/util_filter.c line=153 column=33
n
ode-> : enter=0, leave=0
-
>frec : server/util_filter.c line=59 column=22
f
rec;
182        }
183    }
184    return : pass=0
r
eturn NULL;
185}
186
187AP_DECLARE(ap_filter_rec_t *)ap_get_output_filter_handle : call=0
a
p_get_output_filter_handle(const char *name)
188{
189    return : pass=0
r
eturn get_filter_handle : enter=0, leave=0

get_filter_handle : server/util_filter.c line=148 column=25
g
et_filter_handle(name : server/util_filter.c line=187 column=70
n
ame, registered_output_filters : server/util_filter.c line=137 column=26
r
egistered_output_filters);
190}
191
192AP_DECLARE(ap_filter_rec_t *)ap_get_input_filter_handle : call=0
a
p_get_input_filter_handle(const char *name)
193{
194    return : pass=0
r
eturn get_filter_handle : enter=0, leave=0

get_filter_handle : server/util_filter.c line=148 column=25
g
et_filter_handle(name : server/util_filter.c line=192 column=69
n
ame, registered_input_filters : server/util_filter.c line=138 column=26
r
egistered_input_filters);
195}
196
197static ap_filter_rec_t *register_filter : call=11
r
egister_filter(const char *name,
198                            ap_filter_func filter_func,
199                            ap_init_filter_func filter_init,
200                            ap_filter_type ftype,
201                            filter_trie_node **reg_filter_set)
202{
203    ap_filter_rec_t *frec;
204    char *normalized_name;
205    const char *n;
206    filter_trie_node *node;
207
208    if : true=2, false=9
i
f (! : true=2, false=9
!
* dereference : enter=11, leave=11
*
reg_filter_set : server/util_filter.c line=201 column=48
r
eg_filter_set) {
209        *reg_filter_set : server/util_filter.c line=201 column=48
r
eg_filter_set = : enter=2, leave=2
=
 trie_node_alloc : enter=2, leave=2

trie_node_alloc : server/util_filter.c line=106 column=26
t
rie_node_alloc(FILTER_POOL, NULL, 0);
210    }
211
212    normalized_name : server/util_filter.c line=204 column=11
n
ormalized_name = : pass=11
=
 apr_pstrdup : enter=11, leave=11

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(FILTER_POOL, name : server/util_filter.c line=197 column=53
n
ame);
213    ap_str_tolower : enter=11, leave=11

ap_str_tolower : include/httpd.h line=1739 column=18
a
p_str_tolower(normalized_name : server/util_filter.c line=204 column=11
n
ormalized_name);
214
215    node : server/util_filter.c line=206 column=23
n
ode = : pass=11
=
 * dereference : enter=11, leave=11
*
reg_filter_set : server/util_filter.c line=201 column=48
r
eg_filter_set;
216    for : true=98, false=11
f
or (n : server/util_filter.c line=205 column=17
n
 = : pass=11
=
 normalized_name : server/util_filter.c line=204 column=11
n
ormalized_name; * dereference : enter=109, leave=109
*
n : server/util_filter.c line=205 column=17
n
n : server/util_filter.c line=205 column=17
n
++ : pass=98
+
+) {
217        filter_trie_node *child = trie_node_alloc : enter=98, leave=98

trie_node_alloc : server/util_filter.c line=106 column=26
t
rie_node_alloc(FILTER_POOL, node : server/util_filter.c line=206 column=23
n
ode, * dereference : enter=98, leave=98
*
n : server/util_filter.c line=205 column=17
n
);
218        if : true=91, false=7
i
f (apr_isalpha(* dereference : enter=98, leave=98
*
n : server/util_filter.c line=205 column=17
n
)) {
219            trie_node_link : enter=91, leave=91

trie_node_link : server/util_filter.c line=69 column=13
t
rie_node_link(FILTER_POOL, node : server/util_filter.c line=206 column=23
n
ode, child : server/util_filter.c line=217 column=27
c
hild, apr_toupper(* dereference : enter=91, leave=91
*
n : server/util_filter.c line=205 column=17
n
));
220        }
221        node : server/util_filter.c line=206 column=23
n
ode = : pass=98
=
 child : server/util_filter.c line=217 column=27
c
hild;
222    }
223    if : true=0, false=11
i
f (node : server/util_filter.c line=206 column=23
n
ode-> : enter=11, leave=11
-
>frec : server/util_filter.c line=59 column=22
f
rec) {
224        frec : server/util_filter.c line=203 column=22
f
rec = : pass=0
=
 node : server/util_filter.c line=206 column=23
n
ode-> : enter=0, leave=0
-
>frec : server/util_filter.c line=59 column=22
f
rec;
225    }
226    else {
227        frec : server/util_filter.c line=203 column=22
f
rec = : pass=11
=
 apr_pcalloc(FILTER_POOL, sizeof(*frec));
228        node : server/util_filter.c line=206 column=23
n
ode-> : enter=11, leave=11
-
>frec : server/util_filter.c line=59 column=22
f
rec = : enter=11, leave=11
=
 frec : server/util_filter.c line=203 column=22
f
rec;
229        frec : server/util_filter.c line=203 column=22
f
rec-> : enter=11, leave=11
-
>name : include/util_filter.h line=219 column=17
n
ame = : enter=11, leave=11
=
 normalized_name : server/util_filter.c line=204 column=11
n
ormalized_name;
230    }
231    frec : server/util_filter.c line=203 column=22
f
rec-> : enter=11, leave=11
-
>filter_func : include/util_filter.h line=222 column=20
f
ilter_func = : enter=11, leave=11
=
 filter_func : server/util_filter.c line=198 column=44
f
ilter_func;
232    frec : server/util_filter.c line=203 column=22
f
rec-> : enter=11, leave=11
-
>filter_init_func : include/util_filter.h line=232 column=25
f
ilter_init_func = : enter=11, leave=11
=
 filter_init : server/util_filter.c line=199 column=49
f
ilter_init;
233    frec : server/util_filter.c line=203 column=22
f
rec-> : enter=11, leave=11
-
>ftype : include/util_filter.h line=239 column=20
f
type = : enter=11, leave=11
=
 ftype : server/util_filter.c line=200 column=44
f
type;
234
235    apr_pool_cleanup_register : enter=11, leave=11

apr_pool_cleanup_register : /usr/include/apr-1/apr_pools.h line=603 column=19
a
pr_pool_cleanup_register(FILTER_POOL, NULL, filter_cleanup : server/util_filter.c line=141 column=21
f
ilter_cleanup,
236                              apr_pool_cleanup_null : /usr/include/apr-1/apr_pools.h line=682 column=34 apr_pool_cleanup_null);
237    return : pass=11
r
eturn frec : server/util_filter.c line=203 column=22
f
rec;
238}
239
240AP_DECLARE(ap_filter_rec_t *) ap_register_input_filter : call=2
a
p_register_input_filter(const char *name,
241                                          ap_in_filter_func filter_func,
242                                          ap_init_filter_func filter_init,
243                                          ap_filter_type ftype)
244{
245    ap_filter_func f;
246    f : server/util_filter.c line=245 column=20
f
.in_func : include/util_filter.h line=147 column=23
i
n_func = : pass=2
=
 filter_func : server/util_filter.c line=241 column=61
f
ilter_func;
247    return : pass=2
r
eturn register_filter : enter=2, leave=2

register_filter : server/util_filter.c line=197 column=25
r
egister_filter(name : server/util_filter.c line=240 column=68
n
ame, f : server/util_filter.c line=245 column=20
f
filter_init : server/util_filter.c line=242 column=63
f
ilter_init, ftype : server/util_filter.c line=243 column=58
f
type,
248                           &registered_input_filters : server/util_filter.c line=138 column=26
r
egistered_input_filters);
249}
250
251/* Prepare to make this a #define in 2.2 */
252AP_DECLARE(ap_filter_rec_t *) ap_register_output_filter : call=9
a
p_register_output_filter(const char *name,
253                                           ap_out_filter_func filter_func,
254                                           ap_init_filter_func filter_init,
255                                           ap_filter_type ftype)
256{
257    return : pass=9
r
eturn ap_register_output_filter_protocol : enter=9, leave=9

ap_register_output_filter_protocol : include/util_filter.h line=375 column=31
a
p_register_output_filter_protocol(name : server/util_filter.c line=252 column=69
n
ame, filter_func : server/util_filter.c line=253 column=63
f
ilter_func,
258                                              filter_init : server/util_filter.c line=254 column=64
f
ilter_init, ftype : server/util_filter.c line=255 column=59
f
type, 0) ;
259}
260AP_DECLARE(ap_filter_rec_t *) ap_register_output_filter_protocol : call=9
a
p_register_output_filter_protocol(
261                                           const char *name,
262                                           ap_out_filter_func filter_func,
263                                           ap_init_filter_func filter_init,
264                                           ap_filter_type ftype,
265                                           unsigned int proto_flags)
266{
267    ap_filter_rec_t* ret ;
268    ap_filter_func f;
269    f : server/util_filter.c line=268 column=20
f
.out_func : include/util_filter.h line=146 column=24
o
ut_func = : pass=9
=
 filter_func : server/util_filter.c line=262 column=63
f
ilter_func;
270    ret : server/util_filter.c line=267 column=22
r
et = : pass=9
=
 register_filter : enter=9, leave=9

register_filter : server/util_filter.c line=197 column=25
r
egister_filter(name : server/util_filter.c line=261 column=56
n
ame, f : server/util_filter.c line=268 column=20
f
filter_init : server/util_filter.c line=263 column=64
f
ilter_init, ftype : server/util_filter.c line=264 column=59
f
type,
271                          &registered_output_filters : server/util_filter.c line=137 column=26
r
egistered_output_filters);
272    ret : server/util_filter.c line=267 column=22
r
et-> : enter=9, leave=9
-
>proto_flags : include/util_filter.h line=251 column=18
p
roto_flags = : enter=9, leave=9
=
 proto_flags : server/util_filter.c line=265 column=57
p
roto_flags ;
273    return : pass=9
r
eturn ret : server/util_filter.c line=267 column=22
r
et ;
274}
275
276static ap_filter_t *add_any_filter_handle : call=0
a
dd_any_filter_handle(ap_filter_rec_t *frec, void *ctx,
277                                          request_rec *r, conn_rec *c,
278                                          ap_filter_t **r_filters,
279                                          ap_filter_t **p_filters,
280                                          ap_filter_t **c_filters)
281{
282    apr_pool_t* p = r : server/util_filter.c line=277 column=56
r
 conditional operator : true=0, false=0
?
 r : server/util_filter.c line=277 column=56
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool : c : server/util_filter.c line=277 column=69
c
-> : enter=0, leave=0
-
>pool : include/httpd.h line=1047 column=17
p
ool;
283    ap_filter_t *f = apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : server/util_filter.c line=282 column=17
p
, sizeof(*f));
284    ap_filter_t **outf;
285
286    if : true=0, false=0
i
f (frec : server/util_filter.c line=276 column=60
f
rec-> : enter=0, leave=0
-
>ftype : include/util_filter.h line=239 column=20
f
type < : true=0, false=0
<
 AP_FTYPE_PROTOCOL : include/util_filter.h line=170 column=5
A
P_FTYPE_PROTOCOL) {
287        if : true=0, false=0
i
f (r : server/util_filter.c line=277 column=56
r
) {
288            outf : server/util_filter.c line=284 column=19
o
utf = : pass=0
=
 r_filters : server/util_filter.c line=278 column=57
r
_filters;
289        }
290        else {
291            ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
292                      "a content filter was added without a request: %s", frec : server/util_filter.c line=276 column=60
f
rec-> : enter=0, leave=0
-
>name : include/util_filter.h line=219 column=17
n
ame);
293            return : pass=0
r
eturn NULL;
294        }
295    }
296    else if : true=0, false=0
i
f (frec : server/util_filter.c line=276 column=60
f
rec-> : enter=0, leave=0
-
>ftype : include/util_filter.h line=239 column=20
f
type < : true=0, false=0
<
 AP_FTYPE_CONNECTION : include/util_filter.h line=182 column=5
A
P_FTYPE_CONNECTION) {
297        if : true=0, false=0
i
f (r : server/util_filter.c line=277 column=56
r
) {
298            outf : server/util_filter.c line=284 column=19
o
utf = : pass=0
=
 p_filters : server/util_filter.c line=279 column=57
p
_filters;
299        }
300        else {
301            ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
302                         "a protocol filter was added without a request: %s", frec : server/util_filter.c line=276 column=60
f
rec-> : enter=0, leave=0
-
>name : include/util_filter.h line=219 column=17
n
ame);
303            return : pass=0
r
eturn NULL;
304        }
305    }
306    else {
307        outf : server/util_filter.c line=284 column=19
o
utf = : pass=0
=
 c_filters : server/util_filter.c line=280 column=57
c
_filters;
308    }
309
310    f : server/util_filter.c line=283 column=18
f
-> : enter=0, leave=0
-
>frec : include/util_filter.h line=265 column=22
f
rec = : enter=0, leave=0
=
 frec : server/util_filter.c line=276 column=60
f
rec;
311    f : server/util_filter.c line=283 column=18
f
-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx = : enter=0, leave=0
=
 ctx : server/util_filter.c line=276 column=72
c
tx;
312    f : server/util_filter.c line=283 column=18
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
 = : enter=0, leave=0
=
 r : server/util_filter.c line=277 column=56
r
;
313    f : server/util_filter.c line=283 column=18
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
 = : enter=0, leave=0
=
 c : server/util_filter.c line=277 column=69
c
;
314    f : server/util_filter.c line=283 column=18
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext = : enter=0, leave=0
=
 NULL;
315
316    if : true=0, false=0
i
f (INSERT_BEFORE(f : server/util_filter.c line=283 column=18
f
* dereference : enter=0, leave=0
*
outf : server/util_filter.c line=284 column=19
o
utf)) {
317        f : server/util_filter.c line=283 column=18
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext = : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
outf : server/util_filter.c line=284 column=19
o
utf;
318
319        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
outf : server/util_filter.c line=284 column=19
o
utf) {
320            ap_filter_t *first = NULL;
321
322            if : true=0, false=0
i
f (r : server/util_filter.c line=277 column=56
r
) {
323                /* If we are adding our first non-connection filter,
324                 * Then don't try to find the right location, it is
325                 * automatically first.
326                 */
327                if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
r_filters : server/util_filter.c line=278 column=57
r
_filters != : true=0, false=0
!
* dereference : enter=0, leave=0
*
c_filters : server/util_filter.c line=280 column=57
c
_filters) {
328                    first : server/util_filter.c line=320 column=26
f
irst = : pass=0
=
 * dereference : enter=0, leave=0
*
r_filters : server/util_filter.c line=278 column=57
r
_filters;
329                    while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0

first : server/util_filter.c line=320 column=26
fTF
irst && : true=0, false=0
&
& (first : server/util_filter.c line=320 column=26
f
irst-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= (* dereference : enter=0, leave=0
*
outf : server/util_filter.c line=284 column=19
o
utf))) {
330                        first : server/util_filter.c line=320 column=26
f
irst = : pass=0
=
 first : server/util_filter.c line=320 column=26
f
irst-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext;
331                    }
332                }
333            }
334            if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

first : server/util_filter.c line=320 column=26
fTF
irst && : true=0, false=0
&
first : server/util_filter.c line=320 column=26
f
irst != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= (* dereference : enter=0, leave=0
*
outf : server/util_filter.c line=284 column=19
o
utf)) {
335                first : server/util_filter.c line=320 column=26
f
irst-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext = : enter=0, leave=0
=
 f : server/util_filter.c line=283 column=18
f
;
336            }
337        }
338        *outf : server/util_filter.c line=284 column=19
o
utf = : enter=0, leave=0
=
 f : server/util_filter.c line=283 column=18
f
;
339    }
340    else {
341        ap_filter_t *fscan = * dereference : enter=0, leave=0
*
outf : server/util_filter.c line=284 column=19
o
utf;
342        while : true=0, false=0
w
hile (! : true=0, false=0
!
INSERT_BEFORE(f : server/util_filter.c line=283 column=18
f
fscan : server/util_filter.c line=341 column=22
f
scan-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext))
343            fscan : server/util_filter.c line=341 column=22
f
scan = : pass=0
=
 fscan : server/util_filter.c line=341 column=22
f
scan-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext;
344
345        f : server/util_filter.c line=283 column=18
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext = : enter=0, leave=0
=
 fscan : server/util_filter.c line=341 column=22
f
scan-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext;
346        fscan : server/util_filter.c line=341 column=22
f
scan-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext = : enter=0, leave=0
=
 f : server/util_filter.c line=283 column=18
f
;
347    }
348
349    if : true=0, false=0
i
f (frec : server/util_filter.c line=276 column=60
f
rec-> : enter=0, leave=0
-
>ftype : include/util_filter.h line=239 column=20
f
type < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 AP_FTYPE_CONNECTION : include/util_filter.h line=182 column=5
A
P_FTYPE_CONNECTION && : true=0, false=0
&
& (* dereference : enter=0, leave=0
*
r_filters : server/util_filter.c line=278 column=57
r
_filters == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
* dereference : enter=0, leave=0
*
c_filters : server/util_filter.c line=280 column=57
c
_filters)) {
350        *r_filters : server/util_filter.c line=278 column=57
r
_filters = : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
p_filters : server/util_filter.c line=279 column=57
p
_filters;
351    }
352    return : pass=0
r
eturn f : server/util_filter.c line=283 column=18
f
;
353}
354
355static ap_filter_t *add_any_filter : call=0
a
dd_any_filter(const char *name, void *ctx,
356                                   request_rec *r, conn_rec *c,
357                                   const filter_trie_node *reg_filter_set,
358                                   ap_filter_t **r_filters,
359                                   ap_filter_t **p_filters,
360                                   ap_filter_t **c_filters)
361{
362    if : true=0, false=0
i
f (reg_filter_set : server/util_filter.c line=357 column=60
r
eg_filter_set) {
363        const char *n;
364        const filter_trie_node *node;
365
366        node : server/util_filter.c line=364 column=33
n
ode = : pass=0
=
 reg_filter_set : server/util_filter.c line=357 column=60
r
eg_filter_set;
367        for : true=0, false=0
f
or (n : server/util_filter.c line=363 column=21
n
 = : pass=0
=
 name : server/util_filter.c line=355 column=48
n
ame; * dereference : enter=0, leave=0
*
n : server/util_filter.c line=363 column=21
n
n : server/util_filter.c line=363 column=21
n
++ : pass=0
+
+) {
368            int start, end;
369            start : server/util_filter.c line=368 column=17
s
tart = : pass=0
=
 0;
370            end : server/util_filter.c line=368 column=24
e
nd = : pass=0
=
 node : server/util_filter.c line=364 column=33
n
ode-> : enter=0, leave=0
-
>nchildren : server/util_filter.c line=61 column=9
n
children - : pass=0
-
 1;
371            while : true=0, false=0
w
hile (end : server/util_filter.c line=368 column=24
e
nd >= : true=0, false=0
>
start : server/util_filter.c line=368 column=17
s
tart) {
372                int middle = (end : server/util_filter.c line=368 column=24
e
nd + : pass=0
+
 start : server/util_filter.c line=368 column=17
s
tart) / : pass=0
/
 2;
373                char ch = node : server/util_filter.c line=364 column=33
n
ode-> : enter=0, leave=0
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=0, leave=0
[
middle : server/util_filter.c line=372 column=21
m
iddle].c : server/util_filter.c line=50 column=9
c
;
374                if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
n : server/util_filter.c line=363 column=21
n
 == : true=0, false=0
=
ch : server/util_filter.c line=373 column=22
c
h) {
375                    node : server/util_filter.c line=364 column=33
n
ode = : pass=0
=
 node : server/util_filter.c line=364 column=33
n
ode-> : enter=0, leave=0
-
>children : server/util_filter.c line=60 column=28
c
hildren[] : enter=0, leave=0
[
middle : server/util_filter.c line=372 column=21
m
iddle].child : server/util_filter.c line=51 column=23
c
hild;
376                    break : pass=0
b
reak;
377                }
378                else if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
n : server/util_filter.c line=363 column=21
n
 < : true=0, false=0
<
 ch : server/util_filter.c line=373 column=22
c
h) {
379                    end : server/util_filter.c line=368 column=24
e
nd = : pass=0
=
 middle : server/util_filter.c line=372 column=21
m
iddle - : pass=0
-
 1;
380                }
381                else {
382                    start : server/util_filter.c line=368 column=17
s
tart = : pass=0
=
 middle : server/util_filter.c line=372 column=21
m
iddle + : pass=0
+
 1;
383                }
384            }
385            if : true=0, false=0
i
f (end : server/util_filter.c line=368 column=24
e
nd < : true=0, false=0
<
 start : server/util_filter.c line=368 column=17
s
tart) {
386                node : server/util_filter.c line=364 column=33
n
ode = : pass=0
=
 NULL;
387                break : pass=0
b
reak;
388            }
389        }
390
391        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

node : server/util_filter.c line=364 column=33
nTF
ode && : true=0, false=0
&
node : server/util_filter.c line=364 column=33
n
odeMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>frec : server/util_filter.c line=59 column=22
f
rec) {
392            return : pass=0
r
eturn add_any_filter_handle : enter=0, leave=0

add_any_filter_handle : server/util_filter.c line=276 column=21
a
dd_any_filter_handle(node : server/util_filter.c line=364 column=33
n
ode-> : enter=0, leave=0
-
>frec : server/util_filter.c line=59 column=22
f
rec, ctx : server/util_filter.c line=355 column=60
c
tx, r : server/util_filter.c line=356 column=49
r
c : server/util_filter.c line=356 column=62
c
r_filters : server/util_filter.c line=358 column=50
r
_filters,
393                                         p_filters : server/util_filter.c line=359 column=50
p
_filters, c_filters : server/util_filter.c line=360 column=50
c
_filters);
394        }
395    }
396
397    ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
398                 "an unknown filter was not added: %s", name : server/util_filter.c line=355 column=48
n
ame);
399    return : pass=0
r
eturn NULL;
400}
401
402AP_DECLARE(ap_filter_t *) ap_add_input_filter : call=0
a
p_add_input_filter(const char *name, void *ctx,
403                                              request_rec *r, conn_rec *c)
404{
405    return : pass=0
r
eturn add_any_filter : enter=0, leave=0

add_any_filter : server/util_filter.c line=355 column=21
a
dd_any_filter(name : server/util_filter.c line=402 column=59
n
ame, ctx : server/util_filter.c line=402 column=71
c
tx, r : server/util_filter.c line=403 column=60
r
c : server/util_filter.c line=403 column=73
c
registered_input_filters : server/util_filter.c line=138 column=26
r
egistered_input_filters,
406                          r : server/util_filter.c line=403 column=60
r
 conditional operator : true=0, false=0
?
 &r : server/util_filter.c line=403 column=60
r
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=992 column=25
i
nput_filters : NULL,
407                          r : server/util_filter.c line=403 column=60
r
 conditional operator : true=0, false=0
?
 &r : server/util_filter.c line=403 column=60
r
-> : enter=0, leave=0
-
>proto_input_filters : include/httpd.h line=999 column=25
p
roto_input_filters : NULL, &c : server/util_filter.c line=403 column=73
c
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=1097 column=25
i
nput_filters);
408}
409
410AP_DECLARE(ap_filter_t *) ap_add_input_filter_handle : call=0
a
p_add_input_filter_handle(ap_filter_rec_t *f,
411                                                     void *ctx,
412                                                     request_rec *r,
413                                                     conn_rec *c)
414{
415    return : pass=0
r
eturn add_any_filter_handle : enter=0, leave=0

add_any_filter_handle : server/util_filter.c line=276 column=21
a
dd_any_filter_handle(f : server/util_filter.c line=410 column=71
f
ctx : server/util_filter.c line=411 column=60
c
tx, r : server/util_filter.c line=412 column=67
r
c : server/util_filter.c line=413 column=64
c
r : server/util_filter.c line=412 column=67
r
 conditional operator : true=0, false=0
?
 &r : server/util_filter.c line=412 column=67
r
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=992 column=25
i
nput_filters : NULL,
416                                 r : server/util_filter.c line=412 column=67
r
 conditional operator : true=0, false=0
?
 &r : server/util_filter.c line=412 column=67
r
-> : enter=0, leave=0
-
>proto_input_filters : include/httpd.h line=999 column=25
p
roto_input_filters : NULL,
417                                 &c : server/util_filter.c line=413 column=64
c
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=1097 column=25
i
nput_filters);
418}
419
420AP_DECLARE(ap_filter_t *) ap_add_output_filter : call=0
a
p_add_output_filter(const char *name, void *ctx,
421                                               request_rec *r, conn_rec *c)
422{
423    return : pass=0
r
eturn add_any_filter : enter=0, leave=0

add_any_filter : server/util_filter.c line=355 column=21
a
dd_any_filter(name : server/util_filter.c line=420 column=60
n
ame, ctx : server/util_filter.c line=420 column=72
c
tx, r : server/util_filter.c line=421 column=61
r
c : server/util_filter.c line=421 column=74
c
registered_output_filters : server/util_filter.c line=137 column=26
r
egistered_output_filters,
424                          r : server/util_filter.c line=421 column=61
r
 conditional operator : true=0, false=0
?
 &r : server/util_filter.c line=421 column=61
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters : NULL,
425                          r : server/util_filter.c line=421 column=61
r
 conditional operator : true=0, false=0
?
 &r : server/util_filter.c line=421 column=61
r
-> : enter=0, leave=0
-
>proto_output_filters : include/httpd.h line=996 column=25
p
roto_output_filters : NULL, &c : server/util_filter.c line=421 column=74
c
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=1099 column=25
o
utput_filters);
426}
427
428AP_DECLARE(ap_filter_t *) ap_add_output_filter_handle : call=0
a
p_add_output_filter_handle(ap_filter_rec_t *f,
429                                                      void *ctx,
430                                                      request_rec *r,
431                                                      conn_rec *c)
432{
433    return : pass=0
r
eturn add_any_filter_handle : enter=0, leave=0

add_any_filter_handle : server/util_filter.c line=276 column=21
a
dd_any_filter_handle(f : server/util_filter.c line=428 column=72
f
ctx : server/util_filter.c line=429 column=61
c
tx, r : server/util_filter.c line=430 column=68
r
c : server/util_filter.c line=431 column=65
c
r : server/util_filter.c line=430 column=68
r
 conditional operator : true=0, false=0
?
 &r : server/util_filter.c line=430 column=68
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters : NULL,
434                                 r : server/util_filter.c line=430 column=68
r
 conditional operator : true=0, false=0
?
 &r : server/util_filter.c line=430 column=68
r
-> : enter=0, leave=0
-
>proto_output_filters : include/httpd.h line=996 column=25
p
roto_output_filters : NULL,
435                                 &c : server/util_filter.c line=431 column=65
c
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=1099 column=25
o
utput_filters);
436}
437
438static void remove_any_filter : call=0
r
emove_any_filter(ap_filter_t *f, ap_filter_t **r_filt, ap_filter_t **p_filt,
439                              ap_filter_t **c_filt)
440{
441    ap_filter_t **curr = r_filt : server/util_filter.c line=438 column=61
r
_filt conditional operator : true=0, false=0
?
 r_filt : server/util_filter.c line=438 column=61
r
_filt : c_filt : server/util_filter.c line=439 column=45
c
_filt;
442    ap_filter_t *fscan = * dereference : enter=0, leave=0
*
curr : server/util_filter.c line=441 column=19
c
urr;
443
444    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

p_filt : server/util_filter.c line=438 column=83
pTF
_filt && : true=0, false=0
&
* dereference : enter=0, leave=0
*
p_filt : server/util_filter.c line=438 column=83
p
_filt == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
f : server/util_filter.c line=438 column=44
f
)
445        *p_filt : server/util_filter.c line=438 column=83
p
_filt = : enter=0, leave=0
=
 (* dereference : enter=0, leave=0
*
p_filt : server/util_filter.c line=438 column=83
p
_filt)-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext;
446
447    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
curr : server/util_filter.c line=441 column=19
c
urr == : true=0, false=0
=
f : server/util_filter.c line=438 column=44
f
) {
448        *curr : server/util_filter.c line=441 column=19
c
urr = : enter=0, leave=0
=
 (* dereference : enter=0, leave=0
*
curr : server/util_filter.c line=441 column=19
c
urr)-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext;
449        return : pass=0
r
eturn;
450    }
451
452    while : true=0, false=0
w
hile (fscan : server/util_filter.c line=442 column=18
f
scan-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext != : true=0, false=0
!
f : server/util_filter.c line=438 column=44
f
) {
453        if : true=0, false=0
i
f (! : true=0, false=0
!
(fscan : server/util_filter.c line=442 column=18
f
scan = : pass=0
=
 fscan : server/util_filter.c line=442 column=18
f
scan-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext)) {
454            return : pass=0
r
eturn;
455        }
456    }
457
458    fscan : server/util_filter.c line=442 column=18
f
scan-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext = : enter=0, leave=0
=
 f : server/util_filter.c line=438 column=44
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext;
459}
460
461AP_DECLARE(void) ap_remove_input_filter : call=0
a
p_remove_input_filter(ap_filter_t *f)
462{
463    remove_any_filter : enter=0, leave=0

remove_any_filter : server/util_filter.c line=438 column=13
r
emove_any_filter(f : server/util_filter.c line=461 column=54
f
f : server/util_filter.c line=461 column=54
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
 conditional operator : true=0, false=0
?
 &f : server/util_filter.c line=461 column=54
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=992 column=25
i
nput_filters : NULL,
464                      f : server/util_filter.c line=461 column=54
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
 conditional operator : true=0, false=0
?
 &f : server/util_filter.c line=461 column=54
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>proto_input_filters : include/httpd.h line=999 column=25
p
roto_input_filters : NULL,
465                      &f : server/util_filter.c line=461 column=54
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>input_filters : include/httpd.h line=1097 column=25
i
nput_filters);
466}
467
468AP_DECLARE(void) ap_remove_output_filter : call=0
a
p_remove_output_filter(ap_filter_t *f)
469{
470    remove_any_filter : enter=0, leave=0

remove_any_filter : server/util_filter.c line=438 column=13
r
emove_any_filter(f : server/util_filter.c line=468 column=55
f
f : server/util_filter.c line=468 column=55
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
 conditional operator : true=0, false=0
?
 &f : server/util_filter.c line=468 column=55
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=990 column=25
o
utput_filters : NULL,
471                      f : server/util_filter.c line=468 column=55
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
 conditional operator : true=0, false=0
?
 &f : server/util_filter.c line=468 column=55
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>proto_output_filters : include/httpd.h line=996 column=25
p
roto_output_filters : NULL,
472                      &f : server/util_filter.c line=468 column=55
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>output_filters : include/httpd.h line=1099 column=25
o
utput_filters);
473}
474
475/*
476 * Read data from the next filter in the filter stack.  Data should be
477 * modified in the bucket brigade that is passed in.  The core allocates the
478 * bucket brigade, modules that wish to replace large chunks of data or to
479 * save data off to the side should probably create their own temporary
480 * brigade especially for that use.
481 */
482AP_DECLARE(apr_status_t) ap_get_brigade : call=0
a
p_get_brigade(ap_filter_t *next,
483                                        apr_bucket_brigade *bb,
484                                        ap_input_mode_t mode,
485                                        apr_read_type_e block,
486                                        apr_off_t readbytes)
487{
488    if : true=0, false=0
i
f (next : server/util_filter.c line=482 column=54
n
ext) {
489        return : pass=0
r
eturn in_func : enter=0, leave=0

next : server/util_filter.c line=482 column=54
in_func : include/util_filter.h line=147 column=23
n
ext-> : enter=0, leave=0
-
>frec : include/util_filter.h line=265 column=22
f
rec-> : enter=0, leave=0
-
>filter_func : include/util_filter.h line=222 column=20
f
ilter_func.in_func : include/util_filter.h line=147 column=23
i
n_func(next : server/util_filter.c line=482 column=54
n
ext, bb : server/util_filter.c line=483 column=61
b
b, mode : server/util_filter.c line=484 column=57
m
ode, block : server/util_filter.c line=485 column=57
b
lock,
490                                               readbytes : server/util_filter.c line=486 column=51
r
eadbytes);
491    }
492    return : pass=0
r
eturn AP_NOBODY_READ;
493}
494
495/* Pass the buckets to the next filter in the filter stack.  If the
496 * current filter is a handler, we should get NULL passed in instead of
497 * the current filter.  At that point, we can just call the first filter in
498 * the stack, or r->output_filters.
499 */
500AP_DECLARE(apr_status_t) ap_pass_brigade : call=0
a
p_pass_brigade(ap_filter_t *next,
501                                         apr_bucket_brigade *bb)
502{
503    if : true=0, false=0
i
f (next : server/util_filter.c line=500 column=55
n
ext) {
504        apr_bucket *e;
505        if : true=0, false=0
i
f ((e : server/util_filter.c line=504 column=21
e
 = : pass=0
MC/DC independently affect : true=0, false=0
=TF
 APR_BRIGADE_LAST(bb : server/util_filter.c line=501 column=62
b
b)) && : true=0, false=0
&
& APR_BUCKET_IS_EOS(e : server/util_filter.c line=504 column=21
e
&& : true=0, false=0
&
next : server/util_filter.c line=500 column=55
n
extMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>r : include/util_filter.h line=277 column=18
r
) {
506            /* This is only safe because HTTP_HEADER filter is always in
507             * the filter stack.   This ensures that there is ALWAYS a
508             * request-based filter that we can attach this to.  If the
509             * HTTP_FILTER is removed, and another filter is not put in its
510             * place, then handlers like mod_cgi, which attach their own
511             * EOS bucket to the brigade will be broken, because we will
512             * get two EOS buckets on the same request.
513             */
514            next : server/util_filter.c line=500 column=55
n
ext-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>eos_sent : include/httpd.h line=1002 column=9
e
os_sent = : enter=0, leave=0
=
 1;
515
516            /* remember the eos for internal redirects, too */
517            if : true=0, false=0
i
f (next : server/util_filter.c line=500 column=55
n
ext-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>prev : include/httpd.h line=789 column=18
p
rev) {
518                request_rec *prev = next : server/util_filter.c line=500 column=55
n
ext-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>prev : include/httpd.h line=789 column=18
p
rev;
519
520                while : true=0, false=0
w
hile (prev : server/util_filter.c line=518 column=30
p
rev) {
521                    prev : server/util_filter.c line=518 column=30
p
rev-> : enter=0, leave=0
-
>eos_sent : include/httpd.h line=1002 column=9
e
os_sent = : enter=0, leave=0
=
 1;
522                    prev : server/util_filter.c line=518 column=30
p
rev = : pass=0
=
 prev : server/util_filter.c line=518 column=30
p
rev-> : enter=0, leave=0
-
>prev : include/httpd.h line=789 column=18
p
rev;
523                }
524            }
525        }
526        return : pass=0
r
eturn out_func : enter=0, leave=0

next : server/util_filter.c line=500 column=55
out_func : include/util_filter.h line=146 column=24
n
ext-> : enter=0, leave=0
-
>frec : include/util_filter.h line=265 column=22
f
rec-> : enter=0, leave=0
-
>filter_func : include/util_filter.h line=222 column=20
f
ilter_func.out_func : include/util_filter.h line=146 column=24
o
ut_func(next : server/util_filter.c line=500 column=55
n
ext, bb : server/util_filter.c line=501 column=62
b
b);
527    }
528    return : pass=0
r
eturn AP_NOBODY_WROTE;
529}
530
531AP_DECLARE(apr_status_t) ap_save_brigade : call=0
a
p_save_brigade(ap_filter_t *f,
532                                         apr_bucket_brigade **saveto,
533                                         apr_bucket_brigade **b, apr_pool_t *p)
534{
535    apr_bucket *e;
536    apr_status_t rv, srv = APR_SUCCESS;
537
538    /* If have never stored any data in the filter, then we had better
539     * create an empty bucket brigade so that we can concat.
540     */
541    if : true=0, false=0
i
f (! : true=0, false=0
!
(* dereference : enter=0, leave=0
*
saveto : server/util_filter.c line=532 column=63
s
aveto)) {
542        *saveto : server/util_filter.c line=532 column=63
s
aveto = : 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(p : server/util_filter.c line=533 column=78
p
f : server/util_filter.c line=531 column=55
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
543    }
544
545    for : true=0, false=0
f
or (e : server/util_filter.c line=535 column=17
e
 = : pass=0
=
 APR_BRIGADE_FIRST(* dereference : enter=0, leave=0
*
b : server/util_filter.c line=533 column=63
b
);
546         e : server/util_filter.c line=535 column=17
e
 != : true=0, false=0
!
= APR_BRIGADE_SENTINEL(* dereference : enter=0, leave=0
*
b : server/util_filter.c line=533 column=63
b
);
547         e : server/util_filter.c line=535 column=17
e
 = : pass=0
=
 APR_BUCKET_NEXT(e : server/util_filter.c line=535 column=17
e
))
548    {
549        rv : server/util_filter.c line=536 column=18
r
= : pass=0
=
 apr_bucket_setaside(e : server/util_filter.c line=535 column=17
e
p : server/util_filter.c line=533 column=78
p
);
550
551        /* If the bucket type does not implement setaside, then
552         * (hopefully) morph it into a bucket type which does, and set
553         * *that* aside... */
554        if : true=0, false=0
i
f (rv : server/util_filter.c line=536 column=18
r
== : true=0, false=0
=
= APR_ENOTIMPL) {
555            const char *s;
556            apr_size_t n;
557
558            rv : server/util_filter.c line=536 column=18
r
= : pass=0
=
 apr_bucket_read(e : server/util_filter.c line=535 column=17
e
, &s : server/util_filter.c line=555 column=25
s
, &n : server/util_filter.c line=556 column=24
n
APR_BLOCK_READ : /usr/include/apr-1/apr_buckets.h line=58 column=5 APR_BLOCK_READ);
559            if : true=0, false=0
i
f (rv : server/util_filter.c line=536 column=18
r
== : true=0, false=0
=
= APR_SUCCESS) {
560                rv : server/util_filter.c line=536 column=18
r
= : pass=0
=
 apr_bucket_setaside(e : server/util_filter.c line=535 column=17
e
p : server/util_filter.c line=533 column=78
p
);
561            }
562        }
563
564        if : true=0, false=0
i
f (rv : server/util_filter.c line=536 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
565            srv : server/util_filter.c line=536 column=22
s
rv = : pass=0
=
 rv : server/util_filter.c line=536 column=18
r
v;
566            /* Return an error but still save the brigade if
567             * ->setaside() is really not implemented. */
568            if : true=0, false=0
i
f (rv : server/util_filter.c line=536 column=18
r
!= : true=0, false=0
!
= APR_ENOTIMPL) {
569                return : pass=0
r
eturn rv : server/util_filter.c line=536 column=18
r
v;
570            }
571        }
572    }
573    APR_BRIGADE_CONCAT(* dereference : enter=0, leave=0
*
saveto : server/util_filter.c line=532 column=63
s
aveto, * dereference : enter=0, leave=0
*
b : server/util_filter.c line=533 column=63
b
);
574    return : pass=0
r
eturn srv : server/util_filter.c line=536 column=22
s
rv;
575}
576
577AP_DECLARE_NONSTD(apr_status_t) ap_filter_flush : call=0
a
p_filter_flush(apr_bucket_brigade *bb,
578                                                void *ctx)
579{
580    ap_filter_t *f = ctx : server/util_filter.c line=578 column=55
c
tx;
581    apr_status_t rv;
582
583    rv : server/util_filter.c line=581 column=18
r
= : pass=0
=
 ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : server/util_filter.c line=500 column=26
a
p_pass_brigade(f : server/util_filter.c line=580 column=18
f
bb : server/util_filter.c line=577 column=69
b
b);
584
585    /* Before invocation of the flush callback, apr_brigade_write et
586     * al may place transient buckets in the brigade, which will fall
587     * out of scope after returning.  Empty the brigade here, to avoid
588     * issues with leaving such buckets in the brigade if some filter
589     * fails and leaves a non-empty brigade. */
590    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/util_filter.c line=577 column=69
b
b);
591
592    return : pass=0
r
eturn rv : server/util_filter.c line=581 column=18
r
v;
593}
594
595AP_DECLARE(apr_status_t) ap_fflush : call=0
a
p_fflush(ap_filter_t *f, apr_bucket_brigade *bb)
596{
597    apr_bucket *b;
598
599    b : server/util_filter.c line=597 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(f : server/util_filter.c line=595 column=49
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
600    APR_BRIGADE_INSERT_TAIL(bb : server/util_filter.c line=595 column=72
b
b, b : server/util_filter.c line=597 column=17
b
);
601    return : pass=0
r
eturn ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : server/util_filter.c line=500 column=26
a
p_pass_brigade(f : server/util_filter.c line=595 column=49
f
bb : server/util_filter.c line=595 column=72
b
b);
602}
603
604AP_DECLARE_NONSTD(apr_status_t) ap_fputstrs : call=0
a
p_fputstrs(ap_filter_t *f,
605                                            apr_bucket_brigade *bb, ...)
606{
607    va_list args;
608    apr_status_t rv;
609
610    va_start(args : server/util_filter.c line=607 column=13
a
rgs, bb : server/util_filter.c line=605 column=65
b
b);
611    rv : server/util_filter.c line=608 column=18
r
= : pass=0
=
 apr_brigade_vputstrs : enter=0, leave=0

apr_brigade_vputstrs : /usr/include/apr-1/apr_buckets.h line=796 column=27
a
pr_brigade_vputstrs(bb : server/util_filter.c line=605 column=65
b
b, ap_filter_flush : server/util_filter.c line=577 column=33
a
p_filter_flush, f : server/util_filter.c line=604 column=58
f
args : server/util_filter.c line=607 column=13
a
rgs);
612    va_end(args : server/util_filter.c line=607 column=13
a
rgs);
613    return : pass=0
r
eturn rv : server/util_filter.c line=608 column=18
r
v;
614}
615
616AP_DECLARE_NONSTD(apr_status_t) ap_fprintf : call=0
a
p_fprintf(ap_filter_t *f,
617                                           apr_bucket_brigade *bb,
618                                           const char *fmt,
619                                           ...)
620{
621    va_list args;
622    apr_status_t rv;
623
624    va_start(args : server/util_filter.c line=621 column=13
a
rgs, fmt : server/util_filter.c line=618 column=56
f
mt);
625    rv : server/util_filter.c line=622 column=18
r
= : pass=0
=
 apr_brigade_vprintf : enter=0, leave=0

apr_brigade_vprintf : /usr/include/apr-1/apr_buckets.h line=891 column=27
a
pr_brigade_vprintf(bb : server/util_filter.c line=617 column=64
b
b, ap_filter_flush : server/util_filter.c line=577 column=33
a
p_filter_flush, f : server/util_filter.c line=616 column=57
f
fmt : server/util_filter.c line=618 column=56
f
mt, args : server/util_filter.c line=621 column=13
a
rgs);
626    va_end(args : server/util_filter.c line=621 column=13
a
rgs);
627    return : pass=0
r
eturn rv : server/util_filter.c line=622 column=18
r
v;
628}
629AP_DECLARE(void) ap_filter_protocol : call=0
a
p_filter_protocol(ap_filter_t *f, unsigned int flags)
630{
631    f : server/util_filter.c line=629 column=50
f
-> : enter=0, leave=0
-
>frec : include/util_filter.h line=265 column=22
f
rec-> : enter=0, leave=0
-
>proto_flags : include/util_filter.h line=251 column=18
p
roto_flags = : enter=0, leave=0
=
 flags : server/util_filter.c line=629 column=66
f
lags ;
632}
633[EOF]


Generated by expcov