Files
lazarus-ccr/httpd/httpd_2_2/aprutil/apr_uri.inc
sekelsenmat ecf69ba668 Completed the 2.2 header translation.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@16 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2006-09-26 16:36:34 +00:00

171 lines
6.2 KiB
PHP

{ Copyright 2000-2005 The Apache Software Foundation or its licensors, as
* applicable.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
}
{
* apr_uri.h: External Interface of apr_uri.c
}
{
* @file apr_uri.h
* @brief APR-UTIL URI Routines
}
{#include "apu.h"
#include "apr_network_io.h"}
{
* @defgroup APR_Util_URI URI
* @ingroup APR_Util
}
const
APR_URI_FTP_DEFAULT_PORT = 21; {< default FTP port }
APR_URI_SSH_DEFAULT_PORT = 22; {< default SSH port }
APR_URI_TELNET_DEFAULT_PORT = 23; {< default telnet port }
APR_URI_GOPHER_DEFAULT_PORT = 70; {< default Gopher port }
APR_URI_HTTP_DEFAULT_PORT = 80; {< default HTTP port }
APR_URI_POP_DEFAULT_PORT = 110; {< default POP port }
APR_URI_NNTP_DEFAULT_PORT = 119; {< default NNTP port }
APR_URI_IMAP_DEFAULT_PORT = 143; {< default IMAP port }
APR_URI_PROSPERO_DEFAULT_PORT = 191; {< default Prospero port }
APR_URI_WAIS_DEFAULT_PORT = 210; {< default WAIS port }
APR_URI_LDAP_DEFAULT_PORT = 389; {< default LDAP port }
APR_URI_HTTPS_DEFAULT_PORT = 443; {< default HTTPS port }
APR_URI_RTSP_DEFAULT_PORT = 554; {< default RTSP port }
APR_URI_SNEWS_DEFAULT_PORT = 563; {< default SNEWS port }
APR_URI_ACAP_DEFAULT_PORT = 674; {< default ACAP port }
APR_URI_NFS_DEFAULT_PORT = 2049; {< default NFS port }
APR_URI_TIP_DEFAULT_PORT = 3372; {< default TIP port }
APR_URI_SIP_DEFAULT_PORT = 5060; {< default SIP port }
{ Flags passed to unparse_uri_components(): }
{ suppress "scheme://user\@site:port" }
APR_URI_UNP_OMITSITEPART = (1 shl 0);
{ Just omit user }
APR_URI_UNP_OMITUSER = (1 shl 1);
{ Just omit password }
APR_URI_UNP_OMITPASSWORD = (1 shl 2);
{ omit "user:password\@" part }
APR_URI_UNP_OMITUSERINFO = (APR_URI_UNP_OMITUSER or APR_URI_UNP_OMITPASSWORD);
{ Show plain text password (default: show XXXXXXXX) }
APR_URI_UNP_REVEALPASSWORD = (1 shl 3);
{ Show "scheme://user\@site:port" only }
APR_URI_UNP_OMITPATHINFO = (1 shl 4);
{ Omit the "?queryarg" from the path }
APR_URI_UNP_OMITQUERY = (1 shl 5);
type
{ @see apr_uri_t }
Papr_uri_t = ^apr_uri_t;
{
* A structure to encompass all of the fields in a uri
}
apr_uri_t = record
{ scheme ("http"/"ftp"/...) }
scheme: PChar;
{ combined [user[:password]\@]host[:port] }
hostinfo: PChar;
{ user name, as in http://user:passwd\@host:port/ }
user: PChar;
{ password, as in http://user:passwd\@host:port/ }
password: PChar;
{ hostname from URI (or from Host: header) }
hostname: PChar;
{ port string (integer representation is in "port") }
port_str: PChar;
{ the request path (or "/" if only scheme://host was given) }
path: PChar;
{ Everything after a '?' in the path, if present }
query: PChar;
{ Trailing "#fragment" string, if present }
fragment: PChar;
{ structure returned from gethostbyname() }
hostent: Pointer;
{ The port number, numeric, valid only if port_str != NULL }
port: apr_port_t;
{ 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;
end;
{ apr_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
}
function apr_uri_port_of_scheme(const scheme_str: PChar): apr_port_t;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
external LibAPRUtil name LibNamePrefix + 'apr_uri_port_of_scheme' + LibSuff4;
{
* Unparse a apr_uri_t structure to an URI string. Optionally
* suppress the password for security reasons.
* @param p The pool to allocate out of
* @param uptr All of the parts of the uri
* @param flags How to unparse the uri. One of:
* <PRE>
* APR_URI_UNP_OMITSITEPART Suppress "scheme://user\@site:port"
* APR_URI_UNP_OMITUSER Just omit user
* APR_URI_UNP_OMITPASSWORD Just omit password
* APR_URI_UNP_OMITUSERINFO Omit "user:password\@" part
* APR_URI_UNP_REVEALPASSWORD Show plain text password (default: show XXXXXXXX)
* APR_URI_UNP_OMITPATHINFO Show "scheme://user\@site:port" only
* APR_URI_UNP_OMITQUERY Omit "?queryarg" or "#fragment"
* </PRE>
* @return The uri as a string
}
function apr_uri_unparse(p: Papr_pool_t; const uptr: Papr_uri_t;
flags: cuint): PChar;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
external LibAPRUtil name LibNamePrefix + 'apr_uri_unparse' + LibSuff12;
{
* Parse a given URI, fill in all supplied fields of a apr_uri_t
* 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 apr_uri_t to fill out
* @return APR_SUCCESS for success or error code
}
function apr_uri_parse(p: Papr_pool_t; const uri: PChar;
uptr: Papr_uri_t): apr_status_t;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
external LibAPRUtil name LibNamePrefix + 'apr_uri_parse' + LibSuff12;
{
* 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 apr_uri_t to fill out
* @return APR_SUCCESS for success or error code
}
function apr_uri_parse_hostinfo(p: Papr_pool_t;
const hostinfo: PChar; uptr: Papr_uri_t): apr_status_t;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
external LibAPRUtil name LibNamePrefix + 'apr_uri_parse_hostinfo' + LibSuff12;