bottleneck testcase based on rubbos
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / server / util_cfgtree.c
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 CORE_PRIVATE
18 #include "util_cfgtree.h"
19 #include <stdlib.h>
20
21 ap_directive_t *ap_add_node(ap_directive_t **parent, ap_directive_t *current, 
22                             ap_directive_t *toadd, int child)
23 {
24     if (current == NULL) {
25         /* we just started a new parent */
26         if (*parent != NULL) {
27             (*parent)->first_child = toadd;
28             toadd->parent = *parent;
29         }
30         if (child) {
31             /* First item in config file or container is a container */
32             *parent = toadd;
33             return NULL;
34         }
35         return toadd;
36     }
37     current->next = toadd;
38     toadd->parent = *parent;
39     if (child) {
40         /* switch parents, navigate into child */
41         *parent = toadd;
42         return NULL;
43     }
44     return toadd;
45 }
46
47