--- parser3/src/targets/cgi/parser3.C 2001/05/24 09:29:52 1.90 +++ parser3/src/targets/cgi/parser3.C 2001/08/27 13:27:26 1.97 @@ -4,9 +4,8 @@ Copyright(c) 2001 ArtLebedev Group(http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - - $Id: parser3.C,v 1.90 2001/05/24 09:29:52 parser Exp $ */ +static const char *RCSId="$Id: parser3.C,v 1.97 2001/08/27 13:27:26 parser Exp $"; #include "pa_config_includes.h" @@ -124,6 +123,18 @@ void SAPI::send_body(Pool& pool, const v stdout_write(buf, size); } +// + +char *full_file_spec(char *file_name) { + if(!strchr(file_name, '/')) { + static char cwd[MAX_STRING]; getcwd(cwd, MAX_STRING); + static char buf[MAX_STRING]; + snprintf(buf, MAX_STRING, "%s/%s", cwd, file_name); + return buf; + } + return file_name; +} + /** main workhorse @@ -167,6 +178,7 @@ int main(int argc, char *argv[]) { #ifdef WIN32 back_slashes_to_slashes(filespec_to_process); #endif + filespec_to_process=full_file_spec(filespec_to_process); const char *request_method=getenv("REQUEST_METHOD"); bool header_only=request_method && strcasecmp(request_method, "HEAD")==0; @@ -257,7 +269,7 @@ int main(int argc, char *argv[]) { // prepare to process request Request request(pool, request_info, - cgi||1 ? String::UL_USER_HTML : String::UL_AS_IS + cgi ? String::UL_USER_HTML : String::UL_AS_IS ); // some root-controlled location @@ -298,6 +310,10 @@ int main(int argc, char *argv[]) { #ifdef WIN32 SetUnhandledExceptionFilter(0); #endif + // + if(!cgi) + SAPI::send_body(pool, "\n", 1); + // successful finish return 0; } PCATCH(e) { // global problem @@ -329,6 +345,10 @@ int main(int argc, char *argv[]) { if(!header_only) SAPI::send_body(pool, body, content_length); + // + if(!cgi) + SAPI::send_body(pool, "\n", 1); + // unsuccessful finish return 1; }