diff options
author | Daniel Stenberg <daniel@haxx.se> | 2014-03-05 17:38:05 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-03-05 17:38:05 +0000 |
commit | 219a0fbe76204e2505a9143aeb149336c7f5683b (patch) | |
tree | ee5ece394dd59ab8ec7fc11e04468dca8f1e0c06 | |
parent | 0b3750b5c23c25f1bcf4ed95edf8928ce4fd06cc (diff) | |
download | curl-219a0fbe76204e2505a9143aeb149336c7f5683b.tar.gz |
remote_port: allow connect to port 0
Port number zero is perfectly allowed to connect to. I moved to storing
the remote port number in an int so that -1 means undefined and 0-65535
can be used for legitimate port numbers.
-rw-r--r-- | lib/http_proxy.c | 4 | ||||
-rw-r--r-- | lib/http_proxy.h | 4 | ||||
-rw-r--r-- | lib/url.c | 3 | ||||
-rw-r--r-- | lib/urldata.h | 5 |
4 files changed, 8 insertions, 8 deletions
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, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2014, 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 @@ -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, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2014, 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 @@ -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) @@ -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 |