diff --git a/lib/http_proxy.c b/lib/http_proxy.c index 556abf1a7..adcfe42dd 100644 --- a/lib/http_proxy.c +++ b/lib/http_proxy.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -92,7 +92,7 @@ CURLcode Curl_proxy_connect(struct connectdata *conn) CURLcode Curl_proxyCONNECT(struct connectdata *conn, int sockindex, const char *hostname, - unsigned short remote_port) + int remote_port) { int subversion=0; struct SessionHandle *data=conn->data; diff --git a/lib/http_proxy.h b/lib/http_proxy.h index 518c09383..2b5e9c9b4 100644 --- a/lib/http_proxy.h +++ b/lib/http_proxy.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -26,7 +26,7 @@ /* ftp can use this as well */ CURLcode Curl_proxyCONNECT(struct connectdata *conn, int tunnelsocket, - const char *hostname, unsigned short remote_port); + const char *hostname, int remote_port); /* Default proxy timeout in milliseconds */ #define PROXY_TIMEOUT (3600*1000) diff --git a/lib/url.c b/lib/url.c index 4d7508eee..7a7c2781d 100644 --- a/lib/url.c +++ b/lib/url.c @@ -3553,6 +3553,7 @@ static struct connectdata *allocate_conn(struct SessionHandle *data) conn->tempsock[1] = CURL_SOCKET_BAD; /* no file descriptor */ conn->connection_id = -1; /* no ID */ conn->port = -1; /* unknown at this point */ + conn->remote_port = -1; /* unknown */ /* Default protocol-independent behavior doesn't support persistent connections, so we set this to force-close. Protocols that support @@ -4075,7 +4076,7 @@ static CURLcode setup_connection_internals(struct connectdata *conn) /* only if remote_port was not already parsed off the URL we use the default port number */ - if(!conn->remote_port) + if(conn->remote_port < 0) conn->remote_port = (unsigned short)conn->given->defport; return CURLE_OK; diff --git a/lib/urldata.h b/lib/urldata.h index 1ab7b94e9..9d6a9730a 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -388,7 +388,7 @@ struct curl_ssl_session { void *sessionid; /* as returned from the SSL layer */ size_t idsize; /* if known, otherwise 0 */ long age; /* just a number, the higher the more recent */ - unsigned short remote_port; /* remote port to connect to */ + int remote_port; /* remote port to connect to */ struct ssl_config_data ssl_config; /* setup for this session */ }; @@ -868,8 +868,7 @@ struct connectdata { struct hostname proxy; long port; /* which port to use locally */ - unsigned short remote_port; /* what remote port to connect to, - not the proxy port! */ + int remote_port; /* what remote port to connect to, not the proxy port! */ /* 'primary_ip' and 'primary_port' get filled with peer's numerical ip address and port number whenever an outgoing connection is