--- parser3/src/targets/isapi/parser3isapi.C 2001/09/15 14:22:47 1.41 +++ parser3/src/targets/isapi/parser3isapi.C 2001/10/09 14:25:30 1.48 @@ -2,15 +2,17 @@ Parser: IIS extension. Copyright (c) 2000,2001 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexander Petrosyan (http://design.ru/paf) + + $Id: parser3isapi.C,v 1.48 2001/10/09 14:25:30 parser Exp $ */ -static const char *RCSId="$Id: parser3isapi.C,v 1.41 2001/09/15 14:22:47 parser Exp $"; #ifndef _MSC_VER # error compile ISAPI module with MSVC [no urge for now to make it autoconf-ed (PAF)] #endif +#include "pa_config_includes.h" + #include #include @@ -25,6 +27,31 @@ static const char *RCSId="$Id: parser3is #define MAX_STATUS_LENGTH sizeof("xxxx LONGEST STATUS DESCRIPTION") +// consts + +extern const char *main_RCSIds[]; +#ifdef USE_SMTP +extern const char *smtp_RCSIds[]; +#endif +extern const char *gd_RCSIds[]; +extern const char *classes_RCSIds[]; +extern const char *types_RCSIds[]; +extern const char *parser3isapi_RCSIds[]; +const char **RCSIds[]={ + main_RCSIds, +#ifdef USE_SMTP + smtp_RCSIds, +#endif + gd_RCSIds, + classes_RCSIds, + types_RCSIds, + parser3isapi_RCSIds, +#ifdef XML + xalan_patched_RCSIds, +#endif + 0 +}; + // SAPI #ifndef DOXYGEN @@ -48,8 +75,10 @@ void SAPI::log(Pool& pool, const char *f char buf[MAX_STRING]; const char *prefix="PARSER_ERROR:"; strcpy(buf, prefix); - DWORD size=vsnprintf(buf+strlen(prefix), MAX_STRING-strlen(prefix), fmt, args); - + char *start=buf+strlen(prefix); + size_t size=vsnprintf(start, MAX_STRING-strlen(prefix), fmt, args); + remove_crlf(start, start+size); + ctx.lpECB->ServerSupportFunction(ctx.lpECB->ConnID, HSE_APPEND_LOG_PARAMETER, buf, &size, 0); } @@ -280,14 +309,18 @@ DWORD WINAPI HttpExtensionProc(LPEXTENSI // some root-controlled location // c:\windows + char root_config_path[MAX_STRING]; + GetWindowsDirectory(root_config_path, MAX_STRING); // must be dynamic: rethrowing from request.core // may return 'source' which can be inside of 'root auto.p@exeception' - char *root_auto_path=(char *)pool.malloc(MAX_STRING); - GetWindowsDirectory(root_auto_path, MAX_STRING); + char *root_config_filespec=(char *)pool.malloc(MAX_STRING); + snprintf(root_config_filespec, MAX_STRING, + "%s/%s", + root_config_path, CONFIG_FILE_NAME); // process the request request.core( - root_auto_path, false/*may be abcent*/, // /path/to/admin/auto.p + root_config_filespec, false/*may be abcent*/, // /path/to/admin/auto.p 0/*parser_site_auto_path*/, false, // /path/to/site/auto.p header_only); // successful finish