X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcallcgi.c;h=84d4c6916db069b8bd4e7ea6d181960c505f7928;hb=8626e489ae471e4842aecef363bfb9e8b3eaa246;hp=9e7c21b4c7e76851991e31624312c3a84da65713;hpb=81cfca6c6ec15e3a8f94e278f2bdfcc1249eb122;p=ashd.git diff --git a/src/callcgi.c b/src/callcgi.c index 9e7c21b..84d4c69 100644 --- a/src/callcgi.c +++ b/src/callcgi.c @@ -85,21 +85,20 @@ static void forkchild(int inpath, char *prog, char *file, char *method, char *ur close(i); if((qp = strchr(url, '?')) != NULL) *(qp++) = 0; - /* - * XXX: Currently missing: - * SERVER_NAME (Partially) - * SERVER_PORT - */ putenv(sprintf2("SERVER_SOFTWARE=ashd/%s", VERSION)); putenv("GATEWAY_INTERFACE=CGI/1.1"); if(getenv("HTTP_VERSION")) - putenv(sprintf2("SERVER_PROTOCOL=HTTP/%s", getenv("HTTP_VERSION"))); + putenv(sprintf2("SERVER_PROTOCOL=%s", getenv("HTTP_VERSION"))); putenv(sprintf2("REQUEST_METHOD=%s", method)); putenv(sprintf2("PATH_INFO=%s", rest)); putenv(sprintf2("SCRIPT_NAME=%s", url)); putenv(sprintf2("QUERY_STRING=%s", qp?qp:"")); if(getenv("REQ_HOST")) putenv(sprintf2("SERVER_NAME=%s", getenv("REQ_HOST"))); + if(getenv("REQ_X_ASH_SERVER_PORT")) + putenv(sprintf2("SERVER_PORT=%s", getenv("REQ_X_ASH_SERVER_PORT"))); + if(getenv("REQ_X_ASH_PROTOCOL") && !strcmp(getenv("REQ_X_ASH_PROTOCOL"), "https")) + putenv("HTTPS=ON"); if(getenv("REQ_X_ASH_ADDRESS")) putenv(sprintf2("REMOTE_ADDR=%s", getenv("REQ_X_ASH_ADDRESS"))); if(getenv("REQ_CONTENT_TYPE"))