#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include "php.h"
#include "php_http_api.h"
#ifdef ZEND_ENGINE_2
-#include "ext/standard/php_http.h"
+# include "ext/standard/php_http.h"
#endif
#ifdef HTTP_HAVE_CURL
-#ifdef PHP_WIN32
-#include <winsock2.h>
-#include <sys/types.h>
-#endif
+# ifdef PHP_WIN32
+# include <winsock2.h>
+# include <sys/types.h>
+# endif
-#include <curl/curl.h>
-#endif
-
-ZEND_DECLARE_MODULE_GLOBALS(http)
-
-#ifdef COMPILE_DL_HTTP
-ZEND_GET_MODULE(http)
-#endif
+# include <curl/curl.h>
/* {{{ ARG_INFO */
-#ifdef ZEND_BEGIN_ARG_INFO
+# ifdef ZEND_BEGIN_ARG_INFO
ZEND_BEGIN_ARG_INFO(http_request_info_ref_3, 0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();
-#else
+# else
static unsigned char http_request_info_ref_3[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE};
static unsigned char http_request_info_ref_4[] = {4, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE};
+# endif
+/* }}} ARG_INFO */
+
+#endif /* HTTP_HAVE_CURL */
+
+ZEND_DECLARE_MODULE_GLOBALS(http)
+
+#ifdef COMPILE_DL_HTTP
+ZEND_GET_MODULE(http)
#endif
-/* }}}*/
+
/* {{{ http_functions[] */
function_entry http_functions[] = {
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <ctype.h>
#include "SAPI.h"
#ifdef ZEND_ENGINE_2
-#include "ext/standard/php_http.h"
+# include "ext/standard/php_http.h"
#else
-#include "http_build_query.c"
+ #include "http_build_query.c"
#endif
#include "php_http.h"
#ifdef HTTP_HAVE_CURL
-#ifdef PHP_WIN32
-#include <winsock2.h>
-#include <sys/types.h>
-#endif
+# ifdef PHP_WIN32
+# include <winsock2.h>
+# include <sys/types.h>
+# endif
+
+# include <curl/curl.h>
+# include <curl/easy.h>
-#include <curl/curl.h>
-#include <curl/easy.h>
#endif
/* single range */
if ((c = zend_hash_num_elements(Z_ARRVAL_P(zranges))) == 1) {
char range_header[256] = {0};
-
+
zend_hash_index_find(Z_ARRVAL_P(zranges), 0, (void **) &zrange);
zend_hash_index_find(Z_ARRVAL_PP(zrange), 0, (void **) &begin);
zend_hash_index_find(Z_ARRVAL_PP(zrange), 1, (void **) &end);
/* multi range */
else {
int i;
- char bound[23] = {0}, preface[1024] = {0},
+ char bound[23] = {0}, preface[1024] = {0},
multi_header[68] = "Content-Type: multipart/byteranges; boundary=";
-
+
snprintf(bound, 22, "--%d%0.9f", time(NULL), php_combined_lcg(TSRMLS_C));
strncat(multi_header, bound + 2, 21);
http_send_header(multi_header);
SUCCESS != zend_hash_index_find(
Z_ARRVAL_PP(zrange), 1, (void **) &end)) {
break;
- }
+ }
snprintf(preface, 1023,
- HTTP_CRLF "%s"
+ HTTP_CRLF "%s"
HTTP_CRLF "Content-Type: %s"
HTTP_CRLF "Content-Range: bytes %ld-%ld/%ld"
- HTTP_CRLF
+ HTTP_CRLF
HTTP_CRLF,
-
- bound,
- HTTP_G(ctype) ? HTTP_G(ctype) : "application/x-octetstream",
- **begin,
- **end,
+
+ bound,
+ HTTP_G(ctype) ? HTTP_G(ctype) : "application/x-octetstream",
+ **begin,
+ **end,
size
);
-
+
php_body_write(preface, strlen(preface) TSRMLS_CC);
http_send_chunk(data, **begin, **end + 1, mode);
}
#define phpext_http_ptr &http_module_entry
#ifdef ZTS
-#include "TSRM.h"
-#define HTTP_G(v) TSRMG(http_globals_id, zend_http_globals *, v)
+# include "TSRM.h"
+# define HTTP_G(v) TSRMG(http_globals_id, zend_http_globals *, v)
#else
-#define HTTP_G(v) (http_globals.v)
+# define HTTP_G(v) (http_globals.v)
#endif
#ifndef ZEND_ENGINE_2
-#include "php_http_build_query.h"
+# include "php_http_build_query.h"
#endif
PHP_FUNCTION(http_date);