From: Andrew McNab Date: Sat, 10 Sep 2005 21:05:51 +0000 (+0000) Subject: Fix for attempted Upgrade when already on HTTP vhost X-Git-Tag: gridsite-core_R_1_1_11~4 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=c8c1993a817f5b6eae2a7bbb1935aaf4caf0259f;p=jra1mw.git Fix for attempted Upgrade when already on HTTP vhost --- diff --git a/org.gridsite.core/CHANGES b/org.gridsite.core/CHANGES index 0f6dad6..ef4120e 100644 --- a/org.gridsite.core/CHANGES +++ b/org.gridsite.core/CHANGES @@ -1,3 +1,6 @@ +* Sat Sep 10 2005 Andrew McNab +- Fix problem with attempted upgrades to GridHTTP when + already on the HTTP virtual server. * Fri Sep 9 2005 Andrew McNab - GRST_DESTINATION_TRANSLATED and GRST_DESTINATION_PERM environment variables, for use with CGI-based COPY. diff --git a/org.gridsite.core/src/mod_gridsite.c b/org.gridsite.core/src/mod_gridsite.c index e1eccc5..5d90b13 100644 --- a/org.gridsite.core/src/mod_gridsite.c +++ b/org.gridsite.core/src/mod_gridsite.c @@ -1080,6 +1080,7 @@ static int mod_gridsite_nondir_handler(request_rec *r, mod_gridsite_dir_cfg *con */ { char *upgradeheader, *upgradespaced, *p; + const char *https_env; /* *** is this a write method or GridHTTP HTTPS->HTTP redirection? only possible if GridSiteAuth on *** */ @@ -1092,7 +1093,8 @@ static int mod_gridsite_nondir_handler(request_rec *r, mod_gridsite_dir_cfg *con (strstr(conf->methods, " PUT ") != NULL))) && ((upgradeheader = (char *) apr_table_get(r->headers_in, "Upgrade")) != NULL) && - (strcasecmp(apr_table_get(r->subprocess_env, "HTTPS"), "on") == 0)) + ((https_env=apr_table_get(r->subprocess_env,"HTTPS")) != NULL) && + (strcasecmp(https_env, "on") == 0)) { upgradespaced = apr_psprintf(r->pool, " %s ", upgradeheader); @@ -1100,7 +1102,7 @@ static int mod_gridsite_nondir_handler(request_rec *r, mod_gridsite_dir_cfg *con if ((*p == ',') || (*p == '\t')) *p = ' '; // TODO: what if we're pointing at a CGI or some dynamic content??? - + if (strstr(upgradespaced, " GridHTTP/1.0 ") != NULL) return http_gridhttp(r, conf); }