⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 http_config.h

📁 Apache HTTP Server 是一个功能强大的灵活的与HTTP/1.1相兼容的web服务器.这里给出的是Apache HTTP服务器的源码。
💻 H
📖 第 1 页 / 共 3 页
字号:
     *  @param p The pool to use for all allocations.     *  @param base_conf The directory structure created for the parent directory.     *  @param new_conf The directory structure currently being processed.     *  @return The new per-directory structure created     */    void *(*merge_dir_config) (apr_pool_t *p, void *base_conf, void *new_conf);    /** Function to allow all modules to create per server configuration     *  structures.     *  @param p The pool to use for all allocations.     *  @param s The server currently being processed.     *  @return The per-server structure created     */    void *(*create_server_config) (apr_pool_t *p, server_rec *s);    /** Function to allow all modules to merge the per server configuration     *  structures for two servers.     *  @param p The pool to use for all allocations.     *  @param base_conf The directory structure created for the parent directory.     *  @param new_conf The directory structure currently being processed.     *  @return The new per-directory structure created     */    void *(*merge_server_config) (apr_pool_t *p, void *base_conf,                                   void *new_conf);    /** A command_rec table that describes all of the directives this module     * defines. */    const command_rec *cmds;    /** A hook to allow modules to hook other points in the request processing.     *  In this function, modules should call the ap_hook_*() functions to     *  register an interest in a specific step in processing the current     *  request.     *  @param p the pool to use for all allocations     */    void (*register_hooks) (apr_pool_t *p);};/** * @defgroup ModuleInit Module structure initializers * * Initializer for the first few module slots, which are only * really set up once we start running.  Note that the first two slots * provide a version check; this should allow us to deal with changes to * the API. The major number should reflect changes to the API handler table * itself or removal of functionality. The minor number should reflect * additions of functionality to the existing API. (the server can detect * an old-format module, and either handle it back-compatibly, or at least * signal an error). See src/include/ap_mmn.h for MMN version history. * @{ *//** The one used in Apache 1.3, which will deliberately cause an error */#define STANDARD_MODULE_STUFF	this_module_needs_to_be_ported_to_apache_2_0/** Use this in all standard modules */#define STANDARD20_MODULE_STUFF	MODULE_MAGIC_NUMBER_MAJOR, \				MODULE_MAGIC_NUMBER_MINOR, \				-1, \				__FILE__, \				NULL, \				NULL, \				MODULE_MAGIC_COOKIE, \                                NULL      /* rewrite args spot *//** Use this only in MPMs */#define MPM20_MODULE_STUFF	MODULE_MAGIC_NUMBER_MAJOR, \				MODULE_MAGIC_NUMBER_MINOR, \				-1, \				__FILE__, \				NULL, \				NULL, \				MODULE_MAGIC_COOKIE/** @} *//* CONFIGURATION VECTOR FUNCTIONS *//** configuration vector structure */typedef struct ap_conf_vector_t ap_conf_vector_t;/** * Generic accessors for other modules to get at their own module-specific * data * @param conf_vector The vector in which the modules configuration is stored. *        usually r->per_dir_config or s->module_config * @param m The module to get the data for. * @return The module-specific data */AP_DECLARE(void *) ap_get_module_config(const ap_conf_vector_t *cv,                                        const module *m);/** * Generic accessors for other modules to set at their own module-specific * data * @param conf_vector The vector in which the modules configuration is stored. *        usually r->per_dir_config or s->module_config * @param m The module to set the data for. * @param val The module-specific data to set */AP_DECLARE(void) ap_set_module_config(ap_conf_vector_t *cv, const module *m,                                      void *val);#if !defined(AP_DEBUG)#define ap_get_module_config(v,m)	\    (((void **)(v))[(m)->module_index])#define ap_set_module_config(v,m,val)	\    ((((void **)(v))[(m)->module_index]) = (val))#endif /* AP_DEBUG *//** * Generic command handling function for strings * @param cmd The command parameters for this directive * @param struct_ptr pointer into a given type * @param arg The argument to the directive * @return An error string or NULL on success */AP_DECLARE_NONSTD(const char *) ap_set_string_slot(cmd_parms *cmd,                                                    void *struct_ptr,                                                   const char *arg);/** * Generic command handling function for integers * @param cmd The command parameters for this directive * @param struct_ptr pointer into a given type * @param arg The argument to the directive * @return An error string or NULL on success */AP_DECLARE_NONSTD(const char *) ap_set_int_slot(cmd_parms *cmd,                                                 void *struct_ptr,                                                const char *arg);/** * Return true if the specified method is limited by being listed in * a <Limit> container, or by *not* being listed in a <LimiteExcept> * container. * * @param   method  Pointer to a string specifying the method to check. * @param   cmd     Pointer to the cmd_parms structure passed to the *                  directive handler. * @return  0 if the method is not limited in the current scope */AP_DECLARE(int) ap_method_is_limited(cmd_parms *cmd, const char *method);/** * Generic command handling function for strings, always sets the value * to a lowercase string * @param cmd The command parameters for this directive * @param struct_ptr pointer into a given type * @param arg The argument to the directive * @return An error string or NULL on success */AP_DECLARE_NONSTD(const char *) ap_set_string_slot_lower(cmd_parms *cmd,                                                          void *struct_ptr,                                                          const char *arg);/** * Generic command handling function for flags * @param cmd The command parameters for this directive * @param struct_ptr pointer into a given type * @param arg The argument to the directive (either 1 or 0) * @return An error string or NULL on success */AP_DECLARE_NONSTD(const char *) ap_set_flag_slot(cmd_parms *cmd,                                                  void *struct_ptr,                                                  int arg);/** * Generic command handling function for files * @param cmd The command parameters for this directive * @param struct_ptr pointer into a given type * @param arg The argument to the directive * @return An error string or NULL on success */AP_DECLARE_NONSTD(const char *) ap_set_file_slot(cmd_parms *cmd,                                                  void *struct_ptr,                                                  const char *arg);/** * Generic command handling function to respond with cmd->help as an error * @param cmd The command parameters for this directive * @param struct_ptr pointer into a given type * @param arg The argument to the directive * @return The cmd->help value as the error string * @tip This allows simple declarations such as; * <pre> *     AP_INIT_RAW_ARGS("Foo", ap_set_deprecated, NULL, OR_ALL,  *         "The Foo directive is no longer supported, use Bar"), * </pre> */AP_DECLARE_NONSTD(const char *) ap_set_deprecated(cmd_parms *cmd,                                                   void *struct_ptr,                                                   const char *arg);/** * For modules which need to read config files, open logs, etc. this returns * the canonical form of fname made absolute to ap_server_root. * @param p pool to allocate data from * @param fname The file name */AP_DECLARE(char *) ap_server_root_relative(apr_pool_t *p, const char *fname);/* Finally, the hook for dynamically loading modules in... *//** * Add a module to the server * @param m The module structure of the module to add * @param p The pool of the same lifetime as the module */AP_DECLARE(void) ap_add_module(module *m, apr_pool_t *p);/** * Remove a module from the server.  There are some caveats: * when the module is removed, its slot is lost so all the current * per-dir and per-server configurations are invalid. So we should * only ever call this function when you are invalidating almost * all our current data. I.e. when doing a restart. * @param m the module structure of the module to remove */AP_DECLARE(void) ap_remove_module(module *m);/** * Add a module to the chained modules list and the list of loaded modules * @param m The module structure of the module to add * @param p The pool with the same lifetime as the module */AP_DECLARE(void) ap_add_loaded_module(module *mod, apr_pool_t *p);/** * Remove a module fromthe chained modules list and the list of loaded modules * @param m the module structure of the module to remove */AP_DECLARE(void) ap_remove_loaded_module(module *mod);/** * Add a module to the list of loaded module based on the name of the * module * @param name The name of the module * @param p The pool valid for the lifetime of the module * @return 1 on success, 0 on failure */AP_DECLARE(int) ap_add_named_module(const char *name, apr_pool_t *p);/** * Find the name of the specified module * @param m The module to get the name for * @return the name of the module */AP_DECLARE(const char *) ap_find_module_name(module *m);/** * Find a module based on the name of the module * @param name the name of the module * @return the module structure if found, NULL otherwise */AP_DECLARE(module *) ap_find_linked_module(const char *name);/** * Open a ap_configfile_t as apr_file_t * @param ret_cfg open ap_configfile_t struct pointer * @param p The pool to allocate the structure from * @param name the name of the file to open */AP_DECLARE(apr_status_t) ap_pcfg_openfile(ap_configfile_t **ret_cfg,                                           apr_pool_t *p, const char *name);/** * Allocate a ap_configfile_t handle with user defined functions and params  * @param p The pool to allocate from * @param descr The name of the file * @param param The argument passed to getch/getstr/close * @param getc_func The getch function * @param gets_func The getstr function * @param close_func The close function */AP_DECLARE(ap_configfile_t *) ap_pcfg_open_custom(apr_pool_t *p,     const char *descr,    void *param,    int(*getc_func)(void*),    void *(*gets_func) (void *buf, size_t bufsiz, void *param),    int(*close_func)(void *param));/** * Read one line from open ap_configfile_t, strip LF, increase line number * @param buf place to store the line read * @param bufsize size of the buffer * @param cfp File to read from * @return 1 on success, 0 on failure */AP_DECLARE(int) ap_cfg_getline(char *buf, size_t bufsize, ap_configfile_t *cfp);/** * Read one char from open configfile_t, increase line number upon LF  * @param cfp The file to read from * @return the character read */AP_DECLARE(int) ap_cfg_getc(ap_configfile_t *cfp);/** * Detach from open ap_configfile_t, calling the close handler * @param cfp The file to close * @return 1 on sucess, 0 on failure */AP_DECLARE(int) ap_cfg_closefile(ap_configfile_t *cfp);/** * Read all data between the current <foo> and the matching </foo>.  All * of this data is forgotten immediately.   * @param cmd The cmd_parms to pass to the directives inside the container * @param directive The directive name to read until * @return Error string on failure, NULL on success */AP_DECLARE(const char *) ap_soak_end_container(cmd_parms *cmd, char *directive);/** * Read all data between the current <foo> and the matching </foo> and build * a config tree from it * @param p pool to allocate from * @param temp_pool Temporary pool to allocate from * @param parms The cmd_parms to pass to all directives read * @param current The current node in the tree * @param curr_parent The current parent node * @param orig_directive The directive to read until hit. * @return Error string on failure, NULL on success*/AP_DECLARE(const char *) ap_build_cont_config(apr_pool_t *p,                                               apr_pool_t *temp_pool,                                              cmd_parms *parms,                                              ap_directive_t **current,                                              ap_directive_t **curr_parent,                                              char *orig_directive);/** * Build a config tree from a config file * @param parms The cmd_parms to pass to all of the directives in the file * @param conf_pool The pconf pool * @param temp_pool The temporary pool * @param conftree Place to store the root node of the config tree * @return Error string on erro, NULL otherwise */AP_DECLARE(const char *) ap_build_config(cmd_parms *parms,                                         apr_pool_t *conf_pool,                                         apr_pool_t *temp_pool,                                         ap_directive_t **conftree);/** * Walk a config tree and setup the server's internal structures * @param conftree The config tree to walk

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -