remodel file adding to accept paths, streams and plain data as upload files
[m6w6/ext-http] / php_http_filter.c
index 95b3cbf13f5096ed0856782b5107a3168a3e570b..121966b86a6f7292a912d0fc77dc4822595cce59 100644 (file)
@@ -6,13 +6,11 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2011, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
-/* $Id: http_filter_api.c 292841 2009-12-31 08:48:57Z mike $ */
-
-#include "php_http.h"
+#include "php_http_api.h"
 
 PHP_MINIT_FUNCTION(http_filter)
 {
@@ -63,7 +61,7 @@ PHP_MINIT_FUNCTION(http_filter)
        }
 
 typedef struct _http_chunked_decode_filter_buffer_t {
-       php_http_buffer buffer;
+       php_http_buffer_t       buffer;
        ulong   hexlen;
 } PHP_HTTP_FILTER_BUFFER(chunked_decode);
 
@@ -223,7 +221,7 @@ static PHP_HTTP_FILTER_FUNCTION(chunked_encode)
        
        /* new data available? */
        if (buckets_in->head) {
-               php_http_buffer buf;
+               php_http_buffer_t buf;
                out_avail = 1;
                
                php_http_buffer_init(&buf);
@@ -235,7 +233,7 @@ static PHP_HTTP_FILTER_FUNCTION(chunked_encode)
                                *bytes_consumed += ptr->buflen;
                        }
                        
-                       php_http_buffer_appendf(&buf, "%lx" PHP_HTTP_CRLF, ptr->buflen);
+                       php_http_buffer_appendf(&buf, "%lx" PHP_HTTP_CRLF, (long unsigned int) ptr->buflen);
                        php_http_buffer_append(&buf, ptr->buf, ptr->buflen);
                        php_http_buffer_appends(&buf, PHP_HTTP_CRLF);
                        
@@ -297,7 +295,7 @@ static PHP_HTTP_FILTER_FUNCTION(zlib)
                        }
                        
                        if (ptr->buflen) {
-                               php_http_encoding_stream_update(buffer, ptr->buf, ptr->buflen, &encoded, &encoded_len TSRMLS_CC);
+                               php_http_encoding_stream_update(buffer, ptr->buf, ptr->buflen, &encoded, &encoded_len);
                                if (encoded) {
                                        if (encoded_len) {
                                                out_avail = 1;
@@ -317,7 +315,7 @@ static PHP_HTTP_FILTER_FUNCTION(zlib)
                char *encoded = NULL;
                size_t encoded_len = 0;
                
-               php_http_encoding_stream_flush(buffer, &encoded, &encoded_len TSRMLS_CC);
+               php_http_encoding_stream_flush(buffer, &encoded, &encoded_len);
                if (encoded) {
                        if (encoded_len) {
                                out_avail = 1;
@@ -331,7 +329,7 @@ static PHP_HTTP_FILTER_FUNCTION(zlib)
                char *encoded = NULL;
                size_t encoded_len = 0;
                
-               php_http_encoding_stream_finish(buffer, &encoded, &encoded_len TSRMLS_CC);
+               php_http_encoding_stream_finish(buffer, &encoded, &encoded_len);
                if (encoded) {
                        if (encoded_len) {
                                out_avail = 1;
@@ -346,7 +344,7 @@ static PHP_HTTP_FILTER_FUNCTION(zlib)
 static PHP_HTTP_FILTER_DESTRUCTOR(zlib)
 {
        PHP_HTTP_FILTER_BUFFER(zlib) *buffer = (PHP_HTTP_FILTER_BUFFER(zlib) *) this->abstract;
-       php_http_encoding_stream_free(&buffer TSRMLS_CC);
+       php_http_encoding_stream_free(&buffer);
 }
 
 static PHP_HTTP_FILTER_OPS(deflate) = {
@@ -387,7 +385,7 @@ static php_stream_filter *http_filter_create(const char *name, zval *params, int
                
                if ((b = php_http_encoding_stream_init(NULL, php_http_encoding_stream_get_inflate_ops(), flags TSRMLS_CC))) {
                        if (!(f = php_stream_filter_alloc(&PHP_HTTP_FILTER_OP(inflate), b, p))) {
-                               php_http_encoding_stream_free(&b TSRMLS_CC);
+                               php_http_encoding_stream_free(&b);
                        }
                }
        } else
@@ -403,18 +401,21 @@ static php_stream_filter *http_filter_create(const char *name, zval *params, int
                                        if (SUCCESS != zend_hash_find(HASH_OF(params), "flags", sizeof("flags"), (void *) &tmp)) {
                                                break;
                                        }
+                                       /* no break */
                                default:
                                {
-                                       zval *num = php_http_zsep(IS_LONG, *tmp);
+                                       zval *num = php_http_ztyp(IS_LONG, *tmp);
                                        
                                        flags |= (Z_LVAL_P(num) & 0x0fffffff);
                                        zval_ptr_dtor(&num);
+
                                }
+                               break;
                        }
                }
                if ((b = php_http_encoding_stream_init(NULL, php_http_encoding_stream_get_deflate_ops(), flags TSRMLS_CC))) {
                        if (!(f = php_stream_filter_alloc(&PHP_HTTP_FILTER_OP(deflate), b, p))) {
-                               php_http_encoding_stream_free(&b TSRMLS_CC);
+                               php_http_encoding_stream_free(&b);
                        }
                }
        }