55#define APR_WANT_STRFUNC
67#if !defined(WIN32) && !defined(OS2) && !defined(NETWARE)
68#define HAVE_UNIX_SUEXEC
71#ifdef HAVE_UNIX_SUEXEC
80#ifndef DEFAULT_USER_DIR
81#define DEFAULT_USER_DIR NULL
88module AP_MODULE_DECLARE_DATA userdir_module;
122 base->globally_disabled;
147 return "UserDir requires an argument.";
192 "the public subdirectory in users' home directories, or "
193 "'disabled', or 'disabled username username...', or "
194 "'enabled username username...'"),
203 const char *user, *
dname;
211 if (
r->
uri[0] !=
'/' ||
r->
uri[1] !=
'~') {
231 if (
dname[-1] ==
'/') {
238 if (user[0] ==
'\0' ||
239 (user[1] ==
'.' && (user[2] ==
'\0' ||
240 (user[2] ==
'.' && user[3] ==
'\0')))) {
273#ifdef HAVE_DRIVE_LETTERS
346#ifdef HAVE_UNIX_SUEXEC
373 static const char *
const aszPre[]={
"mod_alias.c",
NULL };
374 static const char *
const aszSucc[]={
"mod_vhost_alias.c",
NULL };
377#ifdef HAVE_UNIX_SUEXEC
Symbol export macros and hook functions.
APR Standard Headers Support.
#define ap_get_module_config(v, m)
struct ap_conf_vector_t ap_conf_vector_t
#define AP_DECLARE_MODULE(foo)
#define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help)
void ap_hook_translate_name(ap_HOOK_translate_name_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
const char *const const char *const * aszSucc
const char *const * aszPre
#define HTTP_MOVED_TEMPORARILY
#define STANDARD20_MODULE_STUFF
char * ap_getword(apr_pool_t *p, const char **line, char stop)
void ap_set_context_info(request_rec *r, const char *prefix, const char *document_root)
#define ap_strchr_c(s, c)
char * ap_getword_conf(apr_pool_t *p, const char **line)
int ap_os_is_path_absolute(apr_pool_t *p, const char *dir)
int strcasecmp(const char *a, const char *b)
#define apr_pcalloc(p, size)
apr_size_t const char * filename
static const char * set_user_dir(cmd_parms *cmd, void *dummy, const char *arg)
static void register_hooks(apr_pool_t *p)
static void * merge_userdir_config(apr_pool_t *p, void *basev, void *overridesv)
static const command_rec userdir_cmds[]
static void * create_userdir_config(apr_pool_t *p, server_rec *s)
static ap_unix_identity_t * get_suexec_id_doer(const request_rec *r)
static int translate_userdir(request_rec *r)
A structure that represents the current request.
apr_table_t * headers_out
A structure to store information for each virtual server.
struct ap_conf_vector_t * module_config
apr_table_t * enabled_users
apr_table_t * disabled_users