summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2000-04-10 17:39:11 +0000
committerAndi Gutmans <andi@php.net>2000-04-10 17:39:11 +0000
commit897b413c2d62fe115f4526a8755f54283740e14d (patch)
tree3a3bbace45180031deb859bb054ded7f6e07f90c
parentc981be0bca1e37754de77c500b962ec277860013 (diff)
downloadphp-git-897b413c2d62fe115f4526a8755f54283740e14d.tar.gz
- Try and resolve the problem with current working directories not being
set to the script directory
-rw-r--r--main/main.c6
-rw-r--r--main/php_virtual_cwd.c7
-rw-r--r--main/php_virtual_cwd.h1
3 files changed, 13 insertions, 1 deletions
diff --git a/main/main.c b/main/main.c
index 06d208ec61..0c50d60d54 100644
--- a/main/main.c
+++ b/main/main.c
@@ -619,7 +619,11 @@ int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC)
PG(connection_status) = PHP_CONNECTION_NORMAL;
zend_activate(CLS_C ELS_CC);
- sapi_activate(SLS_C);
+ sapi_activate(SLS_C);
+
+#ifdef VIRTUAL_DIR
+ virtual_cwd_activate(SG(request_info).path_translated);
+#endif
php_set_timeout(PG(max_execution_time));
diff --git a/main/php_virtual_cwd.c b/main/php_virtual_cwd.c
index 8dd87dc57e..e773fde9ee 100644
--- a/main/php_virtual_cwd.c
+++ b/main/php_virtual_cwd.c
@@ -145,6 +145,13 @@ CWD_API void virtual_cwd_startup()
ZEND_INIT_MODULE_GLOBALS(cwd, cwd_globals_ctor, cwd_globals_dtor);
}
+CWD_API void virtual_cwd_activate(char *filename)
+{
+ if (filename) {
+ virtual_chdir_file(filename);
+ }
+}
+
CWD_API void virtual_cwd_shutdown()
{
#ifndef ZTS
diff --git a/main/php_virtual_cwd.h b/main/php_virtual_cwd.h
index 252bd74b64..ab46974d71 100644
--- a/main/php_virtual_cwd.h
+++ b/main/php_virtual_cwd.h
@@ -27,6 +27,7 @@ typedef int (*verify_path_func)(const cwd_state *);
CWD_API void virtual_cwd_startup();
CWD_API void virtual_cwd_shutdown();
+CWD_API void virtual_cwd_activate(char *filename);
CWD_API char *virtual_getcwd_ex(int *length);
CWD_API char *virtual_getcwd(char *buf, size_t size);
CWD_API int virtual_chdir(char *path);