summaryrefslogtreecommitdiffstats
path: root/rubbos/app/httpd-2.0.64/srclib/apr-util/uri
diff options
context:
space:
mode:
Diffstat (limited to 'rubbos/app/httpd-2.0.64/srclib/apr-util/uri')
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/.libs/apr_uri.obin0 -> 24000 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/.libs/gen_uri_delims.obin0 -> 10888 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/Makefile18
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/Makefile.in18
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/NWGNUmakefile258
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.c412
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.obin0 -> 23280 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delimsbin0 -> 12650 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.c47
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.dep2
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.dsp94
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.mak183
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.obin0 -> 10504 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/uri/uri_delims.h16
16 files changed, 1072 insertions, 0 deletions
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/.libs/apr_uri.o b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/.libs/apr_uri.o
new file mode 100644
index 00000000..2b7716a8
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/.libs/apr_uri.o
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/.libs/gen_uri_delims.o b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/.libs/gen_uri_delims.o
new file mode 100644
index 00000000..4cdf44c8
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/.libs/gen_uri_delims.o
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/Makefile b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/Makefile
new file mode 100644
index 00000000..f528b004
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/Makefile
@@ -0,0 +1,18 @@
+
+
+INCLUDES = -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include/private -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I.
+
+TARGETS = uri_delims.h apr_uri.lo
+CLEAN_TARGETS = gen_uri_delims uri_delims.h
+
+# bring in rules.mk for standard functionality
+include /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/build/rules.mk
+
+gen_uri_delims_OBJECTS = gen_uri_delims.lo
+gen_uri_delims: $(gen_uri_delims_OBJECTS)
+ $(LINK) $(EXTRA_LDFLAGS) $(gen_uri_delims_OBJECTS) $(EXTRA_LIBS)
+
+apr_uri.lo: uri_delims.h apr_uri.c
+
+uri_delims.h: gen_uri_delims
+ ./gen_uri_delims > uri_delims.h
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/Makefile.in b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/Makefile.in
new file mode 100644
index 00000000..37d2f065
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/Makefile.in
@@ -0,0 +1,18 @@
+VPATH = @srcdir@
+
+INCLUDES = @APRUTIL_PRIV_INCLUDES@ @APR_INCLUDES@ @APRUTIL_INCLUDES@ -I.
+
+TARGETS = uri_delims.h apr_uri.lo
+CLEAN_TARGETS = gen_uri_delims uri_delims.h
+
+# bring in rules.mk for standard functionality
+@INCLUDE_RULES@
+
+gen_uri_delims_OBJECTS = gen_uri_delims.lo
+gen_uri_delims: $(gen_uri_delims_OBJECTS)
+ $(LINK) $(EXTRA_LDFLAGS) $(gen_uri_delims_OBJECTS) $(EXTRA_LIBS)
+
+apr_uri.lo: uri_delims.h apr_uri.c
+
+uri_delims.h: gen_uri_delims
+ ./gen_uri_delims > uri_delims.h
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/NWGNUmakefile b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/NWGNUmakefile
new file mode 100644
index 00000000..828e5792
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/NWGNUmakefile
@@ -0,0 +1,258 @@
+#
+# NWGNUmakefile for GenUri.nlm (Apache2)
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+ $(EOLIST)
+
+#
+# Get the 'head' of the build environment. This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)\build\NWGNUhead.inc
+
+#
+# build this level's files
+
+#
+# Make sure all needed macro's are defined
+#
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS += \
+ $(APR_WORK)/include/arch/NetWare \
+ $(APR_WORK)/include \
+ $(APRUTIL)/include \
+ $(APRUTIL)/include/private \
+ $(APRUTIL)/xml/expat/lib \
+ $(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS += \
+ $(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES += \
+ $(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS += \
+ $(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS += \
+ $(EOLIST)
+
+XCFLAGS += \
+ $(EOLIST)
+
+XDEFINES += \
+ $(EOLIST)
+
+XLFLAGS += \
+ $(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS += \
+ $(EOLIST)
+
+XCFLAGS += \
+ $(EOLIST)
+
+XDEFINES += \
+ $(EOLIST)
+
+XLFLAGS += \
+ $(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS += \
+ $(EOLIST)
+
+XCFLAGS += \
+ $(EOLIST)
+
+XDEFINES += \
+ $(EOLIST)
+
+XLFLAGS += \
+ $(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm. If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME = Genuri
+
+#
+# This is used by the link '-desc ' directive.
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION = Generate URI Delimiters
+
+#
+# This is used by the '-threadname' directive. If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME = genuri
+
+#
+# If this is specified, it will override VERSION value in
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION = 1,0,0
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE = 8192
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM =_LibCPrelude
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM =_LibCPostlude
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM =
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS = PSEUDOPREEMPTION
+
+#
+# If this is specified it will be linked in with the XDCData option in the def
+# file instead of the default of $(APR)/misc/netware/apr.xdc. XDCData can
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA =
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+$(OBJDIR)/Genuri.nlm \
+ $(EOLIST)
+
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+ $(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+FILES_nlm_objs = \
+ $(OBJDIR)/gen_uri_delims.o \
+ $(EOLIST)
+
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+ libcpre.o \
+ $(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+ Libc \
+ $(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override $(NWOS)\copyright.txt.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+ @libc.imp \
+ $(EOLIST)
+
+#
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+ $(EOLIST)
+
+#
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+ $(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the
+# correct place. (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+
+#
+# Any specialized rules here
+#
+
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+
+# End of NWGNUmakefile for GenUri.nlm (Apache2)
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.c b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.c
new file mode 100644
index 00000000..78144ee6
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.c
@@ -0,0 +1,412 @@
+/* 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.c: URI related utility things
+ *
+ */
+
+#include <stdlib.h>
+
+#include "apu.h"
+#include "apr.h"
+#include "apr_general.h"
+#include "apr_strings.h"
+
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#include "apr_uri.h"
+
+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;
+};
+
+/* Some WWW schemes and their default ports; this is basically /etc/services */
+/* This will become global when the protocol abstraction comes */
+/* As the schemes are searched by a linear search, */
+/* they are sorted by their expected frequency */
+static schemes_t schemes[] =
+{
+ {"http", APR_URI_HTTP_DEFAULT_PORT},
+ {"ftp", APR_URI_FTP_DEFAULT_PORT},
+ {"https", APR_URI_HTTPS_DEFAULT_PORT},
+ {"gopher", APR_URI_GOPHER_DEFAULT_PORT},
+ {"ldap", APR_URI_LDAP_DEFAULT_PORT},
+ {"nntp", APR_URI_NNTP_DEFAULT_PORT},
+ {"snews", APR_URI_SNEWS_DEFAULT_PORT},
+ {"imap", APR_URI_IMAP_DEFAULT_PORT},
+ {"pop", APR_URI_POP_DEFAULT_PORT},
+ {"sip", APR_URI_SIP_DEFAULT_PORT},
+ {"rtsp", APR_URI_RTSP_DEFAULT_PORT},
+ {"wais", APR_URI_WAIS_DEFAULT_PORT},
+ {"z39.50r", APR_URI_WAIS_DEFAULT_PORT},
+ {"z39.50s", APR_URI_WAIS_DEFAULT_PORT},
+ {"prospero", APR_URI_PROSPERO_DEFAULT_PORT},
+ {"nfs", APR_URI_NFS_DEFAULT_PORT},
+ {"tip", APR_URI_TIP_DEFAULT_PORT},
+ {"acap", APR_URI_ACAP_DEFAULT_PORT},
+ {"telnet", APR_URI_TELNET_DEFAULT_PORT},
+ {"ssh", APR_URI_SSH_DEFAULT_PORT},
+ { NULL, 0xFFFF } /* unknown port */
+};
+
+APU_DECLARE(apr_port_t) apr_uri_port_of_scheme(const char *scheme_str)
+{
+ schemes_t *scheme;
+
+ if (scheme_str) {
+ for (scheme = schemes; scheme->name != NULL; ++scheme) {
+ if (strcasecmp(scheme_str, scheme->name) == 0) {
+ return scheme->default_port;
+ }
+ }
+ }
+ return 0;
+}
+
+/** @deprecated @see apr_uri_port_of_scheme */
+APU_DECLARE(apr_port_t) apr_uri_default_port_for_scheme(const char *scheme_str)
+{
+ return apr_uri_port_of_scheme(scheme_str);
+}
+
+/* Unparse a apr_uri_t structure to an URI string.
+ * Optionally suppress the password for security reasons.
+ */
+APU_DECLARE(char *) apr_uri_unparse(apr_pool_t *p,
+ const apr_uri_t *uptr,
+ unsigned flags)
+{
+ char *ret = "";
+
+ /* If suppressing the site part, omit both user name & scheme://hostname */
+ if (!(flags & APR_URI_UNP_OMITSITEPART)) {
+
+ /* Construct a "user:password@" string, honoring the passed
+ * APR_URI_UNP_ flags: */
+ if (uptr->user || uptr->password) {
+ ret = apr_pstrcat(p,
+ (uptr->user && !(flags & APR_URI_UNP_OMITUSER))
+ ? uptr->user : "",
+ (uptr->password && !(flags & APR_URI_UNP_OMITPASSWORD))
+ ? ":" : "",
+ (uptr->password && !(flags & APR_URI_UNP_OMITPASSWORD))
+ ? ((flags & APR_URI_UNP_REVEALPASSWORD)
+ ? uptr->password : "XXXXXXXX")
+ : "",
+ ((uptr->user && !(flags & APR_URI_UNP_OMITUSER)) ||
+ (uptr->password && !(flags & APR_URI_UNP_OMITPASSWORD)))
+ ? "@" : "",
+ NULL);
+ }
+
+ /* Construct scheme://site string */
+ if (uptr->hostname) {
+ int is_default_port;
+ const char *lbrk = "", *rbrk = "";
+
+ if (strchr(uptr->hostname, ':')) { /* v6 literal */
+ lbrk = "[";
+ rbrk = "]";
+ }
+
+ is_default_port =
+ (uptr->port_str == NULL ||
+ uptr->port == 0 ||
+ uptr->port == apr_uri_port_of_scheme(uptr->scheme));
+
+ if (uptr->scheme) {
+ ret = apr_pstrcat(p,
+ uptr->scheme, "://", ret,
+ lbrk, uptr->hostname, rbrk,
+ is_default_port ? "" : ":",
+ is_default_port ? "" : uptr->port_str,
+ NULL);
+ }
+ else {
+ /* A violation of RFC2396, but it is clear from section 3.2
+ * that the : belongs above to the scheme, while // belongs
+ * to the authority, so include the authority prefix while
+ * omitting the "scheme:" that the user neglected to pass us.
+ */
+ ret = apr_pstrcat(p,
+ "//", ret, lbrk, uptr->hostname, rbrk,
+ is_default_port ? "" : ":",
+ is_default_port ? "" : uptr->port_str,
+ NULL);
+ }
+ }
+ }
+
+ /* Should we suppress all path info? */
+ if (!(flags & APR_URI_UNP_OMITPATHINFO)) {
+ /* Append path, query and fragment strings: */
+ ret = apr_pstrcat(p,
+ ret,
+ (uptr->path)
+ ? uptr->path : "",
+ (uptr->query && !(flags & APR_URI_UNP_OMITQUERY))
+ ? "?" : "",
+ (uptr->query && !(flags & APR_URI_UNP_OMITQUERY))
+ ? uptr->query : "",
+ (uptr->fragment && !(flags & APR_URI_UNP_OMITQUERY))
+ ? "#" : NULL,
+ (uptr->fragment && !(flags & APR_URI_UNP_OMITQUERY))
+ ? uptr->fragment : NULL,
+ NULL);
+ }
+ return ret;
+}
+
+/* Here is the hand-optimized parse_uri_components(). There are some wild
+ * tricks we could pull in assembly language that we don't pull here... like we
+ * can do word-at-time scans for delimiter characters using the same technique
+ * that fast memchr()s use. But that would be way non-portable. -djg
+ */
+
+/* We have a apr_table_t that we can index by character and it tells us if the
+ * character is one of the interesting delimiters. Note that we even get
+ * compares for NUL for free -- it's just another delimiter.
+ */
+
+#define T_COLON 0x01 /* ':' */
+#define T_SLASH 0x02 /* '/' */
+#define T_QUESTION 0x04 /* '?' */
+#define T_HASH 0x08 /* '#' */
+#define T_NUL 0x80 /* '\0' */
+
+/* the uri_delims.h file is autogenerated by gen_uri_delims.c */
+#include "uri_delims.h"
+
+/* it works like this:
+ if (uri_delims[ch] & NOTEND_foobar) {
+ then we're not at a delimiter for foobar
+ }
+*/
+
+/* Note that we optimize the scheme scanning here, we cheat and let the
+ * compiler know that it doesn't have to do the & masking.
+ */
+#define NOTEND_SCHEME (0xff)
+#define NOTEND_HOSTINFO (T_SLASH | T_QUESTION | T_HASH | T_NUL)
+#define NOTEND_PATH (T_QUESTION | T_HASH | T_NUL)
+
+/* parse_uri_components():
+ * 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.
+ * Side effects:
+ * - fills in fields of uri_components *uptr
+ * - none on any of the r->* fields
+ */
+APU_DECLARE(apr_status_t) apr_uri_parse(apr_pool_t *p, const char *uri,
+ apr_uri_t *uptr)
+{
+ const char *s;
+ const char *s1;
+ const char *hostinfo;
+ char *endstr;
+ int port;
+ int v6_offset1 = 0, v6_offset2 = 0;
+
+ /* Initialize the structure. parse_uri() and parse_uri_components()
+ * can be called more than once per request.
+ */
+ memset (uptr, '\0', sizeof(*uptr));
+ uptr->is_initialized = 1;
+
+ /* We assume the processor has a branch predictor like most --
+ * it assumes forward branches are untaken and backwards are taken. That's
+ * the reason for the gotos. -djg
+ */
+ if (uri[0] == '/') {
+deal_with_path:
+ /* we expect uri to point to first character of path ... remember
+ * that the path could be empty -- http://foobar?query for example
+ */
+ s = uri;
+ while ((uri_delims[*(unsigned char *)s] & NOTEND_PATH) == 0) {
+ ++s;
+ }
+ if (s != uri) {
+ uptr->path = apr_pstrmemdup(p, uri, s - uri);
+ }
+ if (*s == 0) {
+ return APR_SUCCESS;
+ }
+ if (*s == '?') {
+ ++s;
+ s1 = strchr(s, '#');
+ if (s1) {
+ uptr->fragment = apr_pstrdup(p, s1 + 1);
+ uptr->query = apr_pstrmemdup(p, s, s1 - s);
+ }
+ else {
+ uptr->query = apr_pstrdup(p, s);
+ }
+ return APR_SUCCESS;
+ }
+ /* otherwise it's a fragment */
+ uptr->fragment = apr_pstrdup(p, s + 1);
+ return APR_SUCCESS;
+ }
+
+ /* find the scheme: */
+ s = uri;
+ while ((uri_delims[*(unsigned char *)s] & NOTEND_SCHEME) == 0) {
+ ++s;
+ }
+ /* scheme must be non-empty and followed by :// */
+ if (s == uri || s[0] != ':' || s[1] != '/' || s[2] != '/') {
+ goto deal_with_path; /* backwards predicted taken! */
+ }
+
+ uptr->scheme = apr_pstrmemdup(p, uri, s - uri);
+ s += 3;
+ hostinfo = s;
+ while ((uri_delims[*(unsigned char *)s] & NOTEND_HOSTINFO) == 0) {
+ ++s;
+ }
+ uri = s; /* whatever follows hostinfo is start of uri */
+ uptr->hostinfo = apr_pstrmemdup(p, hostinfo, uri - hostinfo);
+
+ /* If there's a username:password@host:port, the @ we want is the last @...
+ * too bad there's no memrchr()... For the C purists, note that hostinfo
+ * is definately not the first character of the original uri so therefore
+ * &hostinfo[-1] < &hostinfo[0] ... and this loop is valid C.
+ */
+ do {
+ --s;
+ } while (s >= hostinfo && *s != '@');
+ if (s < hostinfo) {
+ /* again we want the common case to be fall through */
+deal_with_host:
+ /* We expect hostinfo to point to the first character of
+ * the hostname. If there's a port it is the first colon,
+ * except with IPv6.
+ */
+ if (*hostinfo == '[') {
+ v6_offset1 = 1;
+ v6_offset2 = 2;
+ s = memchr(hostinfo, ']', uri - hostinfo);
+ if (s == NULL) {
+ return APR_EGENERAL;
+ }
+ if (*++s != ':') {
+ s = NULL; /* no port */
+ }
+ }
+ else {
+ s = memchr(hostinfo, ':', uri - hostinfo);
+ }
+ if (s == NULL) {
+ /* we expect the common case to have no port */
+ uptr->hostname = apr_pstrmemdup(p,
+ hostinfo + v6_offset1,
+ uri - hostinfo - v6_offset2);
+ goto deal_with_path;
+ }
+ uptr->hostname = apr_pstrmemdup(p,
+ hostinfo + v6_offset1,
+ s - hostinfo - v6_offset2);
+ ++s;
+ uptr->port_str = apr_pstrmemdup(p, s, uri - s);
+ if (uri != s) {
+ port = strtol(uptr->port_str, &endstr, 10);
+ uptr->port = port;
+ if (*endstr == '\0') {
+ goto deal_with_path;
+ }
+ /* Invalid characters after ':' found */
+ return APR_EGENERAL;
+ }
+ uptr->port = apr_uri_port_of_scheme(uptr->scheme);
+ goto deal_with_path;
+ }
+
+ /* first colon delimits username:password */
+ s1 = memchr(hostinfo, ':', s - hostinfo);
+ if (s1) {
+ uptr->user = apr_pstrmemdup(p, hostinfo, s1 - hostinfo);
+ ++s1;
+ uptr->password = apr_pstrmemdup(p, s1, s - s1);
+ }
+ else {
+ uptr->user = apr_pstrmemdup(p, hostinfo, s - hostinfo);
+ }
+ hostinfo = s + 1;
+ goto deal_with_host;
+}
+
+/* Special case for CONNECT parsing: it comes with the hostinfo part only */
+/* See the INTERNET-DRAFT document "Tunneling SSL Through a WWW Proxy"
+ * currently at http://www.mcom.com/newsref/std/tunneling_ssl.html
+ * for the format of the "CONNECT host:port HTTP/1.0" request
+ */
+APU_DECLARE(apr_status_t) apr_uri_parse_hostinfo(apr_pool_t *p,
+ const char *hostinfo,
+ apr_uri_t *uptr)
+{
+ const char *s;
+ char *endstr;
+ const char *rsb;
+ int v6_offset1 = 0;
+
+ /* Initialize the structure. parse_uri() and parse_uri_components()
+ * can be called more than once per request.
+ */
+ memset(uptr, '\0', sizeof(*uptr));
+ uptr->is_initialized = 1;
+ uptr->hostinfo = apr_pstrdup(p, hostinfo);
+
+ /* We expect hostinfo to point to the first character of
+ * the hostname. There must be a port, separated by a colon
+ */
+ if (*hostinfo == '[') {
+ if ((rsb = strchr(hostinfo, ']')) == NULL ||
+ *(rsb + 1) != ':') {
+ return APR_EGENERAL;
+ }
+ /* literal IPv6 address */
+ s = rsb + 1;
+ ++hostinfo;
+ v6_offset1 = 1;
+ }
+ else {
+ s = strchr(hostinfo, ':');
+ }
+ if (s == NULL) {
+ return APR_EGENERAL;
+ }
+ uptr->hostname = apr_pstrndup(p, hostinfo, s - hostinfo - v6_offset1);
+ ++s;
+ uptr->port_str = apr_pstrdup(p, s);
+ if (*s != '\0') {
+ uptr->port = (unsigned short) strtol(uptr->port_str, &endstr, 10);
+ if (*endstr == '\0') {
+ return APR_SUCCESS;
+ }
+ /* Invalid characters after ':' found */
+ }
+ return APR_EGENERAL;
+}
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.lo b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.lo
new file mode 100644
index 00000000..82420399
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.lo
@@ -0,0 +1,12 @@
+# apr_uri.lo - a libtool object file
+# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/apr_uri.o'
+
+# Name of the non-PIC object.
+non_pic_object='apr_uri.o'
+
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.o b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.o
new file mode 100644
index 00000000..7376c447
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/apr_uri.o
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims
new file mode 100755
index 00000000..b0db7dc7
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.c b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.c
new file mode 100644
index 00000000..6bd7bd45
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.c
@@ -0,0 +1,47 @@
+/* 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.
+ */
+
+#include <stdio.h>
+
+/* generate a apr_table_t of 256 values, where certain characters are
+ * marked "interesting"... for the uri parsing process.
+ */
+
+int main(int argc, char *argv[])
+{
+ int i;
+ char *value;
+
+ printf("/* this file is automatically generated by "
+ "gen_uri_delims, do not edit */\n");
+ printf("static const unsigned char uri_delims[256] = {");
+ for (i = 0; i < 256; ++i) {
+ if (i % 20 == 0)
+ printf("\n ");
+ switch (i) {
+ case ':': value = "T_COLON"; break;
+ case '/': value = "T_SLASH"; break;
+ case '?': value = "T_QUESTION"; break;
+ case '#': value = "T_HASH"; break;
+ case '\0': value = "T_NUL"; break;
+ default: value = "0"; break;
+ }
+ printf("%s%c", value, (i < 255) ? ',' : ' ');
+ }
+ printf("\n};\n");
+
+ return 0;
+}
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.dep b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.dep
new file mode 100644
index 00000000..5e93c3c2
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.dep
@@ -0,0 +1,2 @@
+# Microsoft Developer Studio Generated Dependency File, included by gen_uri_delims.mak
+
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.dsp b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.dsp
new file mode 100644
index 00000000..3dea06c5
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.dsp
@@ -0,0 +1,94 @@
+# Microsoft Developer Studio Project File - Name="gen_uri_delims" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=gen_uri_delims - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "gen_uri_delims.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "gen_uri_delims.mak" CFG="gen_uri_delims - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "gen_uri_delims - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "gen_uri_delims - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "gen_uri_delims - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir ""
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fd"Release\gen_uri_delims" /FD /c
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /pdb:"Release\gen_uri_delims.pdb" /machine:I386
+# SUBTRACT BASE LINK32 /pdb:none
+# ADD LINK32 kernel32.lib /nologo /subsystem:console /pdb:"Release\gen_uri_delims.pdb" /machine:I386
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF "$(CFG)" == "gen_uri_delims - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir ""
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fd"Debug\gen_uri_delims" /FD /c
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /incremental:no /pdb:"Debug\gen_uri_delims.pdb" /debug /machine:I386
+# SUBTRACT BASE LINK32 /pdb:none
+# ADD LINK32 kernel32.lib /nologo /subsystem:console /incremental:no /pdb:"Debug\gen_uri_delims.pdb" /debug /machine:I386
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF
+
+# Begin Target
+
+# Name "gen_uri_delims - Win32 Release"
+# Name "gen_uri_delims - Win32 Debug"
+# Begin Source File
+
+SOURCE=.\gen_uri_delims.c
+# End Source File
+# End Target
+# End Project
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.lo b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.lo
new file mode 100644
index 00000000..4413869b
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.lo
@@ -0,0 +1,12 @@
+# gen_uri_delims.lo - a libtool object file
+# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/gen_uri_delims.o'
+
+# Name of the non-PIC object.
+non_pic_object='gen_uri_delims.o'
+
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.mak b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.mak
new file mode 100644
index 00000000..39cdb1bc
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.mak
@@ -0,0 +1,183 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on gen_uri_delims.dsp
+!IF "$(CFG)" == ""
+CFG=gen_uri_delims - Win32 Debug
+!MESSAGE No configuration specified. Defaulting to gen_uri_delims - Win32 Debug.
+!ENDIF
+
+!IF "$(CFG)" != "gen_uri_delims - Win32 Release" && "$(CFG)" != "gen_uri_delims - Win32 Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "gen_uri_delims.mak" CFG="gen_uri_delims - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "gen_uri_delims - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "gen_uri_delims - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+!ERROR An invalid configuration is specified.
+!ENDIF
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "$(CFG)" == "gen_uri_delims - Win32 Release"
+
+OUTDIR=.
+INTDIR=.\Release
+# Begin Custom Macros
+OutDir=.
+# End Custom Macros
+
+ALL : "$(OUTDIR)\gen_uri_delims.exe"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\gen_uri_delims.idb"
+ -@erase "$(INTDIR)\gen_uri_delims.obj"
+ -@erase "$(OUTDIR)\gen_uri_delims.exe"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\gen_uri_delims" /FD /c
+
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\gen_uri_delims.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\Release\gen_uri_delims.pdb" /out:"$(OUTDIR)\gen_uri_delims.exe"
+LINK32_OBJS= \
+ "$(INTDIR)\gen_uri_delims.obj"
+
+"$(OUTDIR)\gen_uri_delims.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "gen_uri_delims - Win32 Debug"
+
+OUTDIR=.
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.
+# End Custom Macros
+
+ALL : "$(OUTDIR)\gen_uri_delims.exe"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\gen_uri_delims.idb"
+ -@erase "$(INTDIR)\gen_uri_delims.obj"
+ -@erase "$(OUTDIR)\Debug\gen_uri_delims.pdb"
+ -@erase "$(OUTDIR)\gen_uri_delims.exe"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\gen_uri_delims" /FD /EHsc /c
+
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\gen_uri_delims.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\Debug\gen_uri_delims.pdb" /debug /out:"$(OUTDIR)\gen_uri_delims.exe"
+LINK32_OBJS= \
+ "$(INTDIR)\gen_uri_delims.obj"
+
+"$(OUTDIR)\gen_uri_delims.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ENDIF
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("gen_uri_delims.dep")
+!INCLUDE "gen_uri_delims.dep"
+!ELSE
+!MESSAGE Warning: cannot find "gen_uri_delims.dep"
+!ENDIF
+!ENDIF
+
+
+!IF "$(CFG)" == "gen_uri_delims - Win32 Release" || "$(CFG)" == "gen_uri_delims - Win32 Debug"
+SOURCE=.\gen_uri_delims.c
+
+"$(INTDIR)\gen_uri_delims.obj" : $(SOURCE) "$(INTDIR)"
+
+
+
+!ENDIF
+
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.o b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.o
new file mode 100644
index 00000000..4e1fa764
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/gen_uri_delims.o
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/uri_delims.h b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/uri_delims.h
new file mode 100644
index 00000000..0c855bf7
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/uri/uri_delims.h
@@ -0,0 +1,16 @@
+/* this file is automatically generated by gen_uri_delims, do not edit */
+static const unsigned char uri_delims[256] = {
+ T_NUL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,T_HASH,0,0,0,0,
+ 0,0,0,0,0,0,0,T_SLASH,0,0,0,0,0,0,0,0,0,0,T_COLON,0,
+ 0,0,0,T_QUESTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};