fix build with xcode clang
[m6w6/ext-http] / php_http_client_curl.c
index 37fc41301cc8345028880a7ba1697b150898f22e..2dfd3d771b5f2788448da7b3da14cff16e162d1d 100644 (file)
@@ -586,7 +586,7 @@ static void php_http_curlm_event_callback(int socket, short action, void *event_
        fprintf(stderr, "E");
 #endif
        if (curl->useevents) {
-               CURLMcode rc = CURLE_OK;
+               CURLMcode rc = CURLM_OK;
                TSRMLS_FETCH_FROM_CTX(context->ts);
 
                while (CURLM_CALL_MULTI_PERFORM == (rc = curl_multi_socket_action(curl->handle, socket, etoca(action), &curl->unfinished)));
@@ -1587,7 +1587,17 @@ static php_resource_factory_t *create_rf(const char *url TSRMLS_DC)
        php_url *purl;
        php_resource_factory_t *rf = NULL;
 
-       if ((purl = php_url_parse(url))) {
+       if (!url || !*url) {
+               php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT, "Cannot request empty URL");
+               return NULL;
+       }
+
+       purl = php_url_parse(url);
+
+       if (!purl) {
+               php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT, "Could not parse URL '%s'", url);
+               return NULL;
+       } else {
                char *id_str = NULL;
                size_t id_len = spprintf(&id_str, 0, "%s:%d", STR_PTR(purl->host), purl->port ? purl->port : 80);
                php_persistent_handle_factory_t *pf = php_persistent_handle_concede(NULL, ZEND_STRL("http\\Client\\Curl\\Request"), id_str, id_len, NULL, NULL TSRMLS_CC);
@@ -1613,9 +1623,15 @@ static STATUS php_http_client_curl_enqueue(php_http_client_t *h, php_http_client
        php_http_client_curl_t *curl = h->ctx;
        php_http_client_curl_handler_t *handler;
        php_http_client_progress_state_t *progress;
+       php_resource_factory_t *rf;
        TSRMLS_FETCH_FROM_CTX(h->ts);
 
-       handler = php_http_client_curl_handler_init(h, create_rf(enqueue->request->http.info.request.url TSRMLS_CC));
+       rf = create_rf(enqueue->request->http.info.request.url TSRMLS_CC);
+       if (!rf) {
+               return FAILURE;
+       }
+
+       handler = php_http_client_curl_handler_init(h, rf);
        if (!handler) {
                return FAILURE;
        }