summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2021-01-26 14:59:01 +0100
committerDaniel Stenberg <daniel@haxx.se>2021-01-27 09:19:12 +0100
commite76b058f3c9a314edbc1a214e1eaf6ef21955bd9 (patch)
treef272b62819f51cff2ddd59a63447ef3805423e5f
parent1c3def53c71f85bb3ae16cd4c39dbdcc2a6c460f (diff)
downloadcurl-e76b058f3c9a314edbc1a214e1eaf6ef21955bd9.tar.gz
urldata: store ip version in a single byte
Closes #6534
-rw-r--r--lib/connect.c2
-rw-r--r--lib/setopt.c2
-rw-r--r--lib/urldata.h7
3 files changed, 5 insertions, 6 deletions
diff --git a/lib/connect.c b/lib/connect.c
index 236fece07..1e9434bb6 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -348,7 +348,7 @@ static CURLcode bindlocal(struct Curl_easy *data,
* of the connection. The resolve functions should really be changed
* to take a type parameter instead.
*/
- long ipver = conn->ip_version;
+ unsigned char ipver = conn->ip_version;
int rc;
if(af == AF_INET)
diff --git a/lib/setopt.c b/lib/setopt.c
index 409234fcd..37e122f9c 100644
--- a/lib/setopt.c
+++ b/lib/setopt.c
@@ -2271,7 +2271,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
arg = va_arg(param, long);
if((arg < CURL_IPRESOLVE_WHATEVER) || (arg > CURL_IPRESOLVE_V6))
return CURLE_BAD_FUNCTION_ARGUMENT;
- data->set.ipver = arg;
+ data->set.ipver = (unsigned char) arg;
break;
case CURLOPT_MAXFILESIZE_LARGE:
diff --git a/lib/urldata.h b/lib/urldata.h
index d7bc3d785..0d8703a4b 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -976,6 +976,7 @@ struct connectdata {
these are updated with data which comes directly from the socket. */
char primary_ip[MAX_IPADR_LEN];
+ unsigned char ip_version; /* copied from the Curl_easy at creation time */
char *user; /* user name string, allocated */
char *passwd; /* password string, allocated */
@@ -1027,8 +1028,6 @@ struct connectdata {
const struct Curl_handler *handler; /* Connection's protocol handler */
const struct Curl_handler *given; /* The protocol first given */
- long ip_version; /* copied from the Curl_easy at creation time */
-
/* Protocols can use a custom keepalive mechanism to keep connections alive.
This allows those protocols to track the last time the keepalive mechanism
was used on this connection. */
@@ -1726,8 +1725,8 @@ struct UserDefined {
keep it >= CURL_MAX_WRITE_SIZE */
void *private_data; /* application-private data */
struct curl_slist *http200aliases; /* linked list of aliases for http200 */
- long ipver; /* the CURL_IPRESOLVE_* defines in the public header file
- 0 - whatever, 1 - v2, 2 - v6 */
+ unsigned char ipver; /* the CURL_IPRESOLVE_* defines in the public header
+ file 0 - whatever, 1 - v2, 2 - v6 */
curl_off_t max_filesize; /* Maximum file size to download */
#ifndef CURL_DISABLE_FTP
curl_ftpfile ftp_filemethod; /* how to get to a file when FTP is used */