cvs: /php4/sapi/apache apachephp4.dsp mod_php4.c sapi_apache.c
| From: | Shane Caraveo | Date: | Thu, 04 May 2000 03:28:34 +0000 |
| Subject: | cvs: /php4/sapi/apache apachephp4.dsp mod_php4.c sapi_apache.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-14442@lists.php.net to get a copy of this message | ||
shane Wed May 3 20:28:34 2000 EDT
Modified files:
/php4/sapi/apache apachephp4.dsp mod_php4.c sapi_apache.c
Log:
more apachewin32 work. much better now, but still crashing in zend_execute. At least it's
getting the file open now though.
Index: php4/sapi/apache/apachephp4.dsp
diff -u php4/sapi/apache/apachephp4.dsp:1.1 php4/sapi/apache/apachephp4.dsp:1.2
--- php4/sapi/apache/apachephp4.dsp:1.1 Sat Apr 29 21:15:26 2000
+++ php4/sapi/apache/apachephp4.dsp Wed May 3 20:28:34 2000
@@ -54,7 +54,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ZendTS.lib TSRM.lib php4ts.lib ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib
odbccp32.lib /nologo /dll /machine:I386 /libpath:"\apache\src\corer"
/libpath:"..\..\Release_TS" /libpath:"..\..\TSRM\Release_TS"
/libpath:"..\..\Zend\Release_TS"
+# ADD LINK32 ZendTS.lib TSRM.lib php4ts.lib ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib
odbccp32.lib /nologo /base:"0x60000000" /dll /machine:I386
/libpath:"\apache\src\corer" /libpath:"..\..\Release_TS"
/libpath:"..\..\TSRM\Release_TS" /libpath:"..\..\Zend\Release_TS"
!ELSEIF "$(CFG)" == "ApachePHP4 - Win32 Debug_TS"
@@ -65,11 +65,12 @@
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Debug_TS"
+# PROP Output_Dir "e:\apache\modules"
# PROP Intermediate_Dir "Debug_TS"
+# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "APACHEPHP4_EXPORTS"
/YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "...\..\include" /I "..\..\win32" /I
"..\..\Zend" /I "..\.." /I "..\..\..\bindlib_w32" /I
"\apache\src\include" /D ZEND_DEBUG=1 /D "ZTS" /D "ZEND_WIN32" /D
"PHP_WIN32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D
"_MBCS" /D "_USRDLL" /D "APACHEPHP4_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "...\..\include" /I "..\..\win32" /I
"..\..\Zend" /I "..\.." /I "..\..\..\bindlib_w32" /I
"\apache\src\include" /D ZEND_DEBUG=1 /D "ZTS" /D "ZEND_WIN32" /D
"PHP_WIN32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D
"_MBCS" /D "_USRDLL" /D "APACHEPHP4_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -79,7 +80,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ZendTS.lib TSRM.lib php4ts_debug.lib ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib
odbccp32.lib /nologo /dll /machine:I386 /libpath:"\apache\src\cored"
/libpath:"..\..\Debug_TS" /libpath:"..\..\TSRM\Debug_TS"
/libpath:"..\..\Zend\Debug_TS"
+# ADD LINK32 php4ts_debug.lib ApacheCore.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
/nologo /base:"0x60000000" /dll /machine:I386 /libpath:"\apache\src\cored"
/libpath:"..\..\Debug_TS" /libpath:"..\..\TSRM\Debug_TS"
/libpath:"..\..\Zend\Debug_TS"
!ELSEIF "$(CFG)" == "ApachePHP4 - Win32 Release_TS_inline"
Index: php4/sapi/apache/mod_php4.c
diff -u php4/sapi/apache/mod_php4.c:1.45 php4/sapi/apache/mod_php4.c:1.46
--- php4/sapi/apache/mod_php4.c:1.45 Sat Apr 29 21:21:52 2000
+++ php4/sapi/apache/mod_php4.c Wed May 3 20:28:34 2000
@@ -17,7 +17,7 @@
| PHP 4.0 patches by Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: mod_php4.c,v 1.45 2000/04/30 04:21:52 shane Exp $ */
+/* $Id: mod_php4.c,v 1.46 2000/05/04 03:28:34 shane Exp $ */
#define NO_REGEX_EXTRA_H
#ifdef WIN32
@@ -64,7 +64,7 @@
# include "mod_dav.h"
#endif
-PHPAPI int apache_php_module_main(request_rec *r, int fd, int display_source_mode SLS_DC);
+int apache_php_module_main(request_rec *r, int fd, int display_source_mode CLS_DC ELS_DC PLS_DC
SLS_DC);
void php_save_umask(void);
void php_restore_umask(void);
int sapi_apache_read_post(char *buffer, uint count_bytes SLS_DC);
@@ -106,8 +106,9 @@
int type;
} php_per_dir_entry;
+/* handled apropriately in apache_php_module_main */
+/* popenf isn't working on Windows, use open instead
#if WIN32|WINNT
-/* popenf isn't working on Windows, use open instead*/
# ifdef popenf
# undef popenf
# endif
@@ -116,9 +117,8 @@
# undef pclosef
# endif
# define pclosef(p,f) close(f)
-#else
-# define php_popenf(p,n,f,m) popenf((p),(n),(f),(m))
#endif
+*/
php_apache_info_struct php_apache_info; /* active config */
@@ -239,10 +239,7 @@
array_header *arr = table_elts(((request_rec *) SG(server_context))->subprocess_env);
table_entry *elts = (table_entry *) arr->elts;
char *script_filename=NULL;
-/* Theses are already in parameters?
- ELS_FETCH();
- PLS_FETCH();
-*/
+
for (i = 0; i < arr->nelts; i++) {
char *val;
@@ -264,31 +261,12 @@
php_register_variable("PHP_SELF", ((request_rec *) SG(server_context))->uri,
track_vars_array ELS_CC PLS_CC);
}
-static int
-php_apache_startup(sapi_module_struct *sapi_module)
+static int php_apache_startup(sapi_module_struct *sapi_module)
{
-#ifdef PHP_WIN32
- /* this is needed because apache reloads this dll twice due
- // to a colision. A better way to do this is to define the load
- // address for the dll, but am not sure what it should be.
- // this is just a quick hack to get it working.
- */
- static int php_apache_started=0;
- static int apache_startup_success = FAILURE;
- if (php_apache_started>0) return apache_startup_success;
- php_apache_started=1;
-#endif
-
if(php_module_startup(sapi_module) == FAILURE
|| zend_startup_module(&apache_module_entry) == FAILURE) {
-#ifdef PHP_WIN32
- apache_startup_success = FAILURE;
-#endif
return FAILURE;
} else {
-#ifdef PHP_WIN32
- apache_startup_success = SUCCESS;
-#endif
return SUCCESS;
}
}
@@ -449,6 +427,8 @@
HashTable *per_dir_conf;
SLS_FETCH();
ELS_FETCH();
+ CLS_FETCH();
+ PLS_FETCH();
if (setjmp(EG(bailout))!=0) {
return OK;
@@ -516,7 +496,7 @@
add_cgi_vars(r);
init_request_info(SLS_C);
- apache_php_module_main(r, fd, display_source_mode SLS_CC);
+ apache_php_module_main(r, fd, display_source_mode CLS_CC ELS_CC PLS_CC SLS_CC);
/* Done, restore umask, turn off timeout, close file and return */
php_restore_umask();
@@ -591,6 +571,9 @@
if (!apache_php_initialized) {
apache_php_initialized = 1;
+#ifdef ZTS
+ tsrm_startup(1, 1, 0);
+#endif
sapi_startup(&sapi_module);
php_apache_startup(&sapi_module);
}
@@ -677,6 +660,9 @@
{
apache_php_initialized = 0;
sapi_module.shutdown(&sapi_module);
+#ifdef ZTS
+ tsrm_shutdown();
+#endif
}
@@ -685,6 +671,9 @@
register_cleanup(p, NULL, (void (*)(void *))apache_php_module_shutdown_wrapper, (void (*)(void
*))php_module_shutdown_for_exec);
if (!apache_php_initialized) {
apache_php_initialized = 1;
+#ifdef ZTS
+ tsrm_startup(1, 1, 0);
+#endif
sapi_startup(&sapi_module);
php_apache_startup(&sapi_module);
}
@@ -792,32 +781,6 @@
};
-#ifdef PHP_WIN32
-__declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
-{
- switch (fdwReason) {
- case DLL_PROCESS_ATTACH:
- tsrm_startup(1, 1, 0);
- sapi_startup(&sapi_module);
- if (sapi_module.startup) {
- sapi_module.startup(&sapi_module);
- }
- break;
- case DLL_THREAD_ATTACH:
- break;
- case DLL_THREAD_DETACH:
- ts_free_thread();
- break;
- case DLL_PROCESS_DETACH:
- if (sapi_module.shutdown) {
- sapi_module.shutdown(&sapi_module);
- }
- tsrm_shutdown();
- break;
- }
- return TRUE;
-}
-#endif
/*
* Local variables:
* tab-width: 4
Index: php4/sapi/apache/sapi_apache.c
diff -u php4/sapi/apache/sapi_apache.c:1.14 php4/sapi/apache/sapi_apache.c:1.15
--- php4/sapi/apache/sapi_apache.c:1.14 Sat Apr 29 21:56:48 2000
+++ php4/sapi/apache/sapi_apache.c Wed May 3 20:28:34 2000
@@ -19,12 +19,11 @@
| Stig Bakken <ssb@fast.no> |
+----------------------------------------------------------------------+
*/
-/* $Id: sapi_apache.c,v 1.14 2000/04/30 04:56:48 shane Exp $ */
+/* $Id: sapi_apache.c,v 1.15 2000/05/04 03:28:34 shane Exp $ */
#define NO_REGEX_EXTRA_H
#ifdef WIN32
#include <winsock2.h>
-#define PHP_EXPORTS
#include <stddef.h>
#endif
@@ -60,27 +59,23 @@
/*#include "mod_php4.h"*/
-PHPAPI int apache_php_module_main(request_rec *r, int fd, int display_source_mode SLS_DC)
+int apache_php_module_main(request_rec *r, int fd, int display_source_mode CLS_DC ELS_DC PLS_DC
SLS_DC)
{
zend_file_handle file_handle;
-#ifdef ZTS
- zend_compiler_globals cg;
- zend_executor_globals eg;
- php_core_globals pcg;
-
- zend_compiler_globals *compiler_globals=&cg;
- zend_executor_globals *executor_globals=⪚
- php_core_globals *core_globals=&pcg;
- memset(&cg,0,sizeof(zend_compiler_globals));
- memset(&eg,0,sizeof(zend_executor_globals));
- memset(&pcg,0,sizeof(php_core_globals));
-#endif
if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC) == FAILURE) {
return FAILURE;
}
+#ifdef PHP_WIN32
+ /* sending a file handle to another dll is not working
+ // so let zend open it.
+ */
+ file_handle.type = ZEND_HANDLE_FILENAME;
+ file_handle.handle.fd = 0;
+#else
file_handle.type = ZEND_HANDLE_FD;
file_handle.handle.fd = fd;
+#endif
file_handle.filename = SG(request_info).path_translated;
file_handle.free_filename = 0;