On 18/12/2007, Sander Temme <[EMAIL PROTECTED]> wrote:
>
> On Dec 17, 2007, at 6:36 PM, Eric Covener wrote:
>
> >> I would like to know the request type in my module
> >> (handler/filter), is there any way to know that (HTTP
> >> vs HTTPS)?
> >
> > apr_table_get(r->subprocess_env, "HTTPS") might be what you want
>
> That gets set in the Fixup hook, relatively late in the request
> processing process. You could call ap_http_scheme(r) to run the
> request scheme hook, which will return "https" if SSL is disabled or
> optional on the vhost that accepted the request.
Or better still, use the function registered by the ssl module for the purpose:
#if AP_SERVER_MAJORVERSION_NUMBER >= 2
APR_DECLARE_OPTIONAL_FN(int, ssl_is_https, (conn_rec *));
static APR_OPTIONAL_FN_TYPE(ssl_is_https) *wsgi_is_https = NULL;
#endif
...
if (!wsgi_is_https)
wsgi_is_https = APR_RETRIEVE_OPTIONAL_FN(ssl_is_https);
if (wsgi_is_https && wsgi_is_https(r->connection))
apr_table_set(r->subprocess_env, "HTTPS", "1");
Ie., HTTPS is set by the above sort of process, but as pointed out
that is done only in fixup phase, but you can call the ssl_is_https()
function direct if in earlier phase.
Graham