NVStk* sgcgi_getenv (char **vars, int count) {
NVStk *stack = stk_new_nvstk();
if(!stack) {
sgcgi_fatal(SGCGI_ERR_MALLOC);
}
int i;
char *tmp;
for(i=0; i<count; i++) {
tmp = getenv(vars[i]);
if(tmp) {
stk_nvstk_push(stack,vars[i],tmp);
}
}
return stack;
}
NVStk* sgcgi_get_servervars (void) {
char *servervars[] = {
"PATH_INFO", "PATH_TRANSLATED","SCRIPT_NAME",
"QUERY_STRING","REMOTE_HOST","REMOTE_ADDR",
"CONTENT_TYPE","CONTENT_LENGTH","DOCUMENT_ROOT",
"REMOTE_PORT","REQUEST_METHOD","REQUEST_URI",
"SCRIPT_FILENAME","SCRIPT_URI","SCRIPT_URL",
"SERVER_NAME","SERVER_SOFTWARE",
"GATEWAY_INTERFACE","SERVER_PROTOCOL",
"SERVER_PORT","REQUEST_METHOD","AUTH_TYPE",
"REMOTE_USER","REMOTE_IDENT","PATH","PWD",
"SERVER_ADDR","SERVER_ADMIN"
};
return sgcgi_getenv(servervars,28);
}
NVStk* sgcgi_get_reqheaders (void) {
char *reqheadervars[] = {
"HTTP_USER_AGENT","HTTP_COOKIE","HTTP_REFERER",
"HTTP_HOST","HTTP_ACCEPT","HTTP_ACCEPT_CHARSET",
"HTTP_ACCEPT_ENCODING","HTTP_ACCEPT_LANGUAGE",
"HTTP_CONNECTION","HTTP_KEEP_ALIVE"
};
return sgcgi_getenv(reqheadervars,10);
}