+static zend_bool http_support_ssl;
+
+PHP_MINIT_FUNCTION(http_support)
+{
+ http_support_ssl = http_request_supports_ssl();
+
+ HTTP_LONG_CONSTANT("HTTP_SUPPORT", HTTP_SUPPORT);
+ HTTP_LONG_CONSTANT("HTTP_SUPPORT_REQUESTS", HTTP_SUPPORT_REQUESTS);
+ HTTP_LONG_CONSTANT("HTTP_SUPPORT_MAGICMIME", HTTP_SUPPORT_MAGICMIME);
+ HTTP_LONG_CONSTANT("HTTP_SUPPORT_ENCODINGS", HTTP_SUPPORT_ENCODINGS);
+ HTTP_LONG_CONSTANT("HTTP_SUPPORT_MHASHETAGS", HTTP_SUPPORT_MHASHETAGS);
+ HTTP_LONG_CONSTANT("HTTP_SUPPORT_SSLREQUESTS", HTTP_SUPPORT_SSLREQUESTS);
+
+ return SUCCESS;
+}
+
+PHP_HTTP_API long _http_support(long feature)
+{
+ long support = HTTP_SUPPORT;
+
+#ifdef HTTP_HAVE_CURL
+ support |= HTTP_SUPPORT_REQUESTS;
+ if (http_support_ssl) {
+ support |= HTTP_SUPPORT_SSLREQUESTS;
+ }
+#endif
+#ifdef HTTP_HAVE_MHASH
+ support |= HTTP_SUPPORT_MHASHETAGS;
+#endif
+#ifdef HTTP_HAVE_MAGIC
+ support |= HTTP_SUPPORT_MAGICMIME;
+#endif
+#if defined(HTTP_HAVE_ZLIB) || defined(HAVE_ZLIB)
+ support |= HTTP_SUPPORT_ENCODINGS;
+#endif
+
+ if (feature) {
+ return (feature == (support & feature));
+ }
+ return support;
+}
+