Commit 95a2ba01 authored by Roy T. Fielding's avatar Roy T. Fielding
Browse files

Moved util_uri to apr-util/uri/apr_uri, which means adding the apr_

prefix to all of the uri functions (yuck), changing some includes,
and using APR error codes instead of HTTP-specific error codes.

Other notes to test this patch:
- You need to delete the util_uri.h file - exports picks up on this.
- I'd like to remove the apr_uri.h from httpd.h, but that might
  increase the complexity of this patch even further.  Once this patch
  is accepted (in some form), then I can focus on removing apr_uri.h
  from httpd.h entirely.  I need baby steps (heh) right now.
- I imagine that this might break a bunch of stuff in Win32 or other OS
  builds with foreign dependency files.  Any help here is appreciated.

This is a start...  -- justin

Submitted by:	Justin Erenkrantz
Reviewed by:	Roy Fielding


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89198 13f79535-47bb-0310-9956-ffa450edef68
parent b8273658
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
Changes with Apache 2.0.19-dev

  *) Moved util_uri to the apr-util library.  This required a bunch of
     apr_name changes for the uri utility functions.  [Justin Erenkrantz]

  *) Move the addition of default AP_HTTP_HTTP_HEADER filters to the
     insert_filter phase so that other filters are not bypassed by default.
     [Graham Leggett]
+2 −2
Original line number Diff line number Diff line
@@ -578,7 +578,7 @@ typedef struct request_rec request_rec;

/* ### would be nice to not include this from httpd.h ... */
/* This comes after we have defined the request_rec type */
#include "util_uri.h"
#include "apr_uri.h"

/** A structure that represents one process */
struct process_rec {
@@ -777,7 +777,7 @@ struct request_rec {
    /** ST_MODE set to zero if no such file */
    apr_finfo_t finfo;
    /** components of uri, dismantled */
    uri_components parsed_uri;
    apr_uri_components parsed_uri;

    /* Various other config info which may change with .htaccess files
     * These are config vectors, with one void* pointer for each module
+6 −6
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@
#include "http_request.h"
#include "http_log.h"
#include "http_protocol.h"
#include "util_uri.h"
#include "apr_uri.h"
#include "util_md5.h"

/* Disable shmem until pools/init gets sorted out - remove next line when fixed */
@@ -236,7 +236,7 @@ typedef struct digest_header_struct {
    apr_time_t             nonce_time;
    enum hdr_sts          auth_hdr_sts;
    const char           *raw_request_uri;
    uri_components       *psd_request_uri;
    apr_uri_components    *psd_request_uri;
    int                   needed_auth;
    client_entry         *client;
} digest_header_rec;
@@ -1514,8 +1514,8 @@ static const char *new_digest(const request_rec *r,
}


static void copy_uri_components(uri_components *dst, uri_components *src,
				request_rec *r) {
static void copy_uri_components(apr_uri_components *dst, 
                                apr_uri_components *src, request_rec *r) {
    if (src->scheme && src->scheme[0] != '\0')
	dst->scheme = src->scheme;
    else
@@ -1624,10 +1624,10 @@ static int authenticate_digest_user(request_rec *r)
	/* Hmm, the simple match didn't work (probably a proxy modified the
	 * request-uri), so lets do a more sophisticated match
	 */
	uri_components r_uri, d_uri;
	apr_uri_components r_uri, d_uri;

	copy_uri_components(&r_uri, resp->psd_request_uri, r);
	if (ap_parse_uri_components(r->pool, resp->uri, &d_uri) != HTTP_OK) {
	if (apr_uri_parse_components(r->pool, resp->uri, &d_uri) != APR_SUCCESS) {
	    ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r,
			  "Digest: invalid uri <%s> in Authorization header",
			  resp->uri);
+6 −6
Original line number Diff line number Diff line
@@ -189,12 +189,12 @@ dav_lookup_result dav_lookup_uri(const char *uri, request_rec * r,
    dav_lookup_result result = { 0 };
    const char *scheme;
    apr_port_t port;
    uri_components comp;
    apr_uri_components comp;
    char *new_file;
    const char *domain;

    /* first thing to do is parse the URI into various components */
    if (ap_parse_uri_components(r->pool, uri, &comp) != HTTP_OK) {
    if (apr_uri_parse_components(r->pool, uri, &comp) != APR_SUCCESS) {
	result.err.status = HTTP_BAD_REQUEST;
	result.err.desc = "Invalid syntax in Destination URI.";
	return result;
@@ -233,7 +233,7 @@ dav_lookup_result dav_lookup_uri(const char *uri, request_rec * r,

        /* insert a port if the URI did not contain one */
        if (comp.port == 0)
            comp.port = ap_default_port_for_scheme(comp.scheme);
            comp.port = apr_uri_default_port_for_scheme(comp.scheme);

        /* now, verify that the URI uses the same scheme as the current.
           request. the port must match our port.
@@ -288,7 +288,7 @@ dav_lookup_result dav_lookup_uri(const char *uri, request_rec * r,
       the current request. Therefore, we can use ap_sub_req_lookup_uri() */

    /* reconstruct a URI as just the path */
    new_file = ap_unparse_uri_components(r->pool, &comp, UNP_OMITSITEPART);
    new_file = apr_uri_unparse_components(r->pool, &comp, UNP_OMITSITEPART);

    /*
     * Lookup the URI and return the sub-request. Note that we use the
@@ -542,7 +542,7 @@ static dav_error * dav_process_if_header(request_rec *r, dav_if_header **p_ih)
    const char *uri = NULL;	/* scope of current production; NULL=no-tag */
    size_t uri_len = 0;
    dav_if_header *ih = NULL;
    uri_components parsed_uri;
    apr_uri_components parsed_uri;
    const dav_hooks_locks *locks_hooks = DAV_GET_HOOKS_LOCKS(r);
    enum {no_tagged, tagged, unknown} list_type = unknown;
    int condition;
@@ -566,7 +566,7 @@ static dav_error * dav_process_if_header(request_rec *r, dav_if_header **p_ih)
            
            /* 2518 specifies this must be an absolute URI; just take the
             * relative part for later comparison against r->uri */
            if (ap_parse_uri_components(r->pool, uri, &parsed_uri) != HTTP_OK) {
            if (apr_uri_parse_components(r->pool, uri, &parsed_uri) != APR_SUCCESS) {
                return dav_new_error(r->pool, HTTP_BAD_REQUEST,
                                     DAV_ERR_IF_TAGGED,
                                     "Invalid URI in tagged If-header.");
+1 −1
Original line number Diff line number Diff line
@@ -344,7 +344,7 @@ static const char *log_request_line(request_rec *r, char *a)
	     * (note also that r->the_request contains the unmodified request)
	     */
    return (r->parsed_uri.password) ? apr_pstrcat(r->pool, r->method, " ",
					 ap_unparse_uri_components(r->pool, &r->parsed_uri, 0),
					 apr_uri_unparse_components(r->pool, &r->parsed_uri, 0),
					 r->assbackwards ? NULL : " ", r->protocol, NULL)
					: r->the_request;
}
Loading