Here's the quick workaround module. Just load the modules and it tries to "revert" to 2.0 behavior

#include "httpd.h"
#include "http_config.h"
#include "ap_config.h"
#include "apr_strings.h"
#include "http_protocol.h"

module AP_MODULE_DECLARE_DATA port_module;

typedef struct {
    apr_port_t port;
    char *port_str;
} port_config;


static int port(request_rec *r)
{
    port_config *conf;

if((conf = ap_get_module_config(r->server->module_config, &port_module)) != NULL) {
        if(conf->port_str) {
/*looking at server/core.c, ap_get_server_port This looks to be the best place
             * UseCanonicalName MUST be off, or this is ignored*/
            r->parsed_uri.port     = conf->port;
            r->parsed_uri.port_str = conf->port_str;
        }
    }

    return DECLINED;
}

static int post_config(apr_pool_t * pconf, apr_pool_t * plog,
                  apr_pool_t * ptemp, server_rec *s)
{
    server_rec *virt;
    port_config *port;

    for(virt = s; virt; virt = virt->next) {
        port = apr_pcalloc(pconf, sizeof(port_config));
        if(virt->port) {
            port->port = virt->port;
            port->port_str = apr_psprintf(pconf, "%u", virt->port);
            ap_set_module_config(virt->module_config, &port_module, port);
        }

    }

    return OK;
}

static void register_hooks(apr_pool_t * p)
{
    ap_hook_post_read_request(port, NULL, NULL, APR_HOOK_REALLY_FIRST);
    ap_hook_post_config(post_config, NULL, NULL, APR_HOOK_MIDDLE);
}

/* Dispatch list for API hooks */
module AP_MODULE_DECLARE_DATA port_module = {
    STANDARD20_MODULE_STUFF,
    NULL,       /* create per-dir    config structures */
    NULL,        /* merge  per-dir    config structures */
    NULL,   /* create per-server config structures */
    NULL,                       /* merge  per-server config structures */
    NULL,            /* table of config file commands       */
    register_hooks   /* register hooks                      */
};


--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies

Reply via email to