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

 Index  Statistics  Last 
Directory./modules/metadata
Filenamemod_version.c
ModifiedWed Jul 12 12:38:44 2006

Pass Half Fail Excluded Total
Function
0
0.00%
3
100.00%
0
0.00%
3
100%
Expressions
0
0.00%
182
100.00%
0
0.00%
182
100%
Conditions
0
0.00%
0
0.00%
59
100.00%
0
0.00%
59
100%
MC/DC
0
0.00%
27
100.00%
0
0.00%
27
100%
Branches

if
0
0.00%
0
0.00%
27
100.00%
0
0.00%
27
100%
for
0
0.00%
0
0.00%
0
0.00%
0
0.00%
0
100%
while
0
0.00%
0
0.00%
1
100.00%
0
0.00%
1
100%
case
0
0.00%
0
0.00%
5
100.00%
0
0.00%
5
100%

1/* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements.  See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License.  You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 * mod_version.c
19 * Allow conditional configuration depending on the httpd version
20 *
21 * André Malo (nd/perlig.de), January 2004
22 *
23 * Some stuff coded here is heavily based on the core <IfModule>
24 * containers.
25 *
26 * The module makes the following confgurations possible:
27 *
28 * <IfVersion op major.minor.patch>
29 *     # conditional config here ...
30 *</IfVersion>
31 *
32 * where "op" is one of:
33 * = / ==       equal
34 * >            greater than
35 * >=           greater or equal
36 * <            less than
37 * <=           less or equal
38 *
39 * If minor version and patch level are omitted they are assumed to be 0.
40 *
41 * Alternatively you can match the whole version (including some vendor-added
42 * string of the CORE version, see ap_release.h) against a regular expression:
43 *
44 * <IfVersion op regex>
45 *     # conditional config here ...
46 *</IfVersion>
47 *
48 * where "op" is one of:
49 * = / ==       match; regex must be surrounded by slashes
50 * ~            match; regex MAY NOT be surrounded by slashes
51 *
52 * Note that all operators may be preceeded by an exclamation mark
53 * (without spaces) in order to reverse their meaning.
54 *
55 */
56
57#include "apr.h"
58#include "apr_strings.h"
59#include "apr_lib.h"
60
61#include "httpd.h"
62#include "http_config.h"
63#include "http_log.h"
64
65
66/* module structure */
67module AP_MODULE_DECLARE_DATA version_module;
68
69/* queried httpd version */
70static ap_version_t httpd_version;
71
72
73/*
74 * compare the supplied version with the core one
75 */
76static int compare_version : call=0
c
ompare_version(char *version_string, const char **error)
77{
78    char *p = version_string : modules/metadata/mod_version.c line=76 column=34
v
ersion_string, *ep;
79    int version[3] = {0, 0, 0};
80    int c = 0;
81
82    *error : modules/metadata/mod_version.c line=76 column=63
e
rror = : enter=0, leave=0
=
 "Version appears to be invalid. It must have the format "
83             "major[.minor[.patch]] where major, minor and patch are "
84             "numbers.";
85
86    if : true=0, false=0
i
f (! : true=0, false=0
!
apr_isdigit(* dereference : enter=0, leave=0
*
p : modules/metadata/mod_version.c line=78 column=11
p
)) {
87        return : pass=0
r
eturn 0;
88    }
89
90    /* parse supplied version */
91    ep : modules/metadata/mod_version.c line=78 column=32
e
= : pass=0
=
 version_string : modules/metadata/mod_version.c line=76 column=34
v
ersion_string + : pass=0
+
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(version_string : modules/metadata/mod_version.c line=76 column=34
v
ersion_string);
92    while : true=0, false=0
w
hile (p : modules/metadata/mod_version.c line=78 column=11
p
 <= : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
ep : modules/metadata/mod_version.c line=78 column=32
e
&& : true=0, false=0
&
c : modules/metadata/mod_version.c line=80 column=9
c
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 3) {
93        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
p : modules/metadata/mod_version.c line=78 column=11
p
 == : true=0, false=0
=
= '.') {
94            *p : modules/metadata/mod_version.c line=78 column=11
p
 = : enter=0, leave=0
=
 '\0';
95        }
96
97        if : true=0, false=0
i
f (! : true=0, false=0
!
* dereference : enter=0, leave=0
*
p : modules/metadata/mod_version.c line=78 column=11
p
) {
98            version : modules/metadata/mod_version.c line=79 column=9
v
ersion[c : modules/metadata/mod_version.c line=80 column=9
c
++ : pass=0
+
+] = : enter=0, leave=0
=
 atoi : enter=0, leave=0

atoi : /usr/include/stdlib.h line=148 column=12
a
toi(version_string : modules/metadata/mod_version.c line=76 column=34
v
ersion_string);
99            version_string : modules/metadata/mod_version.c line=76 column=34
v
ersion_string = : pass=0
=
 ++ : pass=0
+
+p : modules/metadata/mod_version.c line=78 column=11
p
;
100            continue : pass=0
c
ontinue;
101        }
102
103        if : true=0, false=0
i
f (! : true=0, false=0
!
apr_isdigit(* dereference : enter=0, leave=0
*
p : modules/metadata/mod_version.c line=78 column=11
p
)) {
104            break : pass=0
b
reak;
105        }
106
107        ++ : pass=0
+
+p : modules/metadata/mod_version.c line=78 column=11
p
;
108    }
109
110    if : true=0, false=0
i
f (p : modules/metadata/mod_version.c line=78 column=11
p
 < : true=0, false=0
<
 ep : modules/metadata/mod_version.c line=78 column=32
e
p) { /* syntax error */
111        return : pass=0
r
eturn 0;
112    }
113
114    *error : modules/metadata/mod_version.c line=76 column=63
e
rror = : enter=0, leave=0
=
 NULL;
115
116    if : true=0, false=0
i
f      (httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.major : include/httpd.h line=418 column=9
m
ajor > : true=0, false=0
>
 version : modules/metadata/mod_version.c line=79 column=9
v
ersion[] : enter=0, leave=0
[
0]) {
117        return : pass=0
r
eturn 1;
118    }
119    else if : true=0, false=0
i
f (httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.major : include/httpd.h line=418 column=9
m
ajor < : true=0, false=0
<
 version : modules/metadata/mod_version.c line=79 column=9
v
ersion[] : enter=0, leave=0
[
0]) {
120        return : pass=0
r
eturn -1;
121    }
122    else if : true=0, false=0
i
f (httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.minor : include/httpd.h line=419 column=9
m
inor > : true=0, false=0
>
 version : modules/metadata/mod_version.c line=79 column=9
v
ersion[] : enter=0, leave=0
[
1]) {
123        return : pass=0
r
eturn 1;
124    }
125    else if : true=0, false=0
i
f (httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.minor : include/httpd.h line=419 column=9
m
inor < : true=0, false=0
<
 version : modules/metadata/mod_version.c line=79 column=9
v
ersion[] : enter=0, leave=0
[
1]) {
126        return : pass=0
r
eturn -1;
127    }
128    else if : true=0, false=0
i
f (httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.patch : include/httpd.h line=420 column=9
p
atch > : true=0, false=0
>
 version : modules/metadata/mod_version.c line=79 column=9
v
ersion[] : enter=0, leave=0
[
2]) {
129        return : pass=0
r
eturn 1;
130    }
131    else if : true=0, false=0
i
f (httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.patch : include/httpd.h line=420 column=9
p
atch < : true=0, false=0
<
 version : modules/metadata/mod_version.c line=79 column=9
v
ersion[] : enter=0, leave=0
[
2]) {
132        return : pass=0
r
eturn -1;
133    }
134
135    /* seems to be the same */
136    return : pass=0
r
eturn 0;
137}
138
139/*
140 * match version against a regular expression
141 */
142static int match_version : call=0
m
atch_version(apr_pool_t *pool, char *version_string,
143                         const char **error)
144{
145    ap_regex_t *compiled;
146    const char *to_match;
147    int rc;
148
149    compiled : modules/metadata/mod_version.c line=145 column=17
c
ompiled = : pass=0
=
 ap_pregcomp : enter=0, leave=0

ap_pregcomp : include/httpd.h line=1684 column=26
a
p_pregcomp(pool : modules/metadata/mod_version.c line=142 column=38
p
ool, version_string : modules/metadata/mod_version.c line=142 column=50
v
ersion_string, AP_REG_EXTENDED);
150    if : true=0, false=0
i
f (! : true=0, false=0
!
compiled : modules/metadata/mod_version.c line=145 column=17
c
ompiled) {
151        *error : modules/metadata/mod_version.c line=143 column=39
e
rror = : enter=0, leave=0
=
 "Unable to compile regular expression";
152        return : pass=0
r
eturn 0;
153    }
154
155    *error : modules/metadata/mod_version.c line=143 column=39
e
rror = : enter=0, leave=0
=
 NULL;
156
157    to_match : modules/metadata/mod_version.c line=146 column=17
t
o_match = : pass=0
=
 apr_psprintf : enter=0, leave=0

apr_psprintf : /usr/include/apr-1/apr_strings.h line=170 column=28
a
pr_psprintf(pool : modules/metadata/mod_version.c line=142 column=38
p
ool, "%d.%d.%d%s",
158                            httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.major : include/httpd.h line=418 column=9
m
ajor,
159                            httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.minor : include/httpd.h line=419 column=9
m
inor,
160                            httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.patch : include/httpd.h line=420 column=9
p
atch,
161                            httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.add_string : include/httpd.h line=421 column=17
a
dd_string);
162
163    rc : modules/metadata/mod_version.c line=147 column=9
r
= : pass=0
=
 ! : true=0, false=0
!
ap_regexec : enter=0, leave=0

ap_regexec : include/ap_regex.h line=119 column=17
a
p_regexec(compiled : modules/metadata/mod_version.c line=145 column=17
c
ompiled, to_match : modules/metadata/mod_version.c line=146 column=17
t
o_match, 0, NULL, 0);
164
165    ap_pregfree : enter=0, leave=0

ap_pregfree : include/httpd.h line=1692 column=18
a
p_pregfree(pool : modules/metadata/mod_version.c line=142 column=38
p
ool, compiled : modules/metadata/mod_version.c line=145 column=17
c
ompiled);
166    return : pass=0
r
eturn rc : modules/metadata/mod_version.c line=147 column=9
r
c;
167}
168
169/*
170 * Implements the <IfVersion> container
171 */
172static const char *start_ifversion : call=0
s
tart_ifversion(cmd_parms *cmd, void *mconfig,
173                                   const char *arg1, const char *arg2,
174                                   const char *arg3)
175{
176    const char *endp;
177    int reverse = 0, done = 0, match = 0, compare;
178    const char *p, *error;
179    char c;
180
181    /* supplying one argument is possible, we assume an equality check then */
182    if : true=0, false=0
i
f (! : true=0, false=0
!
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2) {
183        arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2 = : pass=0
=
 arg1 : modules/metadata/mod_version.c line=173 column=48
a
rg1;
184        arg1 : modules/metadata/mod_version.c line=173 column=48
a
rg1 = : pass=0
=
 "=";
185    }
186
187    /* surrounding quotes without operator */
188    if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
arg3 : modules/metadata/mod_version.c line=174 column=48
a
rg3 && : true=0, false=0
&
* dereference : enter=0, leave=0
*
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '>' && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2[] : enter=0, leave=0
[
1]) {
189        arg3 : modules/metadata/mod_version.c line=174 column=48
a
rg3 = : pass=0
=
 ">";
190        arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2 = : pass=0
=
 arg1 : modules/metadata/mod_version.c line=173 column=48
a
rg1;
191        arg1 : modules/metadata/mod_version.c line=173 column=48
a
rg1 = : pass=0
=
 "=";
192    }
193
194    /* the third argument makes version surrounding quotes plus operator
195     * possible.
196     */
197    endp : modules/metadata/mod_version.c line=176 column=17
e
ndp = : pass=0
=
 arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2 + : pass=0
+
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2);
198    if : true=0, false=0
i
f (   endp : modules/metadata/mod_version.c line=176 column=17
e
ndp == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2
199        || : true=0, false=0
|
| (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
(MC/DC independently affect : true=0, false=0

arg3 : modules/metadata/mod_version.c line=174 column=48
aTF
rg3 && : true=0, false=0
&
* dereference : enter=0, leave=0
*
arg3 : modules/metadata/mod_version.c line=174 column=48
a
rg3 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '>' && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
arg3 : modules/metadata/mod_version.c line=174 column=48
a
rg3[] : enter=0, leave=0
[
1]) && : true=0, false=0
&
* dereference : enter=0, leave=0
*
-- : pass=0
-
-endp : modules/metadata/mod_version.c line=176 column=17
e
ndp != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '>')) {
200        return : pass=0
r
eturn apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>cmd : include/http_config.h line=305 column=24
c
md-> : enter=0, leave=0
-
>name : include/http_config.h line=204 column=17
n
ame,
201                           "> directive missing closing '>'", NULL);
202    }
203
204    p : modules/metadata/mod_version.c line=178 column=17
p
 = : pass=0
=
 arg1 : modules/metadata/mod_version.c line=173 column=48
a
rg1;
205    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
p : modules/metadata/mod_version.c line=178 column=17
p
 == : true=0, false=0
=
= '!') {
206        reverse : modules/metadata/mod_version.c line=177 column=9
r
everse = : pass=0
=
 1;
207        if : true=0, false=0
i
f (p : modules/metadata/mod_version.c line=178 column=17
p
[] : enter=0, leave=0
[
1]) {
208            ++ : pass=0
+
+p : modules/metadata/mod_version.c line=178 column=17
p
;
209        }
210    }
211
212    c : modules/metadata/mod_version.c line=179 column=10
c
 = : pass=0
=
 * dereference : enter=0, leave=0
*
p : modules/metadata/mod_version.c line=178 column=17
p
++ : pass=0
+
+;
213    if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
* dereference : enter=0, leave=0
*
p : modules/metadata/mod_version.c line=178 column=17
p
 || : true=0, false=0
|
| (* dereference : enter=0, leave=0
*
p : modules/metadata/mod_version.c line=178 column=17
p
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '=' && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
p : modules/metadata/mod_version.c line=178 column=17
p
[] : enter=0, leave=0
[
1] && : true=0, false=0
&
c : modules/metadata/mod_version.c line=179 column=10
c
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '~')) {
214        if : true=0, false=0
i
f (! : true=0, false=0
!
httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version.major : include/httpd.h line=418 column=9
m
ajor) {
215            ap_get_server_revision : enter=0, leave=0

ap_get_server_revision : include/httpd.h line=430 column=18
a
p_get_server_revision(&httpd_version : modules/metadata/mod_version.c line=70 column=21
h
ttpd_version);
216        }
217
218        done : modules/metadata/mod_version.c line=177 column=22
d
one = : pass=0
=
 1;
219        switch : pass=0
s
witch (c : modules/metadata/mod_version.c line=179 column=10
c
) {
220        case : true=0, false=0
c
ase '=':
221            /* normal comparison */
222            if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2 != : true=0, false=0
!
= '/') {
223                compare : modules/metadata/mod_version.c line=177 column=43
c
ompare = : pass=0
=
 compare_version : enter=0, leave=0

compare_version : modules/metadata/mod_version.c line=76 column=12
c
ompare_version(apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2,
224                                                         endp : modules/metadata/mod_version.c line=176 column=17
e
ndp- : pass=0
-
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2),
225                                          &error : modules/metadata/mod_version.c line=178 column=21
e
rror);
226                if : true=0, false=0
i
f (error : modules/metadata/mod_version.c line=178 column=21
e
rror) {
227                    return : pass=0
r
eturn error : modules/metadata/mod_version.c line=178 column=21
e
rror;
228                }
229
230                match : modules/metadata/mod_version.c line=177 column=32
m
atch = : pass=0
=
 ! : true=0, false=0
!
compare : modules/metadata/mod_version.c line=177 column=43
c
ompare;
231                break : pass=0
b
reak;
232            }
233
234            /* regexp otherwise */
235            if : true=0, false=0
i
f (endp : modules/metadata/mod_version.c line=176 column=17
e
ndp == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
++ : pass=0
+
+arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2 || : true=0, false=0
|
* dereference : enter=0, leave=0
*
-- : pass=0
-
-endp : modules/metadata/mod_version.c line=176 column=17
e
ndp != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '/') {
236                return : pass=0
r
eturn "Missing delimiting / of regular expression.";
237            }
238
239        case : true=0, false=0
c
ase '~':
240            /* regular expression */
241            match : modules/metadata/mod_version.c line=177 column=32
m
atch = : pass=0
=
 match_version : enter=0, leave=0

match_version : modules/metadata/mod_version.c line=142 column=12
m
atch_version(cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2,
242                                                            endp : modules/metadata/mod_version.c line=176 column=17
e
ndp- : pass=0
-
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2),
243                                  &error : modules/metadata/mod_version.c line=178 column=21
e
rror);
244            if : true=0, false=0
i
f (error : modules/metadata/mod_version.c line=178 column=21
e
rror) {
245                return : pass=0
r
eturn error : modules/metadata/mod_version.c line=178 column=21
e
rror;
246            }
247            break : pass=0
b
reak;
248
249        case : true=0, false=0
c
ase '<':
250            compare : modules/metadata/mod_version.c line=177 column=43
c
ompare = : pass=0
=
 compare_version : enter=0, leave=0

compare_version : modules/metadata/mod_version.c line=76 column=12
c
ompare_version(apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2,
251                                                     endp : modules/metadata/mod_version.c line=176 column=17
e
ndp- : pass=0
-
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2),
252                                      &error : modules/metadata/mod_version.c line=178 column=21
e
rror);
253            if : true=0, false=0
i
f (error : modules/metadata/mod_version.c line=178 column=21
e
rror) {
254                return : pass=0
r
eturn error : modules/metadata/mod_version.c line=178 column=21
e
rror;
255            }
256
257            match : modules/metadata/mod_version.c line=177 column=32
m
atch = : pass=0
=
 ((-1 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
compare : modules/metadata/mod_version.c line=177 column=43
c
ompare) || : true=0, false=0
|
| (MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
p : modules/metadata/mod_version.c line=178 column=17
p
 && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
compare : modules/metadata/mod_version.c line=177 column=43
c
ompare));
258            break : pass=0
b
reak;
259
260        case : true=0, false=0
c
ase '>':
261            compare : modules/metadata/mod_version.c line=177 column=43
c
ompare = : pass=0
=
 compare_version : enter=0, leave=0

compare_version : modules/metadata/mod_version.c line=76 column=12
c
ompare_version(apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2,
262                                                     endp : modules/metadata/mod_version.c line=176 column=17
e
ndp- : pass=0
-
arg2 : modules/metadata/mod_version.c line=173 column=66
a
rg2),
263                                      &error : modules/metadata/mod_version.c line=178 column=21
e
rror);
264            if : true=0, false=0
i
f (error : modules/metadata/mod_version.c line=178 column=21
e
rror) {
265                return : pass=0
r
eturn error : modules/metadata/mod_version.c line=178 column=21
e
rror;
266            }
267
268            match : modules/metadata/mod_version.c line=177 column=32
m
atch = : pass=0
=
 ((1 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
compare : modules/metadata/mod_version.c line=177 column=43
c
ompare) || : true=0, false=0
|
| (MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
p : modules/metadata/mod_version.c line=178 column=17
p
 && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
compare : modules/metadata/mod_version.c line=177 column=43
c
ompare));
269            break : pass=0
b
reak;
270
271        default : true=0, false=0
d
efault:
272            done : modules/metadata/mod_version.c line=177 column=22
d
one = : pass=0
=
 0;
273            break : pass=0
b
reak;
274        }
275    }
276
277    if : true=0, false=0
i
f (! : true=0, false=0
!
done : modules/metadata/mod_version.c line=177 column=22
d
one) {
278        return : pass=0
r
eturn apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, "unrecognized operator '", arg1 : modules/metadata/mod_version.c line=173 column=48
a
rg1, "'",
279                           NULL);
280    }
281
282    if : true=0, false=0
i
f ((! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
reverse : modules/metadata/mod_version.c line=177 column=9
r
everse && : true=0, false=0
&
MC/DC independently affect : true=0, false=0

match : modules/metadata/mod_version.c line=177 column=32
mTF
atch) || : true=0, false=0
|
| (MC/DC independently affect : true=0, false=0

reverse : modules/metadata/mod_version.c line=177 column=9
rTF
everse && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
match : modules/metadata/mod_version.c line=177 column=32
m
atch)) {
283        ap_directive_t *parent = NULL;
284        ap_directive_t *current = NULL;
285        const char *retval;
286
287        retval : modules/metadata/mod_version.c line=285 column=21
r
etval = : pass=0
=
 ap_build_cont_config : enter=0, leave=0

ap_build_cont_config : include/http_config.h line=669 column=26
a
p_build_cont_config(cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, cmd : modules/metadata/mod_version.c line=172 column=47
c
md-> : enter=0, leave=0
-
>temp_pool : include/http_config.h line=294 column=17
t
emp_pool, cmd : modules/metadata/mod_version.c line=172 column=47
c
md,
288                                      &current : modules/metadata/mod_version.c line=284 column=25
c
urrent, &parent : modules/metadata/mod_version.c line=283 column=25
p
arent, "<IfVersion");
289        *(ap_directive_t **)mconfig : modules/metadata/mod_version.c line=172 column=58
m
config = : enter=0, leave=0
=
 current : modules/metadata/mod_version.c line=284 column=25
c
urrent;
290        return : pass=0
r
eturn retval : modules/metadata/mod_version.c line=285 column=21
r
etval;
291    }
292
293    *(ap_directive_t **)mconfig : modules/metadata/mod_version.c line=172 column=58
m
config = : enter=0, leave=0
=
 NULL;
294    return : pass=0
r
eturn ap_soak_end_container : enter=0, leave=0

ap_soak_end_container : include/http_config.h line=656 column=26
a
p_soak_end_container(cmd : modules/metadata/mod_version.c line=172 column=47
c
md, "<IfVersion");
295}
296
297static const command_rec version_cmds[] = {
298    AP_INIT_TAKE123("<IfVersion", start_ifversion : modules/metadata/mod_version.c line=172 column=20
s
tart_ifversion, NULL, EXEC_ON_READ | : pass=0
|
 OR_ALL,
299                    "a comparison operator, a version (and a delimiter)"),
300    { NULL }
301};
302
303module AP_MODULE_DECLARE_DATA version_module =
304{
305    STANDARD20_MODULE_STUFF,
306    NULL,             /* dir config creater */
307    NULL,             /* dir merger --- default is to override */
308    NULL,             /* server config */
309    NULL,             /* merge server configs */
310    version_cmds : modules/metadata/mod_version.c line=297 column=26
v
ersion_cmds,     /* command apr_table_t */
311    NULL,             /* register hooks */
312};
313[EOF]


Generated by expcov