]> git.dolda2000.com Git - ashd.git/blobdiff - src/callcgi.c
python: Keep a copy of the real socket for Python2 as in Python3.
[ashd.git] / src / callcgi.c
index 3a28880b41ad03b99a4000dcf78e2ecdda9ed1f2..2da11610e6cf8aaca59820196a79af2e3dda49de 100644 (file)
@@ -62,7 +62,8 @@ static int passdata(FILE *in, FILE *out)
                    return(1);
                }
                if(fwrite(buf, 1, ret, out) != ret) {
-                   flog(LOG_ERR, "callcgi: could not write output: %s", strerror(errno));
+                   if(errno != EPIPE)
+                       flog(LOG_ERR, "callcgi: could not write output: %s", strerror(errno));
                    return(1);
                }
            }
@@ -145,12 +146,16 @@ static pid_t forkchild(int inpath, char *prog, char *file, char *method, char *u
        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_ADDRESS"))
+           putenv(sprintf2("SERVER_ADDR=%s", getenv("REQ_X_ASH_SERVER_ADDRESS")));
        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_X_ASH_PORT"))
+           putenv(sprintf2("REMOTE_PORT=%s", getenv("REQ_X_ASH_PORT")));
        if(getenv("REQ_X_ASH_REMOTE_USER"))
            putenv(sprintf2("REMOTE_USER=%s", getenv("REQ_X_ASH_REMOTE_USER")));
        if(getenv("REQ_CONTENT_TYPE"))