File php5-custom-tmp-dir.patch of Package php5

diff -ru a/main/main.c b/main/main.c
--- a/main/main.c	2012-05-08 07:22:56.000000000 +0200
+++ b/main/main.c	2012-05-10 17:23:32.000000000 +0200
@@ -522,6 +522,7 @@
 	STD_PHP_INI_ENTRY("default_mimetype",		SAPI_DEFAULT_MIMETYPE,	PHP_INI_ALL,	OnUpdateString,			default_mimetype,		sapi_globals_struct,sapi_globals)
 	STD_PHP_INI_ENTRY("error_log",				NULL,		PHP_INI_ALL,		OnUpdateErrorLog,			error_log,				php_core_globals,	core_globals)
 	STD_PHP_INI_ENTRY("extension_dir",			PHP_EXTENSION_DIR,		PHP_INI_SYSTEM,		OnUpdateStringUnempty,	extension_dir,			php_core_globals,	core_globals)
+	STD_PHP_INI_ENTRY("sys_temp_dir",			NULL,		PHP_INI_SYSTEM,		OnUpdateStringUnempty,	sys_temp_dir,			php_core_globals,	core_globals)
 	STD_PHP_INI_ENTRY("include_path",			PHP_INCLUDE_PATH,		PHP_INI_ALL,		OnUpdateStringUnempty,	include_path,			php_core_globals,	core_globals)
 	PHP_INI_ENTRY("max_execution_time",			"30",		PHP_INI_ALL,			OnUpdateTimeout)
 	STD_PHP_INI_ENTRY("open_basedir",			NULL,		PHP_INI_ALL,		OnUpdateBaseDir,			open_basedir,			php_core_globals,	core_globals)
diff -ru a/main/php_globals.h b/main/php_globals.h
--- a/main/php_globals.h	2012-05-08 07:22:56.000000000 +0200
+++ b/main/php_globals.h	2012-05-10 17:23:32.000000000 +0200
@@ -85,6 +85,7 @@
 	char *open_basedir;
 	char *extension_dir;
 	char *php_binary;
+	char *sys_temp_dir;
 
 	char *upload_tmp_dir;
 	long upload_max_filesize;
diff -ru a/main/php_open_temporary_file.c b/main/php_open_temporary_file.c
--- a/main/php_open_temporary_file.c	2012-05-08 07:22:56.000000000 +0200
+++ b/main/php_open_temporary_file.c	2012-05-10 17:23:32.000000000 +0200
@@ -196,6 +196,21 @@
 		return temporary_directory;
 	}
 
+	/* Specify temporary directory by "sys_temp_dir" in .ini? */
+	{
+		char *sys_temp_dir = PG(sys_temp_dir);
+		if(sys_temp_dir){
+			int len = strlen(sys_temp_dir);
+			if (len >= 2 && sys_temp_dir[len - 1] == DEFAULT_SLASH) {
+				temporary_directory = zend_strndup(sys_temp_dir, len - 1);
+				return temporary_directory;
+			} else if (len >= 1 && sys_temp_dir[len - 1] != DEFAULT_SLASH) {
+				temporary_directory = zend_strndup(sys_temp_dir, len);
+				return temporary_directory;
+			}
+		}
+	}
+
 #ifdef PHP_WIN32
 	/* We can't count on the environment variables TEMP or TMP,
 	 * and so must make the Win32 API call to get the default
diff -ru a/php.ini-development b/php.ini-development
--- a/php.ini-development	2012-05-08 07:22:56.000000000 +0200
+++ b/php.ini-development	2012-05-10 17:23:32.000000000 +0200
@@ -729,6 +729,10 @@
 ; On windows:
 ; extension_dir = "ext"
 
+; Directory where the temporary files should be placed.
+; Defaults to the system default (see sys_get_temp_dir)
+; sys_temp_dir = "/tmp"
+
 ; Whether or not to enable the dl() function.  The dl() function does NOT work
 ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
 ; disabled on them.
diff -ru a/php.ini-production b/php.ini-production
--- a/php.ini-production	2012-05-08 07:22:56.000000000 +0200
+++ b/php.ini-production	2012-05-10 17:23:32.000000000 +0200
@@ -729,6 +729,10 @@
 ; On windows:
 ; extension_dir = "ext"
 
+; Directory where the temporary files should be placed.
+; Defaults to the system default (see sys_get_temp_dir)
+; sys_temp_dir = "/tmp"
+
 ; Whether or not to enable the dl() function.  The dl() function does NOT work
 ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
 ; disabled on them.
openSUSE Build Service is sponsored by