X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcallcgi.c;h=2da11610e6cf8aaca59820196a79af2e3dda49de;hb=0ed8fedde5c18dd02349eb929082aa082c885879;hp=3a28880b41ad03b99a4000dcf78e2ecdda9ed1f2;hpb=18838a2eddc3ae7fdc8f3fefb8cd83c012328a5e;p=ashd.git diff --git a/src/callcgi.c b/src/callcgi.c index 3a28880..2da1161 100644 --- a/src/callcgi.c +++ b/src/callcgi.c @@ -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"))