📄 http_config.h
字号:
* @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 + -