Repository: incubator-hawq
Updated Branches:
  refs/heads/HAWQ-932 95ead0153 -> 043a0b371


HAWQ-932. Moved common initialization code to new method.


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/043a0b37
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/043a0b37
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/043a0b37

Branch: refs/heads/HAWQ-932
Commit: 043a0b371628792136903d140eea6907ae50b903
Parents: 95ead01
Author: Oleksandr Diachenko <[email protected]>
Authored: Fri Jul 22 13:33:02 2016 -0700
Committer: Oleksandr Diachenko <[email protected]>
Committed: Fri Jul 22 13:33:02 2016 -0700

----------------------------------------------------------------------
 src/backend/access/external/libchurl.c | 53 ++++++++++-------------------
 1 file changed, 18 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/043a0b37/src/backend/access/external/libchurl.c
----------------------------------------------------------------------
diff --git a/src/backend/access/external/libchurl.c 
b/src/backend/access/external/libchurl.c
index 18ba30f..b0a76bb 100644
--- a/src/backend/access/external/libchurl.c
+++ b/src/backend/access/external/libchurl.c
@@ -304,12 +304,10 @@ void churl_headers_cleanup(CHURL_HEADERS headers)
        pfree(settings);
 }
 
-
-CHURL_HANDLE churl_init_upload(const char* url, CHURL_HEADERS headers)
+CHURL_HANDLE churl_init(const char* url, CHURL_HEADERS headers)
 {
        churl_context* context = churl_new_context();
        create_curl_handle(context);
-       context->upload = true;
        clear_error_buffer(context);
 
        /* needed to resolve localhost */
@@ -327,16 +325,10 @@ CHURL_HANDLE churl_init_upload(const char* url, 
CHURL_HEADERS headers)
        set_curl_option(context, CURLOPT_VERBOSE, (const void*)FALSE);
        set_curl_option(context, CURLOPT_ERRORBUFFER, 
context->curl_error_buffer);
        set_curl_option(context, CURLOPT_IPRESOLVE, (const 
void*)CURL_IPRESOLVE_V4);
-       set_curl_option(context, CURLOPT_POST, (const void*)TRUE);
-       set_curl_option(context, CURLOPT_READFUNCTION, read_callback);
-       set_curl_option(context, CURLOPT_READDATA, context);
        set_curl_option(context, CURLOPT_WRITEFUNCTION, write_callback);
        set_curl_option(context, CURLOPT_WRITEDATA, context);
        set_curl_option(context, CURLOPT_HEADERFUNCTION, header_callback);
        set_curl_option(context, CURLOPT_HEADERDATA, context);
-       churl_headers_append(headers, "Content-Type", 
"application/octet-stream");
-       churl_headers_append(headers, "Transfer-Encoding", "chunked");
-       churl_headers_append(headers, "Expect", "100-continue");
        churl_headers_set(context, headers);
 
        print_http_headers(headers);
@@ -345,36 +337,27 @@ CHURL_HANDLE churl_init_upload(const char* url, 
CHURL_HEADERS headers)
        return (CHURL_HANDLE)context;
 }
 
-CHURL_HANDLE churl_init_download(const char* url, CHURL_HEADERS headers)
+CHURL_HANDLE churl_init_upload(const char* url, CHURL_HEADERS headers)
 {
-       churl_context* context = churl_new_context();
-       create_curl_handle(context);
-       context->upload = false;
-       clear_error_buffer(context);
+       churl_context* context = churl_init(url, headers);
 
-       /* needed to resolve localhost */
-       if (strstr(url, LocalhostIpV4) != NULL) {
-               struct curl_slist *resolve_hosts = NULL;
-               char *pxf_host_entry = (char *) 
palloc0(strlen(pxf_service_address) + strlen(LocalhostIpV4Entry) + 1);
-               strcat(pxf_host_entry, pxf_service_address);
-               strcat(pxf_host_entry, LocalhostIpV4Entry);
-               resolve_hosts = curl_slist_append(NULL, pxf_host_entry);
-               set_curl_option(context, CURLOPT_RESOLVE, resolve_hosts);
-               pfree(pxf_host_entry);
-       }
+       context->upload = true;
 
-       set_curl_option(context, CURLOPT_URL, url);
-       set_curl_option(context, CURLOPT_VERBOSE, (const void*)FALSE);
-       set_curl_option(context, CURLOPT_ERRORBUFFER, 
context->curl_error_buffer);
-       set_curl_option(context, CURLOPT_IPRESOLVE, (const 
void*)CURL_IPRESOLVE_V4);
-       set_curl_option(context, CURLOPT_WRITEFUNCTION, write_callback);
-       set_curl_option(context, CURLOPT_WRITEDATA, context);
-       set_curl_option(context, CURLOPT_HEADERFUNCTION, header_callback);
-       set_curl_option(context, CURLOPT_HEADERDATA, context);
-       churl_headers_set(context, headers);
+       set_curl_option(context, CURLOPT_POST, (const void*) TRUE);
+       set_curl_option(context, CURLOPT_READFUNCTION, read_callback);
+       set_curl_option(context, CURLOPT_READDATA, context);
+       churl_headers_append(headers, "Content-Type", 
"application/octet-stream");
+       churl_headers_append(headers, "Transfer-Encoding", "chunked");
+       churl_headers_append(headers, "Expect", "100-continue");
 
-       print_http_headers(headers);
-       setup_multi_handle(context);
+       return (CHURL_HANDLE)context;
+}
+
+CHURL_HANDLE churl_init_download(const char* url, CHURL_HEADERS headers)
+{
+       churl_context* context = churl_init(url, headers);
+
+       context->upload = false;
 
        return (CHURL_HANDLE)context;
 }

Reply via email to