diff options
Diffstat (limited to 'include/util_uri.h')
-rw-r--r-- | include/util_uri.h | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/include/util_uri.h b/include/util_uri.h deleted file mode 100644 index b2b91201ab..0000000000 --- a/include/util_uri.h +++ /dev/null @@ -1,207 +0,0 @@ -/* ==================================================================== - * The Apache Software License, Version 1.1 - * - * Copyright (c) 2000-2001 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Apache" and "Apache Software Foundation" must - * not be used to endorse or promote products derived from this - * software without prior written permission. For written - * permission, please contact apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache", - * nor may "Apache" appear in their name, without prior written - * permission of the Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * <http://www.apache.org/>. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. - */ - -/* - * util_uri.h: External Interface of util_uri.c - */ - -#ifndef UTIL_URI_H -#define UTIL_URI_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @package Apache URI library - */ - -typedef struct schemes_t schemes_t; - -/** Structure to store various schemes and their default ports */ -struct schemes_t { - /** The name of the scheme */ - const char *name; - /** The default port for the scheme */ - apr_port_t default_port; -}; - -#define DEFAULT_FTP_DATA_PORT 20 -#define DEFAULT_FTP_PORT 21 -#define DEFAULT_GOPHER_PORT 70 -#define DEFAULT_NNTP_PORT 119 -#define DEFAULT_WAIS_PORT 210 -#define DEFAULT_SNEWS_PORT 563 -#define DEFAULT_PROSPERO_PORT 1525 /* WARNING: conflict w/Oracle */ - -/* Flags passed to unparse_uri_components(): */ -#define UNP_OMITSITEPART (1U<<0) /* suppress "scheme://user@site:port" */ -#define UNP_OMITUSER (1U<<1) /* Just omit user */ -#define UNP_OMITPASSWORD (1U<<2) /* Just omit password */ -#define UNP_OMITUSERINFO (UNP_OMITUSER|UNP_OMITPASSWORD) /* omit "user:password@" part */ -#define UNP_REVEALPASSWORD (1U<<3) /* Show plain text password (default: show XXXXXXXX) */ -#define UNP_OMITPATHINFO (1U<<4) /* Show "scheme://user@site:port" only */ -#define UNP_OMITQUERY (1U<<5) /* Omit the "?queryarg" from the path */ - -typedef struct uri_components uri_components; - -/** - * A structure to encompass all of the fields in a uri - */ -struct uri_components { - /** scheme ("http"/"ftp"/...) */ - char *scheme; - /** combined [user[:password]@]host[:port] */ - char *hostinfo; - /** user name, as in http://user:passwd@host:port/ */ - char *user; - /** password, as in http://user:passwd@host:port/ */ - char *password; - /** hostname from URI (or from Host: header) */ - char *hostname; - /** port string (integer representation is in "port") */ - char *port_str; - /** the request path (or "/" if only scheme://host was given) */ - char *path; - /** Everything after a '?' in the path, if present */ - char *query; - /** Trailing "#fragment" string, if present */ - char *fragment; - - /** structure returned from gethostbyname() - * @defvar struct hostent *hostent */ - struct hostent *hostent; - - /** The port number, numeric, valid only if port_str != NULL */ - apr_port_t port; - - /** has the structure been initialized */ - unsigned is_initialized:1; - - /** has the DNS been looked up yet */ - unsigned dns_looked_up:1; - /** has the dns been resolved yet */ - unsigned dns_resolved:1; -}; - -/* util_uri.c */ -/** - * Return the default port for a given scheme. The schemes recognized are - * http, ftp, https, gopher, wais, nntp, snews, and prospero - * @param scheme_str The string that contains the current scheme - * @return The default port for this scheme - * @deffunc apr_port_t ap_default_port_for_scheme(const char *scheme_str) - */ -AP_DECLARE(apr_port_t) ap_default_port_for_scheme(const char *scheme_str); - -/** - * Return the default for the current request - * @param r The current request - * @return The default port - * @deffunc apr_port_t ap_default_port_for_request(const request_rec *r) - */ -AP_DECLARE(apr_port_t) ap_default_port_for_request(const request_rec *r); - -/** - * Unparse a uri_components structure to an URI string. Optionally suppress - * the password for security reasons. - * @param p The pool to allocate out of - * @param uri_components All of the parts of the uri - * @param flags How to unparse the uri. One of: - * <PRE> - * UNP_OMITSITEPART suppress "scheme://user@site:port" - * UNP_OMITUSER Just omit user - * UNP_OMITPASSWORD Just omit password - * UNP_OMITUSERINFO omit "user:password@" part - * UNP_REVEALPASSWORD Show plain text password (default: show XXXXXXXX) - * UNP_OMITPATHINFO Show "scheme://user@site:port" only - * UNP_OMITQUERY Omit the "?queryarg" from the path - * </PRE> - * @return The uri as a string - * @deffunc char * ap_unparse_uri_components(apr_pool_t *p, const uri_components *uptr, unsigned flags) - */ -AP_DECLARE(char *) ap_unparse_uri_components(apr_pool_t *p, const uri_components *uptr, - unsigned flags); - -/** - * Parse a given URI, fill in all supplied fields of a uri_components - * structure. This eliminates the necessity of extracting host, port, - * path, query info repeatedly in the modules. - * @param p The pool to allocate out of - * @param uri The uri to parse - * @param uptr The uri_components to fill out - * @return An HTTP status code - * @deffunc int ap_parse_uri_components(apr_pool_t *p, const char *uri, uri_components *uptr) - */ -AP_DECLARE(int) ap_parse_uri_components(apr_pool_t *p, const char *uri, uri_components *uptr); - -/** - * Special case for CONNECT parsing: it comes with the hostinfo part only - * @param p The pool to allocate out of - * @param hostinfo The hostinfo string to parse - * @param uptr The uri_components to fill out - * @return An HTTP status code - * @deffunc int ap_parse_hostinfo_components(apr_pool_t *p, const char *hostinfo, uri_components *uptr) - */ -AP_DECLARE(int) ap_parse_hostinfo_components(apr_pool_t *p, const char *hostinfo, uri_components *uptr); - -#ifdef __cplusplus -} -#endif - -#endif /*UTIL_URI_H*/ |