- typos
[m6w6/ext-http] / http_functions.c
index d205ea26567f10a5106f68b054fe21bb0df26d57..cbb487f132798457507f130277d8882b743d01dc 100644 (file)
@@ -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)
 {
 }