Main Page | Modules | Namespace List | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

mod_alias.c File Reference

#include "apr_strings.h"
#include "apr_lib.h"
#include "apr_want.h"
#include "ap_config.h"
#include "httpd.h"
#include "http_core.h"
#include "http_config.h"
#include "http_request.h"
#include "http_log.h"

Include dependency graph for mod_alias.c:

Go to the source code of this file.

Defines

#define APR_WANT_STRFUNC

Functions

static void * create_alias_config (apr_pool_t *p, server_rec *s)
static void * create_alias_dir_config (apr_pool_t *p, char *d)
static void * merge_alias_config (apr_pool_t *p, void *basev, void *overridesv)
static void * merge_alias_dir_config (apr_pool_t *p, void *basev, void *overridesv)
static int alias_matches (const char *uri, const char *alias_fakename)
static const char * add_alias_internal (cmd_parms *cmd, void *dummy, const char *f, const char *r, int use_regex)
static const char * add_alias (cmd_parms *cmd, void *dummy, const char *f, const char *r)
static const char * add_alias_regex (cmd_parms *cmd, void *dummy, const char *f, const char *r)
static const char * add_redirect_internal (cmd_parms *cmd, alias_dir_conf *dirconf, const char *arg1, const char *arg2, const char *arg3, int use_regex)
static const char * add_redirect (cmd_parms *cmd, void *dirconf, const char *arg1, const char *arg2, const char *arg3)
static const char * add_redirect2 (cmd_parms *cmd, void *dirconf, const char *arg1, const char *arg2)
static const char * add_redirect_regex (cmd_parms *cmd, void *dirconf, const char *arg1, const char *arg2, const char *arg3)
static char * try_alias_list (request_rec *r, apr_array_header_t *aliases, int doesc, int *status)
static int translate_alias_redir (request_rec *r)
static int fixup_redir (request_rec *r)
static void register_hooks (apr_pool_t *p)

Variables

module AP_MODULE_DECLARE_DATA alias_module
static const command_rec alias_cmds []


Define Documentation

#define APR_WANT_STRFUNC
 

Definition at line 28 of file mod_alias.c.


Function Documentation

static const char* add_alias cmd_parms cmd,
void *  dummy,
const char *  f,
const char *  r
[static]
 

Definition at line 157 of file mod_alias.c.

References add_alias_internal().

Here is the call graph for this function:

static const char* add_alias_internal cmd_parms cmd,
void *  dummy,
const char *  f,
const char *  r,
int  use_regex
[static]
 

Definition at line 101 of file mod_alias.c.

References alias_matches(), alias_module, alias_server_conf::aliases, ap_get_module_config, APLOG_MARK, APLOG_WARNING, cmd_parms_struct::cmd, conf, cmd_parms_struct::directive, apr_array_header_t::elts, entries, alias_entry::fake, ap_directive_t::filename, alias_entry::handler, cmd_parms_struct::info, ap_directive_t::line_num, server_rec::module_config, command_struct::name, NULL, p, cmd_parms_struct::pool, REG_EXTENDED, alias_entry::regexp, s, and cmd_parms_struct::server.

Referenced by add_alias(), and add_alias_regex().

Here is the call graph for this function:

static const char* add_alias_regex cmd_parms cmd,
void *  dummy,
const char *  f,
const char *  r
[static]
 

Definition at line 163 of file mod_alias.c.

References add_alias_internal().

Here is the call graph for this function:

static const char* add_redirect cmd_parms cmd,
void *  dirconf,
const char *  arg1,
const char *  arg2,
const char *  arg3
[static]
 

Definition at line 227 of file mod_alias.c.

References add_redirect_internal().

Here is the call graph for this function:

static const char* add_redirect2 cmd_parms cmd,
void *  dirconf,
const char *  arg1,
const char *  arg2
[static]
 

Definition at line 234 of file mod_alias.c.

References add_redirect_internal(), and NULL.

Here is the call graph for this function:

static const char* add_redirect_internal cmd_parms cmd,
alias_dir_conf dirconf,
const char *  arg1,
const char *  arg2,
const char *  arg3,
int  use_regex
[static]
 

Definition at line 169 of file mod_alias.c.

References alias_module, ap_get_module_config, ap_is_HTTP_REDIRECT, apr_isdigit, f, HTTP_GONE, HTTP_MOVED_PERMANENTLY, HTTP_MOVED_TEMPORARILY, HTTP_SEE_OTHER, cmd_parms_struct::info, int, server_rec::module_config, NULL, cmd_parms_struct::path, cmd_parms_struct::pool, r, alias_server_conf::redirects, alias_dir_conf::redirects, REG_EXTENDED, s, cmd_parms_struct::server, status, strcasecmp(), and url.

Referenced by add_redirect(), add_redirect2(), and add_redirect_regex().

Here is the call graph for this function:

static const char* add_redirect_regex cmd_parms cmd,
void *  dirconf,
const char *  arg1,
const char *  arg2,
const char *  arg3
[static]
 

Definition at line 240 of file mod_alias.c.

References add_redirect_internal().

Here is the call graph for this function:

static int alias_matches const char *  uri,
const char *  alias_fakename
[static]
 

Definition at line 274 of file mod_alias.c.

Referenced by add_alias_internal(), and try_alias_list().

static void* create_alias_config apr_pool_t p,
server_rec s
[static]
 

Definition at line 58 of file mod_alias.c.

References alias_server_conf::aliases, apr_pcalloc, and alias_server_conf::redirects.

static void* create_alias_dir_config apr_pool_t p,
char *  d
[static]
 

Definition at line 68 of file mod_alias.c.

References apr_pcalloc, and alias_dir_conf::redirects.

static int fixup_redir request_rec r  )  [static]
 

Definition at line 422 of file mod_alias.c.

References alias_module, ap_get_module_config, ap_is_HTTP_REDIRECT, ap_strchr, APLOG_DEBUG, APLOG_ERR, APLOG_MARK, DECLINED, HTTP_INTERNAL_SERVER_ERROR, NULL, alias_dir_conf::redirects, status, and try_alias_list().

Referenced by register_hooks().

Here is the call graph for this function:

static void* merge_alias_config apr_pool_t p,
void *  basev,
void *  overridesv
[static]
 

Definition at line 76 of file mod_alias.c.

References alias_server_conf::aliases, apr_array_append(), apr_pcalloc, base, and alias_server_conf::redirects.

Here is the call graph for this function:

static void* merge_alias_dir_config apr_pool_t p,
void *  basev,
void *  overridesv
[static]
 

Definition at line 88 of file mod_alias.c.

References apr_array_append(), apr_pcalloc, base, and alias_dir_conf::redirects.

Here is the call graph for this function:

static void register_hooks apr_pool_t p  )  [static]
 

Definition at line 466 of file mod_alias.c.

References APR_HOOK_MIDDLE, aszSucc, fixup_redir(), NULL, and translate_alias_redir().

Here is the call graph for this function:

static int translate_alias_redir request_rec r  )  [static]
 

Definition at line 392 of file mod_alias.c.

References alias_module, alias_server_conf::aliases, ap_get_module_config, ap_is_HTTP_REDIRECT, DECLINED, NULL, OK, alias_server_conf::redirects, sconf, status, and try_alias_list().

Referenced by register_hooks().

Here is the call graph for this function:

static char* try_alias_list request_rec r,
apr_array_header_t aliases,
int  doesc,
int status
[static]
 

Definition at line 313 of file mod_alias.c.

References alias_matches(), ap_escape_uri, AP_MAX_REG_MATCH, APR_URI_UNP_OMITQUERY, apr_array_header_t::elts, entries, alias_entry::fake, apr_uri_t::fragment, request_rec::handler, alias_entry::handler, nelts, request_rec::notes, NULL, p, request_rec::pool, apr_uri_t::query, alias_entry::real, alias_entry::redir_status, alias_entry::regexp, uri, and request_rec::uri.

Referenced by fixup_redir(), and translate_alias_redir().

Here is the call graph for this function:


Variable Documentation

const command_rec alias_cmds[] [static]
 

Initial value:

{
    AP_INIT_TAKE2("Alias", add_alias, NULL, RSRC_CONF,
                  "a fakename and a realname"),
    AP_INIT_TAKE2("ScriptAlias", add_alias, "cgi-script", RSRC_CONF,
                  "a fakename and a realname"),
    AP_INIT_TAKE23("Redirect", add_redirect, (void *) HTTP_MOVED_TEMPORARILY,
                   OR_FILEINFO,
                   "an optional status, then document to be redirected and "
                   "destination URL"),
    AP_INIT_TAKE2("AliasMatch", add_alias_regex, NULL, RSRC_CONF,
                  "a regular expression and a filename"),
    AP_INIT_TAKE2("ScriptAliasMatch", add_alias_regex, "cgi-script", RSRC_CONF,
                  "a regular expression and a filename"),
    AP_INIT_TAKE23("RedirectMatch", add_redirect_regex, 
                   (void *) HTTP_MOVED_TEMPORARILY, OR_FILEINFO,
                   "an optional status, then a regular expression and "
                   "destination URL"),
    AP_INIT_TAKE2("RedirectTemp", add_redirect2,
                  (void *) HTTP_MOVED_TEMPORARILY, OR_FILEINFO,
                  "a document to be redirected, then the destination URL"),
    AP_INIT_TAKE2("RedirectPermanent", add_redirect2, 
                  (void *) HTTP_MOVED_PERMANENTLY, OR_FILEINFO,
                  "a document to be redirected, then the destination URL"),
    {NULL}
}

Definition at line 247 of file mod_alias.c.

module AP_MODULE_DECLARE_DATA alias_module
 

Initial value:

Definition at line 475 of file mod_alias.c.

Referenced by add_alias_internal(), add_redirect_internal(), fixup_redir(), and translate_alias_redir().