diff options
-rw-r--r-- | fcgiwrap.c | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -485,9 +485,10 @@ static void inherit_environment(void) } } -static void error_403(const char *reason, const char *filename) +static void cgi_error(const char *message, const char *reason, const char *filename) { - puts("Status: 403 Forbidden\nContent-type: text/plain\n\n403"); + printf("Status: %s\r\nContent-Type: text/plain\r\n\r\n%s\r\n", + message, message); fflush(stdout); if (filename) { fprintf(stderr, "%s (%s)\n", reason, filename); @@ -536,21 +537,20 @@ static void handle_fcgi_request(void) filename = get_cgi_filename(); inherit_environment(); if (!filename) - error_403("Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or SCRIPT_FILENAME) set and is the script executable?", NULL); + cgi_error("403 Forbidden", "Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or SCRIPT_FILENAME) set and is the script executable?", NULL); last_slash = strrchr(filename, '/'); if (!last_slash) - error_403("Script name must be a fully qualified path", filename); + cgi_error("403 Forbidden", "Script name must be a fully qualified path", filename); *last_slash = 0; if (chdir(filename) < 0) - error_403("Cannot chdir to script directory", filename); + cgi_error("403 Forbidden", "Cannot chdir to script directory", filename); *last_slash = '/'; execl(filename, filename, (void *)NULL); - puts("Status: 502 Bad Gateway\nContent-type: text/plain\n\n502"); - exit(99); + cgi_error("502 Bad Gateway", "Cannot execute script", filename); default: /* parent */ close(pipe_in[0]); |