842ae4bd224140319ae7feec1872b93dfd491143fielding/* Licensed to the Apache Software Foundation (ASF) under one or more
842ae4bd224140319ae7feec1872b93dfd491143fielding * contributor license agreements. See the NOTICE file distributed with
842ae4bd224140319ae7feec1872b93dfd491143fielding * this work for additional information regarding copyright ownership.
842ae4bd224140319ae7feec1872b93dfd491143fielding * The ASF licenses this file to You under the Apache License, Version 2.0
842ae4bd224140319ae7feec1872b93dfd491143fielding * (the "License"); you may not use this file except in compliance with
842ae4bd224140319ae7feec1872b93dfd491143fielding * the License. You may obtain a copy of the License at
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * Unless required by applicable law or agreed to in writing, software
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * distributed under the License is distributed on an "AS IS" BASIS,
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * See the License for the specific language governing permissions and
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * limitations under the License.
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh * @brief Config Tree Package
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh * @defgroup APACHE_CORE_CONFIG_TREE Config Tree Package
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh * @ingroup APACHE_CORE_CONFIG
1075efe007e7af339bde09cbb175d4f4d676eeb5rpluemextern "C" {
742318b93e89c311f66b55f426c4d9cf2c14628bjim * @brief Structure used to build the config tree.
9d129b55f5a43abf43865c6b0eb6dd19bc22aba8ianh * The config tree only stores
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * the directives that will be active in the running server. Directives
f47c690c6fa01fa4334306be872da72fb9a3cdadsctemme * that contain other directions, such as <Directory ...> cause a sub-level
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * to be created, where the included directives are stored. The closing
f47c690c6fa01fa4334306be872da72fb9a3cdadsctemme * directive (</Directory>) is not stored in the tree.
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb /** The current directive */
742318b93e89c311f66b55f426c4d9cf2c14628bjim /** The arguments for the current directive, stored as a space
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * separated list */
f47c690c6fa01fa4334306be872da72fb9a3cdadsctemme /** The next directive node in the tree */
f47c690c6fa01fa4334306be872da72fb9a3cdadsctemme /** The first child node of this directive */
f47c690c6fa01fa4334306be872da72fb9a3cdadsctemme /** The parent node of this directive */
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb /** directive's module can store add'l data here */
9346b854b0827ae0645b456ffd2b4938f1e73c03gstein /* ### these may go away in the future, but are needed for now */
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb /** The name of the file this directive was found in */
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb /** The line number the directive was on */
d974a1624c0bb4f1c2e8b36fcf8ba1f12284ed8dsf /** A short-cut towards the last directive node in the tree.
d974a1624c0bb4f1c2e8b36fcf8ba1f12284ed8dsf * The value may not always be up-to-date but it always points to
d974a1624c0bb4f1c2e8b36fcf8ba1f12284ed8dsf * somewhere in the tree, nearer to the tail.
d974a1624c0bb4f1c2e8b36fcf8ba1f12284ed8dsf * This value is only set in the first node
69b3b88588e73701b14b6e925dedb339869fb12arbb * The root of the configuration tree
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * Add a node to the configuration tree.
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * @param parent The current parent node. If the added node is a first_child,
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb then this is changed to the current node
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * @param current The current node
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * @param toadd The node to add to the tree
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * @param child Is the node to add a child node
f6431843a765abbef9e79a26f4a5f077f0cef7dbrbb * @return the added node