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