diff options
author | Yang Tse <yangsita@gmail.com> | 2010-01-22 06:36:52 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2010-01-22 06:36:52 +0000 |
commit | bfc4c33985aa40557a7b48d8052577b0c8bd0c5c (patch) | |
tree | 20a119eb6fc7b0260a9a55dd75bf4ab4b9db9f06 /lib/hostthre.c | |
parent | 5af20c70e4ae23437378d92e162d3377d9666b1f (diff) |
Constantine Sapuntzakis refactoring of async callbacks, allowing
removal of Curl_addrinfo_copy(), Curl_addrinfo6_callback(), and
Curl_addrinfo4_callback()
Diffstat (limited to 'lib/hostthre.c')
-rw-r--r-- | lib/hostthre.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/hostthre.c b/lib/hostthre.c index e41653b27..32e946ccb 100644 --- a/lib/hostthre.c +++ b/lib/hostthre.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -219,7 +219,7 @@ void release_thread_sync(struct thread_sync_data * tsd) #if defined(CURLRES_IPV4) /* - * gethostbyname_thread() resolves a name, calls the Curl_addrinfo4_callback + * gethostbyname_thread() resolves a name, calls the Curl_addrinfo_callback * and then exits. * * For builds without ARES/ENABLE_IPV6, create a resolver thread and wait on @@ -254,14 +254,16 @@ static unsigned __stdcall gethostbyname_thread (void *arg) /* is parent thread waiting for us and are we able to access conn members? */ if(acquire_thread_sync(&tsd)) { + Curl_addrinfo *ai = Curl_he2ai(he, conn->async.port); + /* Mark that we have obtained the information, and that we are calling * back with it. */ SetEvent(td->event_resolved); - if(he) { - rc = Curl_addrinfo4_callback(conn, CURL_ASYNC_SUCCESS, he); + if(ai) { + rc = Curl_addrinfo_callback(conn, CURL_ASYNC_SUCCESS, ai); } else { - rc = Curl_addrinfo4_callback(conn, SOCKERRNO, NULL); + rc = Curl_addrinfo_callback(conn, SOCKERRNO, NULL); } release_thread_sync(&tsd); } @@ -276,7 +278,7 @@ static unsigned __stdcall gethostbyname_thread (void *arg) #elif defined(CURLRES_IPV6) /* - * getaddrinfo_thread() resolves a name, calls Curl_addrinfo6_callback and then + * getaddrinfo_thread() resolves a name, calls Curl_addrinfo_callback and then * exits. * * For builds without ARES, but with ENABLE_IPV6, create a resolver thread @@ -320,10 +322,10 @@ static unsigned __stdcall getaddrinfo_thread (void *arg) SetEvent(td->event_resolved); if(rc == 0) { - rc = Curl_addrinfo6_callback(conn, CURL_ASYNC_SUCCESS, res); + rc = Curl_addrinfo_callback(conn, CURL_ASYNC_SUCCESS, res); } else { - rc = Curl_addrinfo6_callback(conn, SOCKERRNO, NULL); + rc = Curl_addrinfo_callback(conn, SOCKERRNO, NULL); } release_thread_sync(&tsd); } |