CVS update: php31/sapi

From: Date: Sun, 30 Aug 1998 06:45:29 +0000
Subject: CVS update: php31/sapi
Groups: php.dev 
Request: Send a blank email to php-dev+get-662@lists.php.net to get a copy of this message
Date: Sunday August 30, 1998 @ 2:45 Author: shane Update of /repository/php31/sapi In directory asf:/u2/tmp/cvs-serv20306/sapi Modified Files: apache_sapi.c cgi_sapi.c isapi_sapi.c nsapi_sapi.c sapi.h wsapi_sapi.c Log Message: minor fixes. remove pwd.h, it didn't do anything. added file security functions to implement safe mode on NT with NTFS Index: php31/sapi/apache_sapi.c diff -c php31/sapi/apache_sapi.c:2.15 php31/sapi/apache_sapi.c:2.16 *** php31/sapi/apache_sapi.c:2.15 Fri Aug 28 16:40:30 1998 --- php31/sapi/apache_sapi.c Sun Aug 30 02:45:28 1998 *************** *** 532,538 **** --- 532,542 ---- values. We can afford it, and it means we don't have to worry about resetting the static variables after every hit. */ + #if (WIN32|WINNT) + sapi_info->page_uid = NULL; /* contains SID on windows nt */ + #else sapi_info->page_uid = php3_rqst->finfo.st_uid; + #endif sapi_info->page_inode = php3_rqst->finfo.st_ino; sapi_info->page_mtime = php3_rqst->finfo.st_mtime; return sapi_info; *************** *** 558,572 **** PHPAPI int apache_php3_module_main(request_rec * r, int fd, int display_source_mode, int preprocessed) { ! struct sapi_request_info *sapi_info = sapi_init(r); if (!sapi_info) return FAILURE; sapi_info->display_source_mode = display_source_mode; sapi_info->preprocess = preprocessed; sapi_info->fileopen = fd; ! return (php3_sapi_main(sapi_info, module_info)); } #if WIN32|WINNT --- 562,611 ---- PHPAPI int apache_php3_module_main(request_rec * r, int fd, int display_source_mode, int preprocessed) { ! struct sapi_request_info *sapi_info; ! int ret=0; + #if USE_EXCEPTION + __try{ + #endif + sapi_info = sapi_init(r); + #if USE_EXCEPTION + } __except(EXCEPTION_EXECUTE_HANDLER) { + #if DEBUG + char logmessage[80]; + snprintf(logmessage, 79, "%d:apache sapi_init exception\n", GetCurrentThreadId()); + OutputDebugString(logmessage); + #endif + return FAILURE; + } + #endif + if (!sapi_info) return FAILURE; sapi_info->display_source_mode = display_source_mode; sapi_info->preprocess = preprocessed; sapi_info->fileopen = fd; ! ! #if USE_EXCEPTION ! __try{ ! #endif ! ret=php3_sapi_main(sapi_info, module_info); ! #if USE_EXCEPTION ! } __except(EXCEPTION_EXECUTE_HANDLER) { ! #if DEBUG ! char logmessage[80]; ! snprintf(logmessage, 79, "%d:apache php3_sapi_main exception\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); ! #endif ! return FAILURE; ! } ! #endif ! #if (WIN32|WINNT) ! if(sapi_info->page_uid)LocalFree(sapi_info->page_uid); ! #endif ! ! return ret; } #if WIN32|WINNT *************** *** 579,584 **** --- 618,626 ---- DWORD ul_reason_for_call, LPVOID lpReserved) { + #if USE_EXCEPTION + __try{ + #endif switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: return _php3_sapi_process_start(module_info); *************** *** 603,608 **** --- 645,660 ---- return _php3_sapi_process_end(); break; } + #if USE_EXCEPTION + } __except(EXCEPTION_EXECUTE_HANDLER) { + #if DEBUG + char logmessage[80]; + snprintf(logmessage, 79, "%d:wsapi_dllmain exception\n", GetCurrentThreadId()); + OutputDebugString(logmessage); + #endif + return FALSE; + } + #endif return FALSE; } Index: php31/sapi/cgi_sapi.c diff -c php31/sapi/cgi_sapi.c:2.18 php31/sapi/cgi_sapi.c:2.19 *** php31/sapi/cgi_sapi.c:2.18 Thu Aug 27 01:01:13 1998 --- php31/sapi/cgi_sapi.c Sun Aug 30 02:45:28 1998 *************** *** 231,239 **** sapi_info->interactive=0; /*page stat info */ ! sapi_info->page_uid = 0; ! sapi_info->page_inode = 0; ! sapi_info->page_mtime = 0; sapi_info->_php3_hash_server_env = sapi__php3_hash_server_env; sapi_info->register_clean = sapi_reqister_cleanup; --- 231,243 ---- sapi_info->interactive=0; /*page stat info */ ! #if (WIN32|WINNT) ! sapi_info->page_uid = NULL; /* contains SID on windows nt */ ! #else ! sapi_info->page_uid = -1; ! #endif ! sapi_info->page_inode = -1; ! sapi_info->page_mtime = -1; sapi_info->_php3_hash_server_env = sapi__php3_hash_server_env; sapi_info->register_clean = sapi_reqister_cleanup; Index: php31/sapi/isapi_sapi.c diff -c php31/sapi/isapi_sapi.c:2.19 php31/sapi/isapi_sapi.c:2.20 *** php31/sapi/isapi_sapi.c:2.19 Fri Aug 28 16:40:31 1998 --- php31/sapi/isapi_sapi.c Sun Aug 30 02:45:29 1998 *************** *** 10,15 **** --- 10,16 ---- #include "snprintf.h" #include "ext/standard/php3_string.h" #include "ext/standard/base64.h" + #include "os/nt/fileaccess.h" char *empty_string = ""; char *undefined_variable_string = "\0"; *************** *** 346,354 **** PUTS("</table>\n"); } ! struct sapi_request_info *sapi_init(LPEXTENSION_CONTROL_BLOCK lpEcb) { - struct sapi_request_info *sapi_info = malloc(sizeof(struct sapi_request_info)); sapi_info->scid = lpEcb; sapi_info->path_info = lpEcb->lpszPathInfo; --- 347,354 ---- PUTS("</table>\n"); } ! void sapi_init(struct sapi_request_info *sapi_info,LPEXTENSION_CONTROL_BLOCK lpEcb) { sapi_info->scid = lpEcb; sapi_info->path_info = lpEcb->lpszPathInfo; *************** *** 396,417 **** sapi_info->quiet_mode = 0; /*page stat info */ ! sapi_info->page_uid = 0; ! sapi_info->page_inode = 0; ! sapi_info->page_mtime = 0; ! return sapi_info; } void sapi_shutdown(struct sapi_request_info *sapi_info) { ! if (sapi_info->rqst_filename) ! free(sapi_info->rqst_filename); ! if (sapi_info->script_name) ! free(sapi_info->script_name); ! if (sapi_info->cookies) ! free(sapi_info->cookies); ! if (sapi_info) ! free(sapi_info); sapi_info = NULL; } --- 396,419 ---- sapi_info->quiet_mode = 0; /*page stat info */ ! #if (WIN32|WINNT) ! sapi_info->page_uid = NULL; /* contains SID on windows nt */ ! #else ! sapi_info->page_uid = -1; ! #endif ! sapi_info->page_inode = -1; ! sapi_info->page_mtime = -1; } void sapi_shutdown(struct sapi_request_info *sapi_info) { ! if (sapi_info->rqst_filename)free(sapi_info->rqst_filename); ! if (sapi_info->script_name)free(sapi_info->script_name); ! if (sapi_info->cookies)free(sapi_info->cookies); ! #if (WIN32|WINNT) ! if(sapi_info->page_uid)LocalFree(sapi_info->page_uid); ! #endif ! if (sapi_info)free(sapi_info); sapi_info = NULL; } *************** *** 430,460 **** DWORD WINAPI HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpEcb) { int ret = 0; ! struct sapi_request_info *sapi_info; #if DEBUG ! char logmessage[80]; ! snprintf(logmessage, 79, "%d:isapi_main:connID\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); #endif ! ! ! sapi_info = sapi_init(lpEcb); #if DEBUG ! snprintf(logmessage, 79, "%d:isapi_main:request info set\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); #endif ! ret = php3_sapi_main(sapi_info, module_info); #if DEBUG ! snprintf(logmessage, 79, "%d:isapi_main:php parsed\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); #endif /*make sure we free any loose allocations */ ! sapi_shutdown(sapi_info); #if DEBUG ! snprintf(logmessage, 79, "%d:isapi_main:request info reset\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); #endif if (ret == SUCCESS) return HSE_STATUS_SUCCESS; else --- 432,483 ---- DWORD WINAPI HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpEcb) { int ret = 0; ! struct sapi_request_info *sapi_info = malloc(sizeof(struct sapi_request_info)); ! ! __try{ ! sapi_init(sapi_info,lpEcb); ! } __except(EXCEPTION_EXECUTE_HANDLER) { #if DEBUG ! char logmessage[80]; ! snprintf(logmessage, 79, "%d:sapi_init exception\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); #endif ! __try{ ! sapi_shutdown(sapi_info); ! } __except(EXCEPTION_EXECUTE_HANDLER) { ! int i=0; /*dummy var*/ #if DEBUG ! char logmessage[80]; ! snprintf(logmessage, 79, "%d:sapi_shutdown exception\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); #endif ! } ! return HSE_STATUS_ERROR; ! } ! ! __try{ ! ret = php3_sapi_main(sapi_info, module_info); ! } __except(EXCEPTION_EXECUTE_HANDLER) { ! int i=0; /*dummy var*/ #if DEBUG ! char logmessage[80]; ! snprintf(logmessage, 79, "%d:php3_sapi_main exception\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); #endif + } /*make sure we free any loose allocations */ ! __try{ ! sapi_shutdown(sapi_info); ! } __except(EXCEPTION_EXECUTE_HANDLER) { ! int i=0; /*dummy var*/ #if DEBUG ! char logmessage[80]; ! snprintf(logmessage, 79, "%d:sapi_shutdown exception\n", GetCurrentThreadId()); ! OutputDebugString(logmessage); #endif + } + if (ret == SUCCESS) return HSE_STATUS_SUCCESS; else Index: php31/sapi/nsapi_sapi.c diff -c php31/sapi/nsapi_sapi.c:2.10 php31/sapi/nsapi_sapi.c:2.11 *** php31/sapi/nsapi_sapi.c:2.10 Fri Aug 28 16:40:31 1998 --- php31/sapi/nsapi_sapi.c Sun Aug 30 02:45:29 1998 *************** *** 572,580 **** sapi_info->quiet_mode = 0; /*page stat info */ ! sapi_info->page_uid = 0; ! sapi_info->page_inode = 0; ! sapi_info->page_mtime = 0; } --- 572,584 ---- sapi_info->quiet_mode = 0; /*page stat info */ ! #if (WIN32|WINNT) ! sapi_info->page_uid = NULL; /* contains SID on windows nt */ ! #else ! sapi_info->page_uid = -1; ! #endif ! sapi_info->page_inode = -1; ! sapi_info->page_mtime = -1; } *************** *** 636,641 **** --- 640,648 ---- ret=php3_sapi_main(sapi_info, module_info); + #if (WIN32|WINNT) + if(sapi_info->page_uid)LocalFree(sapi_info->page_uid); + #endif free(sapi_info); free(ns_rqst); if (ret == SUCCESS){ Index: php31/sapi/sapi.h diff -c php31/sapi/sapi.h:2.14 php31/sapi/sapi.h:2.15 *** php31/sapi/sapi.h:2.14 Tue Aug 25 14:35:54 1998 --- php31/sapi/sapi.h Sun Aug 30 02:45:29 1998 *************** *** 55,61 **** --- 55,65 ---- int cgi, display_source_mode, preprocess, info_only, quiet_mode, interactive; char *argv0, *ini_path, *script_filename; /* page stat vars */ + #if (WIN32|WINNT) + PSID page_uid; + #else long page_uid; + #endif long page_inode; long page_mtime; Index: php31/sapi/wsapi_sapi.c diff -c php31/sapi/wsapi_sapi.c:2.7 php31/sapi/wsapi_sapi.c:2.8 *** php31/sapi/wsapi_sapi.c:2.7 Fri Aug 28 16:40:32 1998 --- php31/sapi/wsapi_sapi.c Sun Aug 30 02:45:29 1998 *************** *** 391,399 **** sapi_info->quiet_mode = 0; /*page stat info */ ! sapi_info->page_uid = 0; ! sapi_info->page_inode = 0; ! sapi_info->page_mtime = 0; return sapi_info; } --- 391,403 ---- sapi_info->quiet_mode = 0; /*page stat info */ ! #if (WIN32|WINNT) ! sapi_info->page_uid = NULL; /* contains SID on windows nt */ ! #else ! sapi_info->page_uid = -1; ! #endif ! sapi_info->page_inode = -1; ! sapi_info->page_mtime = -1; return sapi_info; } *************** *** 409,414 **** --- 413,421 ---- wsapi_free(sapi_info->script_name); if (sapi_info->cookies) wsapi_free(sapi_info->cookies); + #if (WIN32|WINNT) + if(sapi_info->page_uid)LocalFree(sapi_info->page_uid); + #endif if (sapi_info) wsapi_free(sapi_info); sapi_info = NULL; -- PHP Development Mailing List http://www.php.net/ To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net For help: php-dev-help@lists.php.net

« previous php.dev (#662) next »