29#define APR_WANT_STRFUNC
30#define APR_WANT_BYTEFUNC
44#if APR_HAVE_NETINET_IN_H
45#include <netinet/in.h>
61 int dl = strlen(domain);
62 int wl = strlen(
what);
78 return (domain[0] ==
'.' ||
what[wl -
dl - 1] ==
'.');
105 return "'require ip' requires an argument";
131 return apr_psprintf(
p,
"ip address '%s' appears to be invalid", w);
134 return apr_psprintf(
p,
"ip address '%s' appears to be invalid: %pm",
175 "access check of '%s' to %s failed, reason: unable to get the "
186 "authz_host authorize: require host: Can't "
187 "evaluate require expression: %s",
err);
203 "authz_host authorize: dubious empty "
204 "'Require host %s' with only comment",
t);
209 "authz_host authorize: ignoring comment in "
210 "'Require host %s'",
t);
241 "authz_host authorize: require forward-dns: "
242 "Can't evaluate require expression: %s",
err);
270 "access check for %s as '%s': %s",
281 "No sockaddr info for \"%s\"", w);
314 const char *expr_err =
NULL;
322 "Cannot parse expression in require line: ",
Symbol export macros and hook functions.
int int const char ** match
APR Standard Headers Support.
void ap_hook_post_config(ap_HOOK_post_config_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define AP_DECLARE_MODULE(foo)
void ap_hook_pre_config(ap_HOOK_pre_config_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
apr_status_t ap_register_auth_provider(apr_pool_t *pool, const char *provider_group, const char *provider_name, const char *provider_version, const void *provider, int type)
#define AP_AUTH_INTERNAL_PER_CONF
#define APR_STATUS_IS_EINVAL(s)
#define AP_EXPR_FLAG_STRING_RESULT
#define ap_expr_parse_cmd(cmd, expr, flags, err, lookup_fn)
const char * ap_expr_str_exec(request_rec *r, const ap_expr_info_t *expr, const char **err)
#define STANDARD20_MODULE_STUFF
#define ap_strchr_c(s, c)
char * ap_getword_conf(apr_pool_t *p, const char **line)
int strcasecmp(const char *a, const char *b)
#define APR_HASH_KEY_STRING
#define apr_pcalloc(p, size)
apr_int32_t apr_int32_t apr_int32_t err
const char * ap_get_useragent_host(request_rec *req, int type, int *str_is_ip)
#define REMOTE_DOUBLE_REV
Authentication and Authorization Extension for Apache.
#define AUTHZ_PROVIDER_VERSION
#define AUTHZ_PROVIDER_GROUP
static const char * ip_parse_config(cmd_parms *cmd, const char *require_line, const void **parsed_require_line)
static int authz_host_post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
static authz_status ip_check_authorization(request_rec *r, const char *require_line, const void *parsed_require_line)
static apr_hash_t * parsed_subnets
static int in_domain(const char *domain, const char *what)
static int authz_host_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp)
static const authz_provider authz_local_provider
static authz_status host_check_authorization(request_rec *r, const char *require_line, const void *parsed_require_line)
static const authz_provider authz_forward_dns_provider
static authz_status forward_dns_check_authorization(request_rec *r, const char *require_line, const void *parsed_require_line)
static apr_ipsubnet_t * localhost_v4
static void register_hooks(apr_pool_t *p)
static const authz_provider authz_host_provider
static authz_status local_check_authorization(request_rec *r, const char *require_line, const void *parsed_require_line)
static const char * host_parse_config(cmd_parms *cmd, const char *require_line, const void **parsed_require_line)
static const authz_provider authz_ip_provider
apr_sockaddr_t * local_addr
A structure that represents the current request.
apr_sockaddr_t * useragent_addr
A structure to keep track of authorization requirements.
A structure to store information for each virtual server.