123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- { 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;
|