From 8020a0c62f79239c802ed6fa840b11677176910a Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 6 Apr 2018 15:26:04 +0200 Subject: [PATCH] curl_setup: provide a CURL_SA_FAMILY_T type if none exists ... and use this type instead of 'sa_family_t' in the code since several platforms don't have it. Closes #2463 --- lib/curl_addrinfo.c | 4 ++-- lib/curl_setup.h | 5 +++++ lib/tftp.c | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/curl_addrinfo.c b/lib/curl_addrinfo.c index 01775f704..55d5a3942 100644 --- a/lib/curl_addrinfo.c +++ b/lib/curl_addrinfo.c @@ -345,7 +345,7 @@ Curl_he2ai(const struct hostent *he, int port) addr = (void *)ai->ai_addr; /* storage area for this info */ memcpy(&addr->sin_addr, curr, sizeof(struct in_addr)); - addr->sin_family = (sa_family_t)(he->h_addrtype); + addr->sin_family = (CURL_SA_FAMILY_T)(he->h_addrtype); addr->sin_port = htons((unsigned short)port); break; @@ -354,7 +354,7 @@ Curl_he2ai(const struct hostent *he, int port) addr6 = (void *)ai->ai_addr; /* storage area for this info */ memcpy(&addr6->sin6_addr, curr, sizeof(struct in6_addr)); - addr6->sin6_family = (sa_family_t)(he->h_addrtype); + addr6->sin6_family = (CURL_SA_FAMILY_T)(he->h_addrtype); addr6->sin6_port = htons((unsigned short)port); break; #endif diff --git a/lib/curl_setup.h b/lib/curl_setup.h index e4503c64c..5593a3b5c 100644 --- a/lib/curl_setup.h +++ b/lib/curl_setup.h @@ -795,4 +795,9 @@ endings either CRLF or LF so 't' is appropriate. # endif # endif +/* for systems that don't detect this in configure, use a sensible default */ +#ifndef CURL_SA_FAMILY_T +#define CURL_SA_FAMILY_T unsigned short +#endif + #endif /* HEADER_CURL_SETUP_H */ diff --git a/lib/tftp.c b/lib/tftp.c index 7fd7b3751..b32960f82 100644 --- a/lib/tftp.c +++ b/lib/tftp.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, 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 @@ -1010,7 +1010,7 @@ static CURLcode tftp_connect(struct connectdata *conn, bool *done) state->requested_blksize = blksize; ((struct sockaddr *)&state->local_addr)->sa_family = - (sa_family_t)(conn->ip_addr->ai_family); + (CURL_SA_FAMILY_T)(conn->ip_addr->ai_family); tftp_set_timeouts(state);