Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
vhost.c File Reference

functions pertaining to virtual host addresses (configuration and run-time) More...

#include "apr.h"
#include "apr_strings.h"
#include "apr_lib.h"
#include "apr_version.h"
#include "apr_want.h"
#include "ap_config.h"
#include "httpd.h"
#include "http_config.h"
#include "http_log.h"
#include "http_vhost.h"
#include "http_protocol.h"
#include "http_core.h"
#include "http_main.h"

Go to the source code of this file.

Classes

struct  name_chain
 
struct  ipaddr_chain
 

Macros

#define APR_WANT_STRFUNC
 
#define APLOG_MODULE_INDEX   AP_CORE_MODULE_INDEX
 
#define IPHASH_TABLE_SIZE   256
 
#define IS_IN6_ANYADDR(ad)   (0)
 

Typedefs

typedef struct name_chain name_chain
 
typedef struct ipaddr_chain ipaddr_chain
 

Functions

static int vhost_check_config (apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
 
void ap_init_vhost_config (apr_pool_t *p)
 
static const charget_addresses (apr_pool_t *p, const char *w_, server_addr_rec ***paddr, apr_port_t default_port)
 
const charap_parse_vhost_addrs (apr_pool_t *p, const char *hostname, server_rec *s)
 
const charap_set_name_virtual_host (cmd_parms *cmd, void *dummy, const char *arg)
 
static APR_INLINE unsigned hash_inaddr (unsigned key)
 
static APR_INLINE unsigned hash_addr (struct apr_sockaddr_t *sa)
 
static ipaddr_chainnew_ipaddr_chain (apr_pool_t *p, server_rec *s, server_addr_rec *sar)
 
static name_chainnew_name_chain (apr_pool_t *p, server_rec *s, server_addr_rec *sar)
 
static APR_INLINE ipaddr_chainfind_ipaddr (apr_sockaddr_t *sa)
 
static ipaddr_chainfind_default_server (apr_port_t port)
 
static void dump_a_vhost (apr_file_t *f, ipaddr_chain *ic)
 
static void dump_vhost_config (apr_file_t *f)
 
static void add_name_vhost_config (apr_pool_t *p, server_rec *main_s, server_rec *s, server_addr_rec *sar, ipaddr_chain *ic)
 
void ap_fini_vhost_config (apr_pool_t *p, server_rec *main_s)
 
static apr_status_t fix_hostname_v6_literal (request_rec *r, char *host)
 
static apr_status_t fix_hostname_non_v6 (request_rec *r, char *host)
 
static apr_status_t strict_hostname_check (request_rec *r, char *host)
 
static int fix_hostname (request_rec *r, const char *host_header, unsigned http_conformance)
 
static int matches_aliases (server_rec *s, const char *host)
 
int ap_matches_request_vhost (request_rec *r, const char *host, apr_port_t port)
 
static int update_server_from_aliases (request_rec *r)
 
static void check_serverpath (request_rec *r)
 
static APR_INLINE const charconstruct_host_header (request_rec *r, int is_v6literal)
 
void ap_update_vhost_from_headers (request_rec *r)
 
int ap_update_vhost_from_headers_ex (request_rec *r, int require_match)
 
int ap_vhost_iterate_given_conn (conn_rec *conn, ap_vhost_iterate_conn_cb func_cb, void *baton)
 
void ap_update_vhost_given_ip (conn_rec *conn)
 

Variables

static ipaddr_chainiphash_table [256]
 
static ipaddr_chaindefault_list
 
static int config_error = 0
 

Detailed Description

functions pertaining to virtual host addresses (configuration and run-time)

Definition in file vhost.c.

Macro Definition Documentation

◆ APLOG_MODULE_INDEX

#define APLOG_MODULE_INDEX   AP_CORE_MODULE_INDEX

Definition at line 46 of file vhost.c.

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 28 of file vhost.c.

◆ IPHASH_TABLE_SIZE

#define IPHASH_TABLE_SIZE   256

Definition at line 84 of file vhost.c.

◆ IS_IN6_ANYADDR

#define IS_IN6_ANYADDR (   ad)    (0)

Definition at line 449 of file vhost.c.

Typedef Documentation

◆ ipaddr_chain

Definition at line 67 of file vhost.c.

◆ name_chain

Definition at line 56 of file vhost.c.

Function Documentation

◆ add_name_vhost_config()

static void add_name_vhost_config ( apr_pool_t p,
server_rec main_s,
server_rec s,
server_addr_rec sar,
ipaddr_chain ic 
)
static

Definition at line 539 of file vhost.c.

◆ ap_fini_vhost_config()

void ap_fini_vhost_config ( apr_pool_t p,
server_rec main_s 
)

Definition at line 573 of file vhost.c.

◆ ap_init_vhost_config()

void ap_init_vhost_config ( apr_pool_t p)

Definition at line 133 of file vhost.c.

◆ ap_matches_request_vhost()

int ap_matches_request_vhost ( request_rec r,
const char host,
apr_port_t  port 
)

Definition at line 953 of file vhost.c.

◆ ap_set_name_virtual_host()

const char * ap_set_name_virtual_host ( cmd_parms cmd,
void *  dummy,
const char arg 
)

Definition at line 270 of file vhost.c.

◆ ap_update_vhost_from_headers()

void ap_update_vhost_from_headers ( request_rec r)

Definition at line 1168 of file vhost.c.

◆ ap_update_vhost_from_headers_ex()

int ap_update_vhost_from_headers_ex ( request_rec r,
int  require_match 
)

Definition at line 1173 of file vhost.c.

◆ ap_update_vhost_given_ip()

void ap_update_vhost_given_ip ( conn_rec conn)

Definition at line 1280 of file vhost.c.

◆ ap_vhost_iterate_given_conn()

int ap_vhost_iterate_given_conn ( conn_rec conn,
ap_vhost_iterate_conn_cb  func_cb,
void *  baton 
)

For every virtual host on this connection, call func_cb.

Definition at line 1229 of file vhost.c.

◆ check_serverpath()

static void check_serverpath ( request_rec r)
static

Definition at line 1093 of file vhost.c.

◆ construct_host_header()

static APR_INLINE const char * construct_host_header ( request_rec r,
int  is_v6literal 
)
static

Definition at line 1135 of file vhost.c.

◆ dump_a_vhost()

static void dump_a_vhost ( apr_file_t f,
ipaddr_chain ic 
)
static

Definition at line 452 of file vhost.c.

◆ dump_vhost_config()

static void dump_vhost_config ( apr_file_t f)
static

Definition at line 513 of file vhost.c.

◆ find_default_server()

static ipaddr_chain * find_default_server ( apr_port_t  port)
static

Definition at line 425 of file vhost.c.

◆ find_ipaddr()

static APR_INLINE ipaddr_chain * find_ipaddr ( apr_sockaddr_t sa)
static

Definition at line 398 of file vhost.c.

◆ fix_hostname()

static int fix_hostname ( request_rec r,
const char host_header,
unsigned  http_conformance 
)
static

Definition at line 828 of file vhost.c.

◆ fix_hostname_non_v6()

static apr_status_t fix_hostname_non_v6 ( request_rec r,
char host 
)
static

Definition at line 741 of file vhost.c.

◆ fix_hostname_v6_literal()

static apr_status_t fix_hostname_v6_literal ( request_rec r,
char host 
)
static

Definition at line 708 of file vhost.c.

◆ get_addresses()

static const char * get_addresses ( apr_pool_t p,
const char w_,
server_addr_rec ***  paddr,
apr_port_t  default_port 
)
static

Definition at line 148 of file vhost.c.

◆ hash_addr()

static APR_INLINE unsigned hash_addr ( struct apr_sockaddr_t sa)
static

Definition at line 358 of file vhost.c.

◆ hash_inaddr()

static APR_INLINE unsigned hash_inaddr ( unsigned  key)
static

Definition at line 352 of file vhost.c.

◆ matches_aliases()

static int matches_aliases ( server_rec s,
const char host 
)
static

Definition at line 913 of file vhost.c.

◆ new_ipaddr_chain()

static ipaddr_chain * new_ipaddr_chain ( apr_pool_t p,
server_rec s,
server_addr_rec sar 
)
static

Definition at line 370 of file vhost.c.

◆ new_name_chain()

static name_chain * new_name_chain ( apr_pool_t p,
server_rec s,
server_addr_rec sar 
)
static

Definition at line 385 of file vhost.c.

◆ strict_hostname_check()

static apr_status_t strict_hostname_check ( request_rec r,
char host 
)
static

Definition at line 772 of file vhost.c.

◆ update_server_from_aliases()

static int update_server_from_aliases ( request_rec r)
static

Definition at line 1000 of file vhost.c.

◆ vhost_check_config()

static int vhost_check_config ( apr_pool_t p,
apr_pool_t plog,
apr_pool_t ptemp,
server_rec s 
)
static

< Module has handled this stage.

< Module has handled this stage.

Definition at line 698 of file vhost.c.

Variable Documentation

◆ config_error

int config_error = 0
static

Definition at line 103 of file vhost.c.

◆ default_list

ipaddr_chain* default_list
static

Definition at line 100 of file vhost.c.

◆ iphash_table

ipaddr_chain* iphash_table[256]
static

Definition at line 94 of file vhost.c.