From b54590c34436c23616216c2bb652cdc3884b7c45 Mon Sep 17 00:00:00 2001 From: henri Date: Mon, 22 Apr 2013 19:35:07 +0000 Subject: [PATCH] Don't artificially increase timeouts to establish proxy connections. It's now up to the caller to adjust timeout values accordingly. --- nsock/src/proxy_http.c | 11 +++++++++-- nsock/src/proxy_socks4.c | 10 +++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/nsock/src/proxy_http.c b/nsock/src/proxy_http.c index 4468f56c5..39eada7c9 100644 --- a/nsock/src/proxy_http.c +++ b/nsock/src/proxy_http.c @@ -63,6 +63,8 @@ #define DEFAULT_PROXY_PORT_HTTP 8080 +extern struct timeval nsock_tod; + /* ---- PROTOTYPES ---- */ static int proxy_http_node_new(struct proxy_node **node, const struct uri *uri); static void proxy_http_node_delete(struct proxy_node *node); @@ -113,6 +115,7 @@ void proxy_http_handler(nsock_pool nspool, nsock_event nsevent, void *udata) { size_t sslen; unsigned short port; struct proxy_node *next; + int timeout; switch (nse->iod->px_ctx->px_state) { case PROXY_STATE_INITIAL: @@ -128,10 +131,14 @@ void proxy_http_handler(nsock_pool nspool, nsock_event nsevent, void *udata) { sslen = nse->iod->px_ctx->target_sslen; port = nse->iod->px_ctx->target_port; } + + timeout = TIMEVAL_MSEC_SUBTRACT(nse->timeout, nsock_tod); nsock_printf(nspool, (nsock_iod)nse->iod, nsock_proxy_ev_dispatch, - 4000, udata, "CONNECT %s:%d HTTP/1.1\r\n\r\n", + timeout, udata, "CONNECT %s:%d HTTP/1.1\r\n\r\n", inet_ntop_ez(ss, sslen), (int)port); - nsock_readlines(nspool, (nsock_iod)nse->iod, nsock_proxy_ev_dispatch, 4000, udata, 1); + + nsock_readlines(nspool, (nsock_iod)nse->iod, nsock_proxy_ev_dispatch, + timeout, udata, 1); break; case PROXY_STATE_HTTP_TCP_CONNECTED: diff --git a/nsock/src/proxy_socks4.c b/nsock/src/proxy_socks4.c index 51e348667..1d7304bae 100644 --- a/nsock/src/proxy_socks4.c +++ b/nsock/src/proxy_socks4.c @@ -63,6 +63,8 @@ #define DEFAULT_PROXY_PORT_SOCKS4 1080 +extern struct timeval nsock_tod; + struct socks4_data { char version; char type; @@ -145,9 +147,10 @@ void proxy_socks4_handler(nsock_pool nspool, nsock_event nsevent, void *udata) { size_t sslen; unsigned short port; struct proxy_node *next; + struct socks4_data socks4; + int timeout; switch (nse->iod->px_ctx->px_state) { - struct socks4_data socks4; case PROXY_STATE_INITIAL: nse->iod->px_ctx->px_state = PROXY_STATE_SOCKS4_TCP_CONNECTED; @@ -165,10 +168,11 @@ void proxy_socks4_handler(nsock_pool nspool, nsock_event nsevent, void *udata) { socks4_init(&socks4, ss, sslen, port); + timeout = TIMEVAL_MSEC_SUBTRACT(nse->timeout, nsock_tod); nsock_write(nspool, (nsock_iod)nse->iod, nsock_proxy_ev_dispatch, - 4000, udata, (char *)&socks4, 9); + timeout, udata, (char *)&socks4, 9); nsock_readbytes(nspool, (nsock_iod)nse->iod, nsock_proxy_ev_dispatch, - 4000, udata, 8); + timeout, udata, 8); break; case PROXY_STATE_SOCKS4_TCP_CONNECTED: