if (SUCCESS == http_get(URL, options ? Z_ARRVAL_P(options) : NULL, info ? Z_ARRVAL_P(info) : NULL, &response)) {
RETURN_PHPSTR_VAL(&response);
} else {
+ phpstr_dtor(&response);
RETURN_FALSE;
}
}
if (SUCCESS == http_head(URL, options ? Z_ARRVAL_P(options) : NULL, info ? Z_ARRVAL_P(info) : NULL, &response)) {
RETURN_PHPSTR_VAL(&response);
} else {
+ phpstr_dtor(&response);
RETURN_FALSE;
}
}
if (SUCCESS == http_post(URL, &body, options ? Z_ARRVAL_P(options) : NULL, info ? Z_ARRVAL_P(info) : NULL, &response)) {
RETVAL_PHPSTR_VAL(&response);
} else {
+ phpstr_dtor(&response);
RETVAL_FALSE;
}
}
if (SUCCESS == http_post(URL, &body, options ? Z_ARRVAL_P(options) : NULL, info ? Z_ARRVAL_P(info) : NULL, &response)) {
RETVAL_PHPSTR_VAL(&response);
} else {
+ phpstr_dtor(&response);
RETVAL_FALSE;
}
http_request_body_dtor(&body);
if (SUCCESS == http_put(URL, &body, options ? Z_ARRVAL_P(options) : NULL, info ? Z_ARRVAL_P(info) : NULL, &response)) {
RETVAL_PHPSTR_VAL(&response);
} else {
+ phpstr_dtor(&response);
RETVAL_FALSE;
}
http_request_body_dtor(&body);
if (SUCCESS == http_put(URL, &body, options ? Z_ARRVAL_P(options) : NULL, info ? Z_ARRVAL_P(info) : NULL, &response)) {
RETURN_PHPSTR_VAL(&response);
} else {
+ phpstr_dtor(&response);
RETURN_NULL();
}
}
{
char *data;
int data_len;
- long level;
+ long level = -1;
RETVAL_NULL();
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);
}
}
}
#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:
+ * <ul>
+ * <li> HTTP_SUPPORT: always set
+ * <li> HTTP_SUPPORT_REQUESTS: whether ext/http was linked against libcurl,
+ * and HTTP requests can be issued
+ * <li> HTTP_SUPPORT_SSLREQUESTS: whether libcurl was linked against openssl,
+ * and SSL requests can be issued
+ * <li> HTTP_SUPPORT_ENCODINGS: whether ext/http was linked against zlib,
+ * and compressed HTTP responses can be decoded
+ * <li> HTTP_SUPPORT_MHASHETAGS: whether ext/http was linked against libmhash,
+ * and ETags can be generated with the available mhash algorithms
+ * <li> HTTP_SUPPORT_MAGICMIME: whether ext/http was linked against libmagic,
+ * and the HttpResponse::guessContentType() method is usable
+ * </ul>
+ *
+ * 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)
{
}