struct env_block *blk)
{
const struct headers *h = &c->ch;
- const char *s;
+ const char *s, *root = c->ctx->options[OPT_ROOT];
size_t len;
blk->len = blk->nvars = 0;
addenv(blk, "%s", "SERVER_PROTOCOL=HTTP/1.1");
addenv(blk, "%s", "REDIRECT_STATUS=200"); /* PHP */
addenv(blk, "SERVER_PORT=%d", c->loc_port);
- addenv(blk, "SERVER_NAME=%s", c->ctx->auth_realm);
- addenv(blk, "SERVER_ROOT=%s", c->ctx->document_root);
- addenv(blk, "DOCUMENT_ROOT=%s", c->ctx->document_root);
+ addenv(blk, "SERVER_NAME=%s", c->ctx->options[OPT_AUTH_REALM]);
+ addenv(blk, "SERVER_ROOT=%s", root);
+ addenv(blk, "DOCUMENT_ROOT=%s", root);
addenv(blk, "REQUEST_METHOD=%s", known_http_methods[c->method].ptr);
addenv(blk, "REMOTE_ADDR=%s", inet_ntoa(c->sa.u.sin.sin_addr));
addenv(blk, "REMOTE_PORT=%hu", ntohs(c->sa.u.sin.sin_port));
addenv(blk, "REQUEST_URI=%s", c->uri);
- addenv(blk, "SCRIPT_NAME=%s", prog + strlen(c->ctx->document_root));
+ addenv(blk, "SCRIPT_NAME=%s", prog + strlen(root));
addenv(blk, "SCRIPT_FILENAME=%s", prog); /* PHP */
addenv(blk, "PATH_TRANSLATED=%s", prog);
}
/* Add user-specified variables */
- s = c->ctx->cgi_vars;
+ s = c->ctx->options[OPT_CGI_ENVIRONMENT];
FOR_EACH_WORD_IN_LIST(s, len)
addenv(blk, "%.*s", len, s);
int ret, pair[2];
prepare_environment(c, prog, &blk);
+ pair[0] = pair[1] = -1;
/* CGI must be executed in its own directory */
(void) my_snprintf(dir, sizeof(dir), "%s", prog);