-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
cmake: fix gethostby{addr,name}_r in CurlTests
This patch cleans up the automatically-generated (?) code and fixes one case that will always fail due to syntax error. HAVE_GETHOSTBYADDR_R_5_REENTRANT always failed because of a trailing character ("int length;q"). Several parameter type and unused variable warnings popped up. This causes a detection failure with -Werror. Observe that the REENTRANT cases are exactly the same as their non-REENTRANT cases except for a `_REENTRANT` macro definition. Merge all these pieces and build one big main function with different cases, but reusing variables where logical. For the cases where the parameters where NULL, I looked at lib/hostip4.c to get an idea of the parameters types. void-cast variables such as 'rc' to avoid -Wuninitialized errors. Signed-off-by: Peter Wu <[email protected]>
- Loading branch information
1 parent
b2bb51f
commit aebfd4c
Showing
1 changed file
with
70 additions
and
246 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ | |
* | (__| |_| | _ <| |___ | ||
* \___|\___/|_| \_\_____| | ||
* | ||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <[email protected]>, et al. | ||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <[email protected]>, et al. | ||
* | ||
* This software is licensed as described in the file COPYING, which | ||
* you should have received as part of this distribution. The terms | ||
|
@@ -71,264 +71,88 @@ main () | |
} | ||
#endif | ||
|
||
#ifdef HAVE_GETHOSTBYADDR_R_5 | ||
/* tests for gethostbyaddr_r or gethostbyname_r */ | ||
#if defined(HAVE_GETHOSTBYADDR_R_5_REENTRANT) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_7_REENTRANT) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_8_REENTRANT) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_3_REENTRANT) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_5_REENTRANT) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_6_REENTRANT) | ||
# define _REENTRANT | ||
/* no idea whether _REENTRANT is always set, just invent a new flag */ | ||
# define TEST_GETHOSTBYFOO_REENTRANT | ||
#endif | ||
#if defined(HAVE_GETHOSTBYADDR_R_5) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_7) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_8) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_3) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_5) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_6) || \ | ||
defined(TEST_GETHOSTBYFOO_REENTRANT) | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
int | ||
main () | ||
{ | ||
|
||
char * address; | ||
int length; | ||
int type; | ||
struct hostent h; | ||
struct hostent_data hdata; | ||
int rc; | ||
#ifndef gethostbyaddr_r | ||
(void)gethostbyaddr_r; | ||
#endif | ||
rc = gethostbyaddr_r(address, length, type, &h, &hdata); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYADDR_R_5_REENTRANT | ||
#define _REENTRANT | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
int | ||
main () | ||
{ | ||
|
||
char * address; | ||
int length;q | ||
int type; | ||
struct hostent h; | ||
struct hostent_data hdata; | ||
int rc; | ||
#ifndef gethostbyaddr_r | ||
(void)gethostbyaddr_r; | ||
#endif | ||
rc = gethostbyaddr_r(address, length, type, &h, &hdata); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYADDR_R_7 | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
int | ||
main () | ||
{ | ||
|
||
char * address; | ||
int length; | ||
int type; | ||
struct hostent h; | ||
char buffer[8192]; | ||
int h_errnop; | ||
struct hostent * hp; | ||
|
||
#ifndef gethostbyaddr_r | ||
(void)gethostbyaddr_r; | ||
#endif | ||
hp = gethostbyaddr_r(address, length, type, &h, | ||
buffer, 8192, &h_errnop); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYADDR_R_7_REENTRANT | ||
#define _REENTRANT | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
int | ||
main () | ||
int main(void) | ||
{ | ||
|
||
char * address; | ||
int length; | ||
int type; | ||
struct hostent h; | ||
char buffer[8192]; | ||
int h_errnop; | ||
struct hostent * hp; | ||
|
||
#ifndef gethostbyaddr_r | ||
(void)gethostbyaddr_r; | ||
#endif | ||
hp = gethostbyaddr_r(address, length, type, &h, | ||
buffer, 8192, &h_errnop); | ||
; | ||
return 0; | ||
} | ||
char *address = "example.com"; | ||
int length = 0; | ||
int type = 0; | ||
struct hostent h; | ||
int rc = 0; | ||
#if defined(HAVE_GETHOSTBYADDR_R_5) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_5_REENTRANT) || \ | ||
\ | ||
defined(HAVE_GETHOSTBYNAME_R_3) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_3_REENTRANT) | ||
struct hostent_data hdata; | ||
#elif defined(HAVE_GETHOSTBYADDR_R_7) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_7_REENTRANT) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_8) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_8_REENTRANT) || \ | ||
\ | ||
defined(HAVE_GETHOSTBYNAME_R_5) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_5_REENTRANT) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_6) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_6_REENTRANT) | ||
char buffer[8192]; | ||
int h_errnop; | ||
struct hostent *hp; | ||
#endif | ||
#ifdef HAVE_GETHOSTBYADDR_R_8 | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
int | ||
main () | ||
{ | ||
|
||
char * address; | ||
int length; | ||
int type; | ||
struct hostent h; | ||
char buffer[8192]; | ||
int h_errnop; | ||
struct hostent * hp; | ||
int rc; | ||
|
||
#ifndef gethostbyaddr_r | ||
(void)gethostbyaddr_r; | ||
#endif | ||
rc = gethostbyaddr_r(address, length, type, &h, | ||
buffer, 8192, &hp, &h_errnop); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYADDR_R_8_REENTRANT | ||
#define _REENTRANT | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
int | ||
main () | ||
{ | ||
|
||
char * address; | ||
int length; | ||
int type; | ||
struct hostent h; | ||
char buffer[8192]; | ||
int h_errnop; | ||
struct hostent * hp; | ||
int rc; | ||
|
||
#ifndef gethostbyaddr_r | ||
(void)gethostbyaddr_r; | ||
#endif | ||
rc = gethostbyaddr_r(address, length, type, &h, | ||
buffer, 8192, &hp, &h_errnop); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYNAME_R_3 | ||
#include <string.h> | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
#undef NULL | ||
#define NULL (void *)0 | ||
|
||
int | ||
main () | ||
{ | ||
|
||
struct hostent_data data; | ||
#ifndef gethostbyname_r | ||
(void)gethostbyname_r; | ||
#endif | ||
gethostbyname_r(NULL, NULL, NULL); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYNAME_R_3_REENTRANT | ||
#define _REENTRANT | ||
#include <string.h> | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
#undef NULL | ||
#define NULL (void *)0 | ||
|
||
int | ||
main () | ||
{ | ||
|
||
struct hostent_data data; | ||
#ifndef gethostbyname_r | ||
(void)gethostbyname_r; | ||
#endif | ||
gethostbyname_r(NULL, NULL, NULL); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYNAME_R_5 | ||
#include <sys/types.h> | ||
#include <netinet/in.h> | ||
#include <netdb.h> | ||
#undef NULL | ||
#define NULL (void *)0 | ||
|
||
int | ||
main () | ||
{ | ||
#ifndef gethostbyname_r | ||
(void)gethostbyname_r; | ||
#endif | ||
gethostbyname_r(NULL, NULL, NULL, 0, NULL); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYNAME_R_5_REENTRANT | ||
#define _REENTRANT | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
#undef NULL | ||
#define NULL (void *)0 | ||
|
||
int | ||
main () | ||
{ | ||
|
||
#ifndef gethostbyname_r | ||
(void)gethostbyname_r; | ||
#endif | ||
gethostbyname_r(NULL, NULL, NULL, 0, NULL); | ||
; | ||
#if defined(HAVE_GETHOSTBYADDR_R_5) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_5_REENTRANT) | ||
rc = gethostbyaddr_r(address, length, type, &h, &hdata); | ||
#elif defined(HAVE_GETHOSTBYADDR_R_7) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_7_REENTRANT) | ||
hp = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &h_errnop); | ||
(void)hp; | ||
#elif defined(HAVE_GETHOSTBYADDR_R_8) || \ | ||
defined(HAVE_GETHOSTBYADDR_R_8_REENTRANT) | ||
rc = gethostbyaddr_r(address, length, type, &h, buffer, 8192, &hp, &h_errnop); | ||
#endif | ||
|
||
#if defined(HAVE_GETHOSTBYNAME_R_3) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_3_REENTRANT) | ||
rc = gethostbyname_r(address, &h, &hdata); | ||
#elif defined(HAVE_GETHOSTBYNAME_R_5) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_5_REENTRANT) | ||
rc = gethostbyname_r(address, &h, buffer, 8192, 0, &h_errnop); | ||
(void)hp; /* not used for test */ | ||
#elif defined(HAVE_GETHOSTBYNAME_R_6) || \ | ||
defined(HAVE_GETHOSTBYNAME_R_6_REENTRANT) | ||
rc = gethostbyname_r(address, &h, buffer, 8192, &hp, &h_errnop); | ||
#endif | ||
|
||
(void)length; | ||
(void)type; | ||
(void)rc; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYNAME_R_6 | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
#undef NULL | ||
#define NULL (void *)0 | ||
|
||
int | ||
main () | ||
{ | ||
|
||
#ifndef gethostbyname_r | ||
(void)gethostbyname_r; | ||
#endif | ||
gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_GETHOSTBYNAME_R_6_REENTRANT | ||
#define _REENTRANT | ||
#include <sys/types.h> | ||
#include <netdb.h> | ||
#undef NULL | ||
#define NULL (void *)0 | ||
|
||
int | ||
main () | ||
{ | ||
|
||
#ifndef gethostbyname_r | ||
(void)gethostbyname_r; | ||
#endif | ||
gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL); | ||
; | ||
return 0; | ||
} | ||
#endif | ||
#ifdef HAVE_SOCKLEN_T | ||
#ifdef _WIN32 | ||
#include <ws2tcpip.h> | ||
|