barbieri pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0073e877618f709f65ff4454c905424bce0483bc

commit 0073e877618f709f65ff4454c905424bce0483bc
Author: Gustavo Sverzut Barbieri <barbi...@profusion.mobi>
Date:   Mon Dec 12 03:17:35 2016 -0200

    efl_net_dialer_http: fix HEAD requests.
    
    We do not need to keep a "only_head" flag, but we must set
    CURLOPT_NOBODY instead of going the "CUSTOMREQUEST" route, otherwise
    curl won't follow redirects, etc.
---
 src/lib/ecore_con/ecore_con_url.c       | 6 ------
 src/lib/ecore_con/efl_net_dialer_http.c | 2 ++
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_url.c 
b/src/lib/ecore_con/ecore_con_url.c
index 0792857..489f187 100644
--- a/src/lib/ecore_con/ecore_con_url.c
+++ b/src/lib/ecore_con/ecore_con_url.c
@@ -143,7 +143,6 @@ struct _Ecore_Con_Url
    int status;
    int write_fd;
    Efl_Net_Http_Version http_version;
-   Eina_Bool only_head;
    Eina_Bool ssl_verify_peer;
    Eina_Bool verbose;
    Eina_Bool ftp_use_epsv;
@@ -497,9 +496,6 @@ _ecore_con_url_dialer_headers_done(void *data, const 
Efl_Event *event EINA_UNUSE
 
  end:
    eina_iterator_free(it);
-
-   if (url_con->only_head && ((status >= 200) && (status < 300)))
-     _ecore_con_url_dialer_close(url_con);
 }
 
 EFL_CALLBACKS_ARRAY_DEFINE(ecore_con_url_dialer_cbs,
@@ -726,8 +722,6 @@ _ecore_con_url_request_prepare(Ecore_Con_Url *url_con, 
const char *method)
 
    _c->curl_easy_setopt(curl_easy, CURLOPT_FTP_USE_EPSV, 
(long)url_con->ftp_use_epsv);
 
-   url_con->only_head = strcmp(method, "HEAD") == 0;
-
    /* previously always set encoding to gzip,deflate */
    efl_net_dialer_http_request_header_add(url_con->dialer, "Accept-Encoding", 
"gzip,deflate");
 
diff --git a/src/lib/ecore_con/efl_net_dialer_http.c 
b/src/lib/ecore_con/efl_net_dialer_http.c
index eccfdee..135051d 100644
--- a/src/lib/ecore_con/efl_net_dialer_http.c
+++ b/src/lib/ecore_con/efl_net_dialer_http.c
@@ -1879,6 +1879,8 @@ _efl_net_dialer_http_request_apply(Eo *o, 
Efl_Net_Dialer_Http_Data *pd, const ch
           r = curl_easy_setopt(pd->easy, CURLOPT_HTTPGET, 1L);
         else if (strcasecmp(method, "POST") == 0)
           r = curl_easy_setopt(pd->easy, CURLOPT_POST, 1L);
+        else if (strcasecmp(method, "HEAD") == 0)
+          r = curl_easy_setopt(pd->easy, CURLOPT_NOBODY, 1L);
         else if (strcasecmp(method, "PUT") == 0)
           {
              if (primary_mode == EFL_NET_DIALER_HTTP_PRIMARY_MODE_AUTO)

-- 


Reply via email to