X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcallcgi.c;h=528219a5dbccb99003ed6bf0461c03753a0eedba;hb=dd55bfef25d9301b797b24080fee710b05d12849;hp=72f814a828729f06bf6af15ace8923b719fb3c61;hpb=df96b2220cf1f738fdfc26236df1e91d5c89e078;p=ashd.git diff --git a/src/callcgi.c b/src/callcgi.c index 72f814a..528219a 100644 --- a/src/callcgi.c +++ b/src/callcgi.c @@ -53,7 +53,7 @@ static int passdata(FILE *in, FILE *out) } } if(ret > 0) { - if(pfds[0].revents & POLLIN) { + if(pfds[0].revents & (POLLIN | POLLERR | POLLHUP)) { ret = fread(buf, 1, 65536, in); if(ferror(in)) { flog(LOG_ERR, "callcgi: could not read input: %s", strerror(errno)); @@ -127,6 +127,8 @@ static pid_t forkchild(int inpath, char *prog, char *file, char *method, char *u putenv("HTTPS=on"); if(getenv("REQ_X_ASH_ADDRESS")) putenv(sprintf2("REMOTE_ADDR=%s", getenv("REQ_X_ASH_ADDRESS"))); + if(getenv("REQ_X_ASH_REMOTE_USER")) + putenv(sprintf2("REMOTE_USER=%s", getenv("REQ_X_ASH_REMOTE_USER"))); if(getenv("REQ_CONTENT_TYPE")) putenv(sprintf2("CONTENT_TYPE=%s", getenv("REQ_CONTENT_TYPE"))); if(getenv("REQ_CONTENT_LENGTH"))