CVS update: php31/sapi
| From: | shane | 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