X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_send_api.c;h=0db19b36a9c509640b7ff644fd46c21208eda75e;hp=3b7a74ac123746093c48cc0b3167c3de94b9b6ff;hb=d046681a7b929ef813849cfe38fbceb333f0b0eb;hpb=a19f558421040b5396b3d76e6c4878d7eda85aba diff --git a/http_send_api.c b/http_send_api.c index 3b7a74a..0db19b3 100644 --- a/http_send_api.c +++ b/http_send_api.c @@ -6,21 +6,17 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2005, Michael Wallner | + | Copyright (c) 2004-2006, Michael Wallner | +--------------------------------------------------------------------+ */ /* $Id$ */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - +#define HTTP_WANT_SAPI #define HTTP_WANT_ZLIB #define HTTP_WANT_MAGIC #include "php_http.h" -#include "SAPI.h" #include "php_streams.h" #include "ext/standard/php_lcg.h" @@ -31,8 +27,6 @@ #include "php_http_headers_api.h" #include "php_http_send_api.h" -ZEND_EXTERN_MODULE_GLOBALS(http); - #define http_flush(d, l) _http_flush((d), (l) TSRMLS_CC) /* {{{ static inline void http_flush() */ static inline void _http_flush(const char *data, size_t data_len TSRMLS_DC) @@ -74,7 +68,6 @@ static inline void _http_send_response_start(void **buffer, size_t content_lengt int encoding; if ((encoding = http_encoding_response_start(content_length))) { - //DebugBreak(); #ifdef HTTP_HAVE_ZLIB *buffer = http_encoding_deflate_stream_init(NULL, (encoding == HTTP_ENCODING_GZIP) ? @@ -88,7 +81,7 @@ static inline void _http_send_response_start(void **buffer, size_t content_lengt #define http_send_response_data_plain(b, d, dl) _http_send_response_data_plain((b), (d), (dl) TSRMLS_CC) static inline void _http_send_response_data_plain(void **buffer, const char *data, size_t data_len TSRMLS_DC) { - if (HTTP_G(send).gzip_encoding) { + if (HTTP_G(send).deflate.encoding) { #ifdef HTTP_HAVE_ZLIB char *encoded; size_t encoded_len; @@ -159,7 +152,7 @@ static inline void _http_send_response_data_fetch(void **buffer, const void *dat #define http_send_response_finish(b) _http_send_response_finish((b) TSRMLS_CC) static inline void _http_send_response_finish(void **buffer TSRMLS_DC) { - if (HTTP_G(send).gzip_encoding) { + if (HTTP_G(send).deflate.encoding) { #ifdef HTTP_HAVE_ZLIB char *encoded = NULL; size_t encoded_len = 0; @@ -178,6 +171,20 @@ static inline void _http_send_response_finish(void **buffer TSRMLS_DC) } /* }}} */ +/* {{{ */ +PHP_MINIT_FUNCTION(http_send) +{ + HTTP_LONG_CONSTANT("HTTP_REDIRECT", HTTP_REDIRECT); + HTTP_LONG_CONSTANT("HTTP_REDIRECT_PERM", HTTP_REDIRECT_PERM); + HTTP_LONG_CONSTANT("HTTP_REDIRECT_FOUND", HTTP_REDIRECT_FOUND); + HTTP_LONG_CONSTANT("HTTP_REDIRECT_POST", HTTP_REDIRECT_POST); + HTTP_LONG_CONSTANT("HTTP_REDIRECT_PROXY", HTTP_REDIRECT_PROXY); + HTTP_LONG_CONSTANT("HTTP_REDIRECT_TEMP", HTTP_REDIRECT_TEMP); + + return SUCCESS; +} +/* }}} */ + /* {{{ STATUS http_send_header(char *, char *, zend_bool) */ PHP_HTTP_API STATUS _http_send_header_ex(const char *name, size_t name_len, const char *value, size_t value_len, zend_bool replace, char **sent_header TSRMLS_DC) @@ -352,7 +359,7 @@ PHP_HTTP_API STATUS _http_send_ex(const void *data_ptr, size_t data_size, http_s char boundary_str[32], range_header_str[256]; size_t boundary_len, range_header_len; - boundary_len = snprintf(boundary_str, lenof(boundary_str), "%lu%0.9f", (ulong) time(NULL), (float) php_combined_lcg(TSRMLS_C)); + boundary_len = snprintf(boundary_str, lenof(boundary_str), "%lu%0.9f", (ulong) HTTP_GET_REQUEST_TIME(), (float) php_combined_lcg(TSRMLS_C)); range_header_len = snprintf(range_header_str, lenof(range_header_str), "Content-Type: multipart/byteranges; boundary=%s", boundary_str); http_send_status_header_ex(206, range_header_str, range_header_len, 1);