X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_response_object.c;h=c0c66af090543aee016a5822866e0a04adee15c4;hp=f2c5e5730d13a262b5967385f5dc937b259640c1;hb=c04184b2188a60efed4753d7eef7f3952aed9cef;hpb=ff17beb99d61462cf1791eecdb3f68dbd2aea5e5 diff --git a/http_response_object.c b/http_response_object.c index f2c5e57..c0c66af 100644 --- a/http_response_object.c +++ b/http_response_object.c @@ -237,14 +237,16 @@ static inline void _http_response_object_declare_default_properties(TSRMLS_D) DCL_STATIC_PROP(PROTECTED, long, bufferSize, HTTP_SENDBUF_SIZE); DCL_STATIC_PROP(PROTECTED, double, throttleDelay, 0.0); +#ifndef WONKY DCL_CONST(long, "ETAG_MD5", HTTP_ETAG_MD5); DCL_CONST(long, "ETAG_SHA1", HTTP_ETAG_SHA1); + DCL_CONST(long, "ETAG_CRC32", HTTP_ETAG_CRC32); -#ifdef HTTP_HAVE_MHASH +# ifdef HTTP_HAVE_MHASH { int l, i, c = mhash_count(); - for (i = 0; i < c; ++i) { + for (i = 0; i <= c; ++i) { char const_name[256] = {0}; const char *hash_name = mhash_get_hash_name_static(i); @@ -254,7 +256,8 @@ static inline void _http_response_object_declare_default_properties(TSRMLS_D) } } } -#endif +# endif /* HTTP_HAVE_MHASH */ +#endif /* WONKY */ } static void _http_grab_response_headers(void *data, void *arg TSRMLS_DC) @@ -497,7 +500,7 @@ PHP_METHOD(HttpResponse, getContentType) } /* }}} */ -/* {{{ proto static string HttpResponse::guessContentType(string magic_file[, long magic_mode]) +/* {{{ proto static string HttpResponse::guessContentType(string magic_file[, long magic_mode = MAGIC_MIME]) * * Attempts to guess the content type of supplied payload through libmagic. */ @@ -509,6 +512,9 @@ PHP_METHOD(HttpResponse, guessContentType) RETVAL_NULL(); +#ifdef HTTP_HAVE_MAGIC + magic_mode = MAGIC_MIME; + SET_EH_THROW_HTTP(); if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &magic_file, &magic_file_len, &magic_mode)) { switch (Z_LVAL_P(GET_STATIC_PROP(mode))) { @@ -539,6 +545,7 @@ PHP_METHOD(HttpResponse, guessContentType) } } SET_EH_NORMAL(); +#endif } /* }}} */ @@ -880,7 +887,7 @@ PHP_METHOD(HttpResponse, getFile) */ PHP_METHOD(HttpResponse, send) { - zval *sent, *headers; + zval *sent; zend_bool clean_ob = 1; if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &clean_ob)) { @@ -1020,14 +1027,9 @@ PHP_METHOD(HttpResponse, send) */ PHP_METHOD(HttpResponse, capture) { - zval do_catch; - NO_ARGS; - INIT_PZVAL(&do_catch); - ZVAL_LONG(&do_catch, 1); - - SET_STATIC_PROP(catch, &do_catch); + UPD_STATIC_PROP(long, catch, 1); php_end_ob_buffers(0 TSRMLS_CC); php_start_ob_buffer(NULL, 0, 0 TSRMLS_CC);