+ if (zoption = http_curl_getopt(options, "timeout", IS_LONG)) {
+ HTTP_CURL_OPT(TIMEOUT, Z_LVAL_P(zoption));
+ }
+
+ /* connecttimeout, defaults to 1 */
+ if (zoption = http_curl_getopt(options, "connecttimeout", IS_LONG)) {
+ HTTP_CURL_OPT(CONNECTTIMEOUT, Z_LVAL_P(zoption));
+ } else {
+ HTTP_CURL_OPT(CONNECTTIMEOUT, 1);
+ }
+
+ /* ssl */
+ if (zoption = http_curl_getopt(options, "ssl", IS_ARRAY)) {
+#define HTTP_CURL_OPT_STRING(keyname) HTTP_CURL_OPT_STRING_EX(keyname, keyname)
+#define HTTP_CURL_OPT_SSL_STRING(keyname) HTTP_CURL_OPT_STRING_EX(keyname, SSL##keyname)
+#define HTTP_CURL_OPT_SSL_STRING_(keyname) HTTP_CURL_OPT_STRING_EX(keyname, SSL_##keyname)
+#define HTTP_CURL_OPT_STRING_EX(keyname, optname) \
+ if (!strcasecmp(key, #keyname)) { \
+ convert_to_string_ex(param); \
+ HTTP_CURL_OPT(optname, Z_STRVAL_PP(param)); \
+ key = NULL; \
+ continue; \
+ }
+#define HTTP_CURL_OPT_LONG(keyname) HTTP_OPT_SSL_LONG_EX(keyname, keyname)
+#define HTTP_CURL_OPT_SSL_LONG(keyname) HTTP_CURL_OPT_LONG_EX(keyname, SSL##keyname)
+#define HTTP_CURL_OPT_SSL_LONG_(keyname) HTTP_CURL_OPT_LONG_EX(keyname, SSL_##keyname)
+#define HTTP_CURL_OPT_LONG_EX(keyname, optname) \
+ if (!strcasecmp(key, #keyname)) { \
+ convert_to_long_ex(param); \
+ HTTP_CURL_OPT(optname, Z_LVAL_PP(param)); \
+ key = NULL; \
+ continue; \