call*cgi: Added the REMOTE_USER CGI variable, as a mapping from X-Ash-Remote-User.
[ashd.git] / src / callcgi.c
index 72f814a..528219a 100644 (file)
@@ -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"))