1 /* $MirOS: src/usr.sbin/httpd/src/include/http_vhost.h,v 1.4 2005/04/19 14:37:52 tg Exp $ */ 2 /* $OpenBSD: http_vhost.h,v 1.7 2005/03/28 23:26:51 niallo Exp $ */ 3 4 /* ==================================================================== 5 * The Apache Software License, Version 1.1 6 * 7 * Copyright (c) 2000-2003 The Apache Software Foundation. All rights 8 * reserved. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions and the following disclaimer. 16 * 17 * 2. Redistributions in binary form must reproduce the above copyright 18 * notice, this list of conditions and the following disclaimer in 19 * the documentation and/or other materials provided with the 20 * distribution. 21 * 22 * 3. The end-user documentation included with the redistribution, 23 * if any, must include the following acknowledgment: 24 * "This product includes software developed by the 25 * Apache Software Foundation (http://www.apache.org/)." 26 * Alternately, this acknowledgment may appear in the software itself, 27 * if and wherever such third-party acknowledgments normally appear. 28 * 29 * 4. The names "Apache" and "Apache Software Foundation" must 30 * not be used to endorse or promote products derived from this 31 * software without prior written permission. For written 32 * permission, please contact apache@apache.org. 33 * 34 * 5. Products derived from this software may not be called "Apache", 35 * nor may "Apache" appear in their name, without prior written 36 * permission of the Apache Software Foundation. 37 * 38 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 39 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 40 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 41 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 42 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 43 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 44 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 45 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 46 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 47 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 48 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 49 * SUCH DAMAGE. 50 * ==================================================================== 51 * 52 * This software consists of voluntary contributions made by many 53 * individuals on behalf of the Apache Software Foundation. For more 54 * information on the Apache Software Foundation, please see 55 * <http://www.apache.org/>. 56 * 57 * Portions of this software are based upon public domain software 58 * originally written at the National Center for Supercomputing Applications, 59 * University of Illinois, Urbana-Champaign. 60 */ 61 62 #ifndef APACHE_HTTP_VHOST_H 63 #define APACHE_HTTP_VHOST_H 64 65 #ifdef __cplusplus 66 extern "C" { 67 #endif 68 69 /* called before any config is read */ 70 API_EXPORT(void) ap_init_vhost_config(pool *p); 71 72 /* called after the config has been read */ 73 API_EXPORT(void) ap_fini_vhost_config(pool *p, server_rec *main_server); 74 75 /* handle addresses in <VirtualHost> statement */ 76 API_EXPORT(const char *) ap_parse_vhost_addrs(pool *p, const char *hostname, 77 server_rec *s); 78 79 /* handle NameVirtualHost directive */ 80 API_EXPORT_NONSTD(const char *) ap_set_name_virtual_host (cmd_parms *cmd, 81 void *dummy, char *h, char *p); 82 83 /* given an ip address only, give our best guess as to what vhost it is */ 84 API_EXPORT(void) ap_update_vhost_given_ip(conn_rec *conn); 85 86 /* The above is never enough, and this is always called after the headers 87 * have been read. It may change r->server. 88 */ 89 API_EXPORT(void) ap_update_vhost_from_headers(request_rec *r); 90 91 /* return 1 if the host:port matches any of the aliases of r->server 92 * return 0 otherwise 93 */ 94 API_EXPORT(int) ap_matches_request_vhost(request_rec *r, const char *host, 95 unsigned port); 96 97 #ifdef __cplusplus 98 } 99 #endif 100 101 #endif /* !APACHE_HTTP_VHOST_H */ 102