X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_functions.c;h=cbb487f132798457507f130277d8882b743d01dc;hb=63e6b23a0f7f61a169bddd5b80d4d8114a147deb;hp=d205ea26567f10a5106f68b054fe21bb0df26d57;hpb=3f47fc4cd2911b718b155de4e37752db9fa4f8c8;p=m6w6%2Fext-http diff --git a/http_functions.c b/http_functions.c index d205ea2..cbb487f 100644 --- a/http_functions.c +++ b/http_functions.c @@ -1544,7 +1544,7 @@ PHP_FUNCTION(http_compress) { char *data; int data_len; - long level; + long level = -1; RETVAL_NULL(); @@ -1582,7 +1582,7 @@ PHP_FUNCTION(http_uncompress) size_t decoded_len; if (SUCCESS == http_encoding_uncompress(data, data_len, &decoded, &decoded_len)) { - RETURN_STRINGL(decoded, decoded_len, 0); + RETURN_STRINGL(decoded, (int) decoded_len, 0); } } } @@ -1590,6 +1590,42 @@ PHP_FUNCTION(http_uncompress) #endif /* HTTP_HAVE_ZLIB */ /* }}} */ +/* {{{ proto int http_support([int feature = 0]) + * + * Check for feature that require external libraries. + * + * Accpepts an optional in parameter specifying which feature to probe for. + * If the parameter is 0 or omitted, the return value contains a bitmask of + * all supported featuers that depend on external libraries. + * + * Available features to probe for are: + * - HTTP_SUPPORT: always set + * - HTTP_SUPPORT_REQUESTS: whether ext/http was linked against libcurl, + * and HTTP requests can be issued + * - HTTP_SUPPORT_SSLREQUESTS: whether libcurl was linked against openssl, + * and SSL requests can be issued + * - HTTP_SUPPORT_ENCODINGS: whether ext/http was linked against zlib, + * and compressed HTTP responses can be decoded + * - HTTP_SUPPORT_MHASHETAGS: whether ext/http was linked against libmhash, + * and ETags can be generated with the available mhash algorithms + * - HTTP_SUPPORT_MAGICMIME: whether ext/http was linked against libmagic, + * and the HttpResponse::guessContentType() method is usable + * + * Returns int, whether requested feature is supported, or a bitmask with + * all supported features. + */ +PHP_FUNCTION(http_support) +{ + long feature = 0; + + RETVAL_LONG(0L); + + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &feature)) { + RETVAL_LONG(http_support(feature)); + } +} +/* }}} */ + PHP_FUNCTION(http_test) { }