[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnurl] 161/222: asyn-thread: make use of Curl_socketpair() where availa
From: |
gnunet |
Subject: |
[gnurl] 161/222: asyn-thread: make use of Curl_socketpair() where available |
Date: |
Thu, 07 Nov 2019 00:10:57 +0100 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to branch master
in repository gnurl.
commit 9c76f694de1765152e0b349cd55baad5a501f55b
Author: Daniel Stenberg <address@hidden>
AuthorDate: Sat Oct 5 15:41:09 2019 +0200
asyn-thread: make use of Curl_socketpair() where available
---
lib/asyn-thread.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/lib/asyn-thread.c b/lib/asyn-thread.c
index fcbf1305e..8c552baa9 100755
--- a/lib/asyn-thread.c
+++ b/lib/asyn-thread.c
@@ -21,6 +21,7 @@
***************************************************************************/
#include "curl_setup.h"
+#include "socketpair.h"
/***********************************************************************
* Only for threaded name resolves builds
@@ -74,6 +75,7 @@
#include "inet_ntop.h"
#include "curl_threads.h"
#include "connect.h"
+#include "socketpair.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
#include "curl_memory.h"
@@ -163,7 +165,7 @@ struct thread_sync_data {
char *hostname; /* hostname to resolve, Curl_async.hostname
duplicate */
int port;
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
struct connectdata *conn;
curl_socket_t sock_pair[2]; /* socket pair */
#endif
@@ -201,7 +203,7 @@ void destroy_thread_sync_data(struct thread_sync_data * tsd)
if(tsd->res)
Curl_freeaddrinfo(tsd->res);
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
/*
* close one end of the socket pair (may be done in resolver thread);
* the other end (for reading) is always closed in the parent thread.
@@ -243,9 +245,9 @@ int init_thread_sync_data(struct thread_data * td,
Curl_mutex_init(tsd->mtx);
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
/* create socket pair, avoid AF_LOCAL since it doesn't build on Solaris */
- if(socketpair(AF_UNIX, SOCK_STREAM, 0, &tsd->sock_pair[0]) < 0) {
+ if(Curl_socketpair(AF_UNIX, SOCK_STREAM, 0, &tsd->sock_pair[0]) < 0) {
tsd->sock_pair[0] = CURL_SOCKET_BAD;
tsd->sock_pair[1] = CURL_SOCKET_BAD;
goto err_exit;
@@ -297,7 +299,7 @@ static unsigned int CURL_STDCALL getaddrinfo_thread(void
*arg)
struct thread_data *td = tsd->td;
char service[12];
int rc;
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
char buf[1];
#endif
@@ -322,11 +324,11 @@ static unsigned int CURL_STDCALL getaddrinfo_thread(void
*arg)
free(td);
}
else {
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
if(tsd->sock_pair[1] != CURL_SOCKET_BAD) {
/* DNS has been resolved, signal client task */
buf[0] = 1;
- if(write(tsd->sock_pair[1], buf, sizeof(buf)) < 0) {
+ if(swrite(tsd->sock_pair[1], buf, sizeof(buf)) < 0) {
/* update sock_erro to errno */
tsd->sock_error = SOCKERRNO;
}
@@ -382,7 +384,7 @@ static void destroy_async_data(struct Curl_async *async)
if(async->os_specific) {
struct thread_data *td = (struct thread_data*) async->os_specific;
int done;
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
curl_socket_t sock_rd = td->tsd.sock_pair[0];
struct connectdata *conn = td->tsd.conn;
#endif
@@ -407,7 +409,7 @@ static void destroy_async_data(struct Curl_async *async)
free(async->os_specific);
}
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
/*
* ensure CURLMOPT_SOCKETFUNCTION fires CURL_POLL_REMOVE
* before the FD is invalidated to avoid EBADF on EPOLL_CTL_DEL
@@ -647,13 +649,13 @@ int Curl_resolver_getsock(struct connectdata *conn,
timediff_t ms;
struct Curl_easy *data = conn->data;
struct resdata *reslv = (struct resdata *)data->state.resolver;
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
struct thread_data *td = (struct thread_data*)conn->async.os_specific;
#else
(void)socks;
#endif
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
if(td) {
/* return read fd to client for polling the DNS resolution status */
socks[0] = td->tsd.sock_pair[0];
@@ -673,7 +675,7 @@ int Curl_resolver_getsock(struct connectdata *conn,
else
milli = 200;
Curl_expire(data, milli, EXPIRE_ASYNC_NAME);
-#ifdef HAVE_SOCKETPAIR
+#ifdef USE_SOCKETPAIR
}
#endif
--
To stop receiving notification emails like this one, please contact
address@hidden.
- [gnurl] 193/222: schannel: reverse the order of certinfo insertions, (continued)
- [gnurl] 193/222: schannel: reverse the order of certinfo insertions, gnunet, 2019/11/06
- [gnurl] 199/222: HTTP3: fix typo somehere1 > somewhere1, gnunet, 2019/11/06
- [gnurl] 188/222: RELEASE-NOTES: synced, gnunet, 2019/11/06
- [gnurl] 180/222: examples/sslbackend: fix -Wchar-subscripts warning, gnunet, 2019/11/06
- [gnurl] 197/222: RELEASE-NOTES: synced, gnunet, 2019/11/06
- [gnurl] 203/222: url: make Curl_close() NULLify the pointer too, gnunet, 2019/11/06
- [gnurl] 205/222: gtls: make gnutls_bye() not wait for response on shutdown, gnunet, 2019/11/06
- [gnurl] 207/222: mbedtls: add error message for cert validity starting in the future, gnunet, 2019/11/06
- [gnurl] 210/222: configure: only say ipv6 enabled when the variable is set, gnunet, 2019/11/06
- [gnurl] 216/222: awk, gnunet, 2019/11/06
- [gnurl] 161/222: asyn-thread: make use of Curl_socketpair() where available,
gnunet <=
- [gnurl] 174/222: url: normalize CURLINFO_EFFECTIVE_URL, gnunet, 2019/11/06
- [gnurl] 167/222: KNOWN_BUGS: remove "CURLFORM_CONTENTLEN in an array", gnunet, 2019/11/06
- [gnurl] 190/222: conn-reuse: requests wanting NTLM can reuse non-NTLM connections, gnunet, 2019/11/06
- [gnurl] 185/222: runtests: get textaware info from curl instead of perl, gnunet, 2019/11/06
- [gnurl] 198/222: HTTP3: fix invalid use of sendto for connected UDP socket, gnunet, 2019/11/06
- [gnurl] 169/222: connect: silence sign-compare warning, gnunet, 2019/11/06
- [gnurl] 201/222: url: Curl_free_request_state() should also free doh handles, gnunet, 2019/11/06
- [gnurl] 214/222: awk scripts., gnunet, 2019/11/06
- [gnurl] 217/222: awk., gnunet, 2019/11/06
- [gnurl] 219/222: include., gnunet, 2019/11/06