MSVC fix for 'socklen_t'. Replace <winsock.h> with <winsock2.h> +
[platform/upstream/c-ares.git] / setup.h
1 #ifndef ARES_SETUP_H
2 #define ARES_SETUP_H
3
4 /* Copyright (C) 2004 - 2005 by Daniel Stenberg et al
5  *
6  * Permission to use, copy, modify, and distribute this software and its
7  * documentation for any purpose and without fee is hereby granted, provided
8  * that the above copyright notice appear in all copies and that both that
9  * copyright notice and this permission notice appear in supporting
10  * documentation, and that the name of M.I.T. not be used in advertising or
11  * publicity pertaining to distribution of the software without specific,
12  * written prior permission.  M.I.T. makes no representations about the
13  * suitability of this software for any purpose.  It is provided "as is"
14  * without express or implied warranty.
15  */
16
17 #ifdef HAVE_CONFIG_H
18 #include "config.h"
19 #else
20 /* simple work-around for now, for systems without configure support */
21 #define ssize_t int
22 #ifndef _MSC_VER
23 #define socklen_t int
24 #endif
25 #endif
26
27 /* Recent autoconf versions define these symbols in config.h. We don't want
28    them (since they collide with the libcurl ones when we build
29    --enable-debug) so we undef them again here. */
30 #undef PACKAGE_STRING
31 #undef PACKAGE_TARNAME
32 #undef PACKAGE_VERSION
33 #undef PACKAGE_BUGREPORT
34 #undef PACKAGE_NAME
35 #undef VERSION
36 #undef PACKAGE
37
38 /* now typedef our socket type */
39 #if defined(WIN32) && !defined(WATT32)
40 #include <winsock2.h>
41 #include <ws2tcpip.h>
42 typedef SOCKET ares_socket_t;
43 #define ARES_SOCKET_BAD INVALID_SOCKET
44 #else
45 typedef int ares_socket_t;
46 #define ARES_SOCKET_BAD -1
47 #endif
48
49 /* Assume a few thing unless they're set by configure
50  */
51 #if !defined(HAVE_SYS_TIME_H) && !defined(_MSC_VER)
52 #define HAVE_SYS_TIME_H
53 #endif
54
55 #if !defined(HAVE_UNISTD_H) && !defined(_MSC_VER)
56 #define HAVE_UNISTD_H 1
57 #endif
58
59 #if !defined(HAVE_SYS_UIO_H) && !defined(WIN32) && !defined(MSDOS)
60 #define HAVE_SYS_UIO_H
61 #endif
62
63 #if (defined(WIN32) || defined(WATT32)) && \
64    !(defined(__MINGW32__) || defined(NETWARE))
65 /* protos for the functions we provide in windows_port.c */
66 int ares_strncasecmp(const char *s1, const char *s2, int n);
67 int ares_strcasecmp(const char *s1, const char *s2);
68
69 /* use this define magic to prevent us from adding symbol names to the library
70    that is a high-risk to collide with another libraries' attempts to do the
71    same */
72 #define strncasecmp(a,b,c) ares_strncasecmp(a,b,c)
73 #define strcasecmp(a,b) ares_strcasecmp(a,b)
74 #endif
75
76 /* IPv6 compatibility */
77 #if !defined(HAVE_AF_INET6)
78 #if defined(HAVE_PF_INET6)
79 #define AF_INET6 PF_INET6
80 #else
81 #define AF_INET6 AF_MAX+1
82 #endif
83 #endif
84
85 #endif /* ARES_SETUP_H */