X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=php5-apc.git;a=blobdiff_plain;f=apc_rfc1867.c;fp=apc_rfc1867.c;h=0000000000000000000000000000000000000000;hp=466f700dffd08956d2eaaa1cab9419df2ff72cad;hb=a34ea625346aecd2d2b227b8ca4f114eaa607213;hpb=b0895ef8074c6dd090f9b0a65d58179941541756 diff --git a/apc_rfc1867.c b/apc_rfc1867.c deleted file mode 100644 index 466f700..0000000 --- a/apc_rfc1867.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | APC | - +----------------------------------------------------------------------+ - | Copyright (c) 2008 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - +----------------------------------------------------------------------+ - - This software was contributed to PHP by Community Connect Inc. in 2002 - and revised in 2005 by Yahoo! Inc. to add support for PHP 5.1. - Future revisions and derivatives of this source code must acknowledge - Community Connect Inc. as the original contributor of this module by - leaving this note intact in the source code. - - All other licensing and usage conditions are those of the PHP Group. - - */ - -/* $Id: apc_rfc1867.c,v 3.12.2.1 2008/05/11 18:57:00 rasmus Exp $*/ - -#include "apc.h" -#include "apc_globals.h" -#include "rfc1867.h" - -#ifdef PHP_WIN32 -#include "win32/time.h" -#endif - -#ifdef MULTIPART_EVENT_FORMDATA -extern int _apc_store(char *strkey, int strkey_len, const zval *val, const unsigned int ttl, const int exclusive TSRMLS_DC); - -static double my_time() { - struct timeval a; - double t; - gettimeofday(&a, NULL); - t = a.tv_sec + (a.tv_usec/1000000.00); - return t; -} - -void apc_rfc1867_progress(unsigned int event, void *event_data, void **extra TSRMLS_DC) { - static char tracking_key[64]; - static int key_length = 0; - static size_t content_length = 0; - static char filename[128]; - static char name[64]; - static char *temp_filename=NULL; - static int cancel_upload = 0; - static double start_time; - static size_t bytes_processed = 0; - static size_t prev_bytes_processed = 0; - static int update_freq = 0; - static double rate; - zval *track = NULL; - - switch (event) { - case MULTIPART_EVENT_START: - { - multipart_event_start *data = (multipart_event_start *) event_data; - content_length = data->content_length; - *tracking_key = '\0'; - *name = '\0'; - cancel_upload = 0; - temp_filename = NULL; - *filename= '\0'; - key_length = 0; - start_time = my_time(); - bytes_processed = 0; - rate = 0; - update_freq = APCG(rfc1867_freq); - if(update_freq < 0) { // frequency is a percentage, not bytes - update_freq = content_length * APCG(rfc1867_freq) / 100; - } - } - break; - - case MULTIPART_EVENT_FORMDATA: - { - int prefix_len = strlen(APCG(rfc1867_prefix)); - multipart_event_formdata *data = (multipart_event_formdata *) event_data; - if(data->name && !strncasecmp(data->name, APCG(rfc1867_name), strlen(APCG(rfc1867_name))) && data->value && data->length && data->length < sizeof(tracking_key) - prefix_len) { - strlcat(tracking_key, APCG(rfc1867_prefix), 63); - strlcat(tracking_key, *data->value, 63); - key_length = data->length + prefix_len; - bytes_processed = data->post_bytes_processed; - } - } - break; - - case MULTIPART_EVENT_FILE_START: - if(*tracking_key) { - multipart_event_file_start *data = (multipart_event_file_start *) event_data; - - bytes_processed = data->post_bytes_processed; - strncpy(filename,*data->filename,127); - temp_filename = NULL; - strncpy(name,data->name,63); - ALLOC_INIT_ZVAL(track); - array_init(track); - add_assoc_long(track, "total", content_length); - add_assoc_long(track, "current", bytes_processed); - add_assoc_string(track, "filename", filename, 1); - add_assoc_string(track, "name", name, 1); - add_assoc_long(track, "done", 0); - add_assoc_double(track, "start_time", start_time); - _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); - zval_ptr_dtor(&track); - } - break; - - case MULTIPART_EVENT_FILE_DATA: - if(*tracking_key) { - multipart_event_file_data *data = (multipart_event_file_data *) event_data; - bytes_processed = data->post_bytes_processed; - ALLOC_INIT_ZVAL(track); - array_init(track); - add_assoc_long(track, "total", content_length); - add_assoc_long(track, "current", bytes_processed); - add_assoc_string(track, "filename", filename, 1); - add_assoc_string(track, "name", name, 1); - add_assoc_long(track, "done", 0); - add_assoc_double(track, "start_time", start_time); - if(bytes_processed - prev_bytes_processed > update_freq) { - _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); - prev_bytes_processed = bytes_processed; - } - zval_ptr_dtor(&track); - } - break; - - case MULTIPART_EVENT_FILE_END: - if(*tracking_key) { - multipart_event_file_end *data = (multipart_event_file_end *) event_data; - bytes_processed = data->post_bytes_processed; - cancel_upload = data->cancel_upload; - temp_filename = data->temp_filename; - ALLOC_INIT_ZVAL(track); - array_init(track); - add_assoc_long(track, "total", content_length); - add_assoc_long(track, "current", bytes_processed); - add_assoc_string(track, "filename", filename, 1); - add_assoc_string(track, "name", name, 1); - add_assoc_string(track, "temp_filename", temp_filename, 1); - add_assoc_long(track, "cancel_upload", cancel_upload); - add_assoc_long(track, "done", 0); - add_assoc_double(track, "start_time", start_time); - _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); - zval_ptr_dtor(&track); - } - break; - - case MULTIPART_EVENT_END: - if(*tracking_key) { - double now = my_time(); - multipart_event_end *data = (multipart_event_end *) event_data; - bytes_processed = data->post_bytes_processed; - if(now>start_time) rate = 8.0*bytes_processed/(now-start_time); - else rate = 8.0*bytes_processed; /* Too quick */ - ALLOC_INIT_ZVAL(track); - array_init(track); - add_assoc_long(track, "total", content_length); - add_assoc_long(track, "current", bytes_processed); - add_assoc_double(track, "rate", rate); - add_assoc_string(track, "filename", filename, 1); - add_assoc_string(track, "name", name, 1); - if(temp_filename) { - add_assoc_string(track, "temp_filename", temp_filename, 1); - } - add_assoc_long(track, "cancel_upload", cancel_upload); - add_assoc_long(track, "done", 1); - add_assoc_double(track, "start_time", start_time); - _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); - zval_ptr_dtor(&track); - } - break; - } -} - -#endif -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: expandtab sw=4 ts=4 sts=4 fdm=marker - * vim<600: expandtab sw=4 ts=4 sts=4 - */