diff options
Diffstat (limited to 'Source/CTest/Curl/setup.h')
-rw-r--r-- | Source/CTest/Curl/setup.h | 230 |
1 files changed, 166 insertions, 64 deletions
diff --git a/Source/CTest/Curl/setup.h b/Source/CTest/Curl/setup.h index e10206e..fff6974 100644 --- a/Source/CTest/Curl/setup.h +++ b/Source/CTest/Curl/setup.h @@ -1,18 +1,18 @@ #ifndef __SETUP_H #define __SETUP_H /*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2002, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2004, 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 * are also available at http://curl.haxx.se/docs/copyright.html. - * + * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. @@ -23,9 +23,6 @@ * $Id$ ***************************************************************************/ -/* MN 06/07/02 */ -/* #define HTTP_ONLY -*/ #ifdef HTTP_ONLY #define CURL_DISABLE_FTP #define CURL_DISABLE_LDAP @@ -35,35 +32,64 @@ #define CURL_DISABLE_GOPHER #endif -#if !defined(WIN32) && (defined(__WIN32__) || defined(_WIN32)) +#if !defined(WIN32) && defined(__WIN32__) /* This should be a good Borland fix. Alexander J. Oss told us! */ #define WIN32 #endif #ifdef HAVE_CONFIG_H - -#ifdef VMS -#include "config-vms.h" -#else #include "config.h" /* the configure script results */ -#endif - #else #ifdef WIN32 /* hand-modified win32 config.h! */ #include "config-win32.h" #endif +#endif + #ifdef macintosh /* hand-modified MacOS config.h! */ #include "config-mac.h" #endif +#ifdef AMIGA +/* hand-modified AmigaOS config.h! */ +#include "amigaos.h" +#endif +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 #endif -#ifndef __cplusplus /* (rabe) */ +#if !defined(__cplusplus) && !defined(__BEOS__) typedef unsigned char bool; #define typedef_bool -#endif /* (rabe) */ +#endif + +#ifdef HAVE_LONGLONG +#define LONG_LONG long long +#define ENABLE_64BIT +#else +#ifdef _MSC_VER +#define LONG_LONG __int64 +#define ENABLE_64BIT +#endif +#endif /* HAVE_LONGLONG */ + +#ifndef SIZEOF_CURL_OFF_T +/* If we don't know the size here, we assume a conservative size: 4. When + building libcurl, the actual size of this variable should be define in the + config*.h file. */ +#define SIZEOF_CURL_OFF_T 4 +#endif + +/* We set up our internal prefered (CURL_)FORMAT_OFF_T here */ +#if SIZEOF_CURL_OFF_T > 4 +#define FORMAT_OFF_T "lld" +#else +#define FORMAT_OFF_T "ld" +#endif #ifdef NEED_REENTRANT /* Solaris machines needs _REENTRANT set for a few function prototypes and @@ -72,14 +98,14 @@ typedef unsigned char bool; #define _REENTRANT #endif - #include <stdio.h> -#ifndef OS -#ifdef WIN32 -#define OS "win32" -#else -#define OS "unknown" +#ifdef HAVE_ASSERT_H +#include <assert.h> #endif +#include <errno.h> + +#ifdef __TANDEM /* for nsr-tandem-nsk systems */ +#include <floss.h> #endif #if defined(HAVE_X509_H) && defined(HAVE_SSL_H) && defined(HAVE_RSA_H) && \ @@ -100,18 +126,26 @@ defined(HAVE_LIBSSL) && defined(HAVE_LIBCRYPTO) #endif #ifndef STDC_HEADERS /* no standard C headers! */ -#ifdef VMS -#include "../include/curl/stdcheaders.h" -#else #include <curl/stdcheaders.h> #endif +#if defined(CURLDEBUG) && defined(HAVE_ASSERT_H) +#define curlassert(x) assert(x) #else -#ifdef _AIX -#include <curl/stdcheaders.h> +/* does nothing without CURLDEBUG defined */ +#define curlassert(x) #endif + +#ifdef MSG_NOSIGNAL +/* If we have the MSG_NOSIGNAL define, we make sure to use that in the forth + argument to send() and recv() */ +#define SEND_4TH_ARG MSG_NOSIGNAL +#define HAVE_MSG_NOSIGNAL 1 /* we have MSG_NOSIGNAL */ +#else +#define SEND_4TH_ARG 0 #endif + /* Below we define four functions. They should 1. close a socket 2. read from a socket @@ -122,71 +156,139 @@ defined(HAVE_LIBSSL) && defined(HAVE_LIBCRYPTO) */ #ifdef WIN32 -/* Disable unnecessary warnings on Visual Studio */ -#ifdef _MSC_VER -#pragma warning ( disable : 4127 ) -#pragma warning ( disable : 4514 ) -#pragma warning ( disable : 4706 ) -#pragma warning ( disable : 4131 ) /* Old style declaration */ -#pragma warning ( disable : 4055 ) /* Cast void*(*)() to void* */ -#pragma warning ( disable : 4311 ) /* Allow cast from void* to long/int */ -#pragma warning ( disable : 4312 ) /* Allow cast from long to char* */ -struct _RPC_ASYNC_STATE; -#endif -/* Disable unnecessary warnings on Borland */ -#ifdef __BORLANDC__ -#pragma warn -8004 + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN /* Prevent including <winsock*.h> in <windows.h> */ +#endif + +#if (defined(ENABLE_IPV6) || defined(CURLDEBUG)) && defined(_MSC_VER) && \ + (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0500) +/* + * Needed to pull in the real getaddrinfo() and not the inline version + * in <wspiAPI.H> which doesn't support IPv6 (IPv4 only). <wspiAPI.H> is + * included from <ws2tcpip.h> for <= 0x0500 SDKs. + */ +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0501 +#endif + +#include <winsock2.h> /* required by telnet.c */ + +#if defined(ENABLE_IPV6) || defined(USE_SSLEAY) +#include <ws2tcpip.h> #endif + #if !defined(__GNUC__) || defined(__MINGW32__) #define sclose(x) closesocket(x) -#define sread(x,y,z) recv(x,y,z,0) -#define swrite(x,y,z) (size_t)send(x,y,z,0) +#define sread(x,y,z) recv(x,y,z, SEND_4TH_ARG) +#define swrite(x,y,z) (size_t)send(x,y,z, SEND_4TH_ARG) #undef HAVE_ALARM #else /* gcc-for-win is still good :) */ #define sclose(x) close(x) -#define sread(x,y,z) recv(x,y,z,0) -#define swrite(x,y,z) send(x,y,z,0) +#define sread(x,y,z) recv(x,y,z, SEND_4TH_ARG) +#define swrite(x,y,z) send(x,y,z, SEND_4TH_ARG) #define HAVE_ALARM #endif -#define PATH_CHAR ";" #define DIR_CHAR "\\" #define DOT_CHAR "_" #else + +#ifdef DJGPP +#define sclose(x) close_s(x) +#define sread(x,y,z) read_s(x,y,z) +#define swrite(x,y,z) write_s(x,y,z) +#define select(n,r,w,x,t) select_s(n,r,w,x,t) +#define ioctl(x,y,z) ioctlsocket(x,y,(char *)(z)) +#define IOCTL_3_ARGS +#include <tcp.h> +#ifdef word +#undef word +#endif + +#else + +#ifdef __BEOS__ +#define sclose(x) closesocket(x) +#define sread(x,y,z) (ssize_t)recv(x,y,z, SEND_4TH_ARG) +#define swrite(x,y,z) (ssize_t)send(x,y,z, SEND_4TH_ARG) +#else #define sclose(x) close(x) -#define sread(x,y,z) recv(x,y,z,0) -#define swrite(x,y,z) send(x,y,z,0) +#define sread(x,y,z) recv(x,y,z, SEND_4TH_ARG) +#define swrite(x,y,z) send(x,y,z, SEND_4TH_ARG) +#endif + #define HAVE_ALARM -#define PATH_CHAR ":" +#endif + +#ifdef _AMIGASF +#undef HAVE_ALARM +#undef sclose +#define sclose(x) CloseSocket(x) +#endif + #define DIR_CHAR "/" #define DOT_CHAR "." -#ifdef HAVE_STRCASECMP -/* this is for "-ansi -Wall -pedantic" to stop complaining! */ -extern int (strcasecmp)(const char *s1, const char *s2); -extern int (strncasecmp)(const char *s1, const char *s2, size_t n); +#ifdef DJGPP +#undef DOT_CHAR +#define DOT_CHAR "_" +#endif + #ifndef fileno /* sunos 4 have this as a macro! */ int fileno( FILE *stream); #endif + #endif +/* now typedef our socket type */ +#ifdef WIN32 +typedef SOCKET curl_socket_t; +#define CURL_SOCKET_BAD INVALID_SOCKET +#else +typedef int curl_socket_t; +#define CURL_SOCKET_BAD -1 #endif -/* - * Curl_addrinfo MUST be used for name resolving information. - * Information regarding a single IP witin a Curl_addrinfo MUST be stored in - * a Curl_ipconnect struct. - */ +#if defined(ENABLE_IPV6) && defined(USE_ARES) +#error "ares does not yet support IPv6. Disable IPv6 or ares and rebuild" +#endif + +#if defined(WIN32) && !defined(__CYGWIN__) && !defined(USE_ARES) && \ + !defined(__LCC__) /* lcc-win32 doesn't have _beginthreadex() */ #ifdef ENABLE_IPV6 -typedef struct addrinfo Curl_addrinfo; -typedef struct addrinfo Curl_ipconnect; +#define USE_THREADING_GETADDRINFO +#else +#define USE_THREADING_GETHOSTBYNAME /* Cygwin uses alarm() function */ +#endif +#endif + +#ifdef mpeix +#define IOCTL_3_ARGS +#endif + +#ifndef ECONNRESET +#ifdef WSAECONNRESET +#define ECONNRESET WSAECONNRESET #else -typedef struct hostent Curl_addrinfo; -typedef struct in_addr Curl_ipconnect; +/* This will effectively prevent the code from working in this particular + aspect, but it still compile fine! */ +#define ECONNRESET 10000 +#endif #endif +#ifdef NETWARE +#undef HAVE_ALARM +#endif + +#ifdef HAVE_LIBIDN +/* This could benefit from additional checks that some of the used/important + header files are present as well before we define the USE_* define. */ +#define USE_LIBIDN +#define LIBIDN_REQUIRED_VERSION "0.4.1" +#endif #endif /* __CONFIG_H */ |