cvs: /php4/sapi/isapi php4isapi.c

From: Date: Sun, 13 Feb 2000 01:25:21 +0000
Subject: cvs: /php4/sapi/isapi php4isapi.c
Groups: php.version4 
Request: Send a blank email to php-version4+get-10200@lists.php.net to get a copy of this message
zeev Sat Feb 12 17:25:21 2000 EDT Modified files: /php4/sapi/isapi php4isapi.c Log: Report access violations Index: php4/sapi/isapi/php4isapi.c diff -u php4/sapi/isapi/php4isapi.c:1.22 php4/sapi/isapi/php4isapi.c:1.23 --- php4/sapi/isapi/php4isapi.c:1.22 Sat Feb 12 17:14:45 2000 +++ php4/sapi/isapi/php4isapi.c Sat Feb 12 17:24:51 2000 @@ -452,6 +452,27 @@ } +static void php_isapi_report_exception(char *message, int message_len SLS_DC) +{ + if (!SG(headers_sent)) { + HSE_SEND_HEADER_EX_INFO header_info; + LPEXTENSION_CONTROL_BLOCK lpECB = (LPEXTENSION_CONTROL_BLOCK) SG(server_context); + + header_info.pszStatus = "500 Internal Server Error"; +#ifndef WITH_ZEUS + header_info.cchStatus = strlen(header_info.pszStatus); +#endif + header_info.pszHeader = "Content-Type: text/html\r\n\r\n"; + header_info.cchHeader = strlen(header_info.pszHeader); + + lpECB->dwHttpStatusCode = 500; + lpECB->ServerSupportFunction(lpECB->ConnID, HSE_REQ_SEND_RESPONSE_HEADER_EX, &header_info, NULL, NULL); + SG(headers_sent)=1; + } + sapi_isapi_ub_write(message, message_len); +} + + BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *pVer) { pVer->dwExtensionVersion = HSE_VERSION; @@ -516,22 +537,10 @@ } CG(unclean_shutdown)=1; - - if (!SG(headers_sent)) { - HSE_SEND_HEADER_EX_INFO header_info; - - header_info.pszStatus = "500 Internal Server Error"; -#ifndef WITH_ZEUS - header_info.cchStatus = strlen(header_info.pszStatus); -#endif - header_info.pszHeader = "Content-Type: text/html\r\n\r\n"; - header_info.cchHeader = strlen(header_info.pszHeader); - - lpECB->dwHttpStatusCode = 500; - lpECB->ServerSupportFunction(lpECB->ConnID, HSE_REQ_SEND_RESPONSE_HEADER_EX, &header_info, NULL, NULL); - SG(headers_sent)=1; - } - sapi_isapi_ub_write("Stack Overflow", sizeof("Stack Overflow")-1); + php_isapi_report_exception("Stack overflow", sizeof("Stack overflow")-1 SLS_CC); + } else if (_exception_code()==EXCEPTION_ACCESS_VIOLATION) { + php_isapi_report_exception("Access violation", sizeof("Access violation")-1 SLS_CC); + ExitThread(0); } else { ExitThread(0); }

« previous php.version4 (#10200) next »