Hi,
Saturday, November 6, 2004, 10:25:57 AM, you wrote:
MB> Hello Tom,
MB> can you please provide a unified diff (diff -u) which everyone here
MB> understands? Also it would help to see a diff against HEAD.
MB> regards
MB> marcus
This is against the latest cvs 4.3
--
regards,
Tom
Index: Zend/zend.c
===================================================================
RCS file: /repository/Zend/Attic/zend.c,v
retrieving revision 1.162.2.21
diff -u -w -b -u -r1.162.2.21 zend.c
--- Zend/zend.c 9 Sep 2004 13:27:48 -0000 1.162.2.21
+++ Zend/zend.c 6 Nov 2004 02:27:38 -0000
@@ -80,6 +80,7 @@
ZEND_API int compiler_globals_id;
ZEND_API int executor_globals_id;
ZEND_API int alloc_globals_id;
+ZEND_API int fus_globals_id;
HashTable *global_function_table;
HashTable *global_class_table;
HashTable *global_constants_table;
@@ -368,6 +369,15 @@
zend_ini_shutdown(TSRMLS_C);
}
+static void fus_globals_ctor(zend_fus_globals *fus_globals TSRMLS_DC)
+{
+
+}
+
+static void fus_globals_dtor(zend_executor_globals *fus_globals TSRMLS_DC)
+{
+
+}
static void zend_new_thread_end_handler(THREAD_T thread_id TSRMLS_DC)
{
@@ -416,6 +426,7 @@
#ifdef ZTS
zend_compiler_globals *compiler_globals;
zend_executor_globals *executor_globals;
+ zend_fus_globals *fus_globals;
void ***tsrm_ls;
extern ZEND_API ts_rsrc_id ini_scanner_globals_id;
extern ZEND_API ts_rsrc_id language_scanner_globals_id;
@@ -483,10 +494,12 @@
global_constants_table = NULL;
ts_allocate_id(&compiler_globals_id, sizeof(zend_compiler_globals),
(ts_allocate_ctor) compiler_globals_ctor, (ts_allocate_dtor) compiler_globals_dtor);
ts_allocate_id(&executor_globals_id, sizeof(zend_executor_globals),
(ts_allocate_ctor) executor_globals_ctor, (ts_allocate_dtor) executor_globals_dtor);
+ ts_allocate_id(&fus_globals_id, sizeof(zend_fus_globals), (ts_allocate_ctor)
fus_globals_ctor, (ts_allocate_dtor) fus_globals_dtor);
ts_allocate_id(&language_scanner_globals_id, sizeof(zend_scanner_globals),
(ts_allocate_ctor) scanner_globals_ctor, NULL);
ts_allocate_id(&ini_scanner_globals_id, sizeof(zend_scanner_globals),
(ts_allocate_ctor) scanner_globals_ctor, NULL);
compiler_globals = ts_resource(compiler_globals_id);
executor_globals = ts_resource(executor_globals_id);
+ fus_globals = ts_resource(fus_globals_id);
tsrm_ls = ts_resource_ex(0, NULL);
compiler_globals_dtor(compiler_globals, tsrm_ls);
compiler_globals->function_table = GLOBAL_FUNCTION_TABLE;
Index: Zend/zend_globals.h
===================================================================
RCS file: /repository/Zend/Attic/zend_globals.h,v
retrieving revision 1.93.2.5
diff -u -w -b -u -r1.93.2.5 zend_globals.h
--- Zend/zend_globals.h 3 Nov 2004 23:15:05 -0000 1.93.2.5
+++ Zend/zend_globals.h 6 Nov 2004 02:35:28 -0000
@@ -46,6 +46,7 @@
ZEND_API extern int compiler_globals_id;
ZEND_API extern int executor_globals_id;
ZEND_API extern int alloc_globals_id;
+ZEND_API extern int fus_globals_id;
END_EXTERN_C()
#endif
@@ -270,4 +271,10 @@
#endif /* ZEND_MULTIBYTE */
};
+struct _zend_fus_globals {
+ char *temp_file_dir;
+ char *temp_file_prefix;
+ char *hidden_variable_name;
+};
+
#endif /* ZEND_GLOBALS_H */
Index: Zend/zend_globals_macros.h
===================================================================
RCS file: /repository/Zend/Attic/zend_globals_macros.h,v
retrieving revision 1.17.8.1
diff -u -w -b -u -r1.17.8.1 zend_globals_macros.h
--- Zend/zend_globals_macros.h 31 Dec 2002 16:23:02 -0000 1.17.8.1
+++ Zend/zend_globals_macros.h 6 Nov 2004 02:49:22 -0000
@@ -25,6 +25,8 @@
typedef struct _zend_executor_globals zend_executor_globals;
typedef struct _zend_alloc_globals zend_alloc_globals;
typedef struct _zend_scanner_globals zend_scanner_globals;
+typedef struct _zend_fus_globals zend_fus_globals;
+
/* Compiler */
#ifdef ZTS
@@ -56,6 +58,14 @@
extern ZEND_API zend_alloc_globals alloc_globals;
#endif
+/* File Upload */
+#ifdef ZTS
+# define FUSG(v) TSRMG(fus_globals_id, zend_fus_globals *, v)
+#else
+# define FUSG(v) (fus_globals.v)
+extern ZEND_API zend_fus_globals fus_globals;
+#endif
+
/* Language Scanner */
#ifdef ZTS
Index: main/main.c
===================================================================
RCS file: /repository/php-src/main/main.c,v
retrieving revision 1.512.2.56
diff -u -w -b -u -r1.512.2.56 main.c
--- main/main.c 1 Oct 2004 14:27:13 -0000 1.512.2.56
+++ main/main.c 6 Nov 2004 02:35:28 -0000
@@ -362,6 +362,10 @@
STD_PHP_INI_BOOLEAN("allow_url_fopen", "1",
PHP_INI_SYSTEM, OnUpdateBool, allow_url_fopen,
php_core_globals, core_globals)
STD_PHP_INI_BOOLEAN("always_populate_raw_post_data", "0",
PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool,
always_populate_raw_post_data, php_core_globals, core_globals)
+/* file upload status settings */
+ STD_PHP_INI_ENTRY("file_upload_status.temp_file_dir", "/tmp", PHP_INI_ALL,
OnUpdateString, temp_file_dir, zend_fus_globals, fus_globals)
+ STD_PHP_INI_ENTRY("file_upload_status.temp_file_prefix", "file_upload_status_",
PHP_INI_ALL, OnUpdateString, temp_file_prefix, zend_fus_globals, fus_globals)
+ STD_PHP_INI_ENTRY("file_upload_status.hidden_variable_name",
"file_upload_status_uniqueid", PHP_INI_ALL, OnUpdateString, hidden_variable_name,
zend_fus_globals, fus_globals)
PHP_INI_END()
/* }}} */
@@ -1066,6 +1070,7 @@
void ***tsrm_ls;
php_core_globals *core_globals;
+ zend_fus_globals *fus_globals;
#endif
#if defined(PHP_WIN32) || (defined(NETWARE) && defined(USE_WINSOCK))
@@ -1120,6 +1125,7 @@
executor_globals = ts_resource(executor_globals_id);
ts_allocate_id(&core_globals_id, sizeof(php_core_globals), (ts_allocate_ctor)
core_globals_ctor, NULL);
core_globals = ts_resource(core_globals_id);
+ fus_globals = ts_resource(fus_globals_id);
#endif
EG(bailout_set) = 0;
EG(error_reporting) = E_ALL & ~E_NOTICE;
Index: main/rfc1867.c
===================================================================
RCS file: /repository/php-src/main/rfc1867.c,v
retrieving revision 1.122.2.26
diff -u -w -b -u -r1.122.2.26 rfc1867.c
--- main/rfc1867.c 13 Sep 2004 16:00:50 -0000 1.122.2.26
+++ main/rfc1867.c 6 Nov 2004 02:20:20 -0000
@@ -779,6 +779,10 @@
zval *array_ptr = (zval *) arg;
FILE *fp;
zend_llist header;
+ /* file upload status variables */
+ zend_bool file_upload_status = 0;
+ char *file_upload_status_filename = NULL;
+ FILE *file_upload_status_fp;
if (SG(request_info).content_length > SG(post_max_size)) {
sapi_module.sapi_error(E_WARNING, "POST Content-Length of %ld bytes
exceeds the limit of %ld bytes", SG(request_info).content_length, SG(post_max_size));
@@ -908,6 +912,13 @@
max_file_size = atol(value);
}
+ /* Check for upload status hidden variable */
+ if (strcasecmp(param, FUSG(hidden_variable_name)) ==
0) {
+ file_upload_status = 1;
+ file_upload_status_filename =
emalloc(strlen(FUSG(temp_file_dir)) + strlen(FUSG(temp_file_prefix)) + strlen(value) +
2);
+ sprintf(file_upload_status_filename,
"%s/%s%s", FUSG(temp_file_dir), FUSG(temp_file_prefix), value);
+ }
+
efree(param);
efree(value);
continue;
@@ -998,9 +1009,27 @@
total_bytes += wlen;
}
}
+
+ /* Write file upload status to file */
+ if (file_upload_status) {
+ file_upload_status_fp =
fopen(file_upload_status_filename, "w");
+ if(file_upload_status_fp) {
+ fprintf(file_upload_status_fp, "%li
%li %li", SG(read_post_bytes), SG(request_info).content_length, 0);
+ fclose(file_upload_status_fp);
+ }
+ }
}
fclose(fp);
+ /* Write file upload "complete" status to file */
+ if (file_upload_status) {
+ file_upload_status_fp =
fopen(file_upload_status_filename, "w");
+ if(file_upload_status_fp) {
+ fprintf(file_upload_status_fp, "%li %li
%li",SG(read_post_bytes), SG(request_info).content_length,1);
+ fclose(file_upload_status_fp);
+ }
+ }
+
#ifdef DEBUG_FILE_UPLOAD
if(strlen(filename) > 0 && total_bytes == 0) {
sapi_module.sapi_error(E_WARNING, "Uploaded file size
0 - file [%s=%s] not saved", param, filename);
@@ -1024,6 +1053,11 @@
*/
is_arr_upload = (start_arr = strchr(param,'[')) &&
(param[strlen(param)-1] == ']');
+ /* handle unterminated [ */
+ if (!is_arr_upload && start_arr) {
+ *start_arr = '_';
+ }
+
if (is_arr_upload) {
array_len = strlen(start_arr);
if (array_index) {
Index: sapi/cli/php_cli.c
===================================================================
RCS file: /repository/php-src/sapi/cli/php_cli.c,v
retrieving revision 1.51.2.35
diff -u -w -b -u -r1.51.2.35 php_cli.c
--- sapi/cli/php_cli.c 14 Jul 2004 22:38:18 -0000 1.51.2.35
+++ sapi/cli/php_cli.c 6 Nov 2004 02:56:18 -0000
@@ -517,6 +517,7 @@
zend_executor_globals *executor_globals;
php_core_globals *core_globals;
sapi_globals_struct *sapi_globals;
+ zend_fus_globals *fus_globals;
void ***tsrm_ls;
#endif
@@ -569,6 +570,7 @@
executor_globals = ts_resource(executor_globals_id);
core_globals = ts_resource(core_globals_id);
sapi_globals = ts_resource(sapi_globals_id);
+ fus_globals = ts_resource(fus_globals_id);
tsrm_ls = ts_resource(0);
#endif
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php