static int ssl_is_https(conn_rec *c)
{
- return isSecureConn (c->base_server, c);
+ secsocket_data *csd_data = (secsocket_data*)ap_get_module_config(c->conn_config, &nwssl_module);
+
+ return isSecureConn (c->base_server, c) || (csd_data && csd_data->is_secure);
}
/* This function must remain safe to use for a non-SSL connection. */
result = apr_table_get(r->headers_in, "Proxy-Connection");
else if (strcEQ(var, "HTTP_ACCEPT"))
result = apr_table_get(r->headers_in, "Accept");
+ else if (strcEQ(var, "HTTPS")) {
+ if (isSecure(r) || isSecureUpgraded(r))
+ result = "on";
+ else
+ result = "off";
+ }
else if (strlen(var) > 5 && strcEQn(var, "HTTP:", 5))
/* all other headers from which we are still not know about */
result = apr_table_get(r->headers_in, var+5);
result = NULL;
else if (strcEQ(var, "REMOTE_ADDR"))
result = c->remote_ip;
- else if (strcEQ(var, "HTTPS")) {
- if (isSecureConn (s, c))
- result = "on";
- else
- result = "off";
- }
}
/*