]> granicus.if.org Git - python/commitdiff
Port getaddrinfo to MSVC++.
authorMartin v. Löwis <martin@v.loewis.de>
Thu, 19 Jul 2001 17:37:46 +0000 (17:37 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Thu, 19 Jul 2001 17:37:46 +0000 (17:37 +0000)
Modules/addrinfo.h
Modules/getaddrinfo.c
Modules/socketmodule.c

index 0782afeac059c2d211b28df6f0bf0c77fa88154c..6d0991dee3939f0baee3f5f69ba36712da247f1c 100644 (file)
@@ -105,7 +105,7 @@ struct addrinfo {
  */
 #define _SS_MAXSIZE    128
 #ifdef HAVE_LONG_LONG
-#define _SS_ALIGNSIZE  (sizeof(long long))
+#define _SS_ALIGNSIZE  (sizeof(LONG_LONG))
 #else
 #define _SS_ALIGNSIZE  (sizeof(double))
 #endif
@@ -122,7 +122,7 @@ struct sockaddr_storage {
 #endif
        char    __ss_pad1[_SS_PAD1SIZE];
 #ifdef HAVE_LONG_LONG
-       long long __ss_align;   /* force desired structure storage alignment */
+       LONG_LONG __ss_align;   /* force desired structure storage alignment */
 #else
        double __ss_align;      /* force desired structure storage alignment */
 #endif
index a188bdd134cbc196b2f51326db1a47c1b1e32bd2..a1f4c14096f9547fabed97087cb69e72da65a6d6 100644 (file)
@@ -117,6 +117,17 @@ static struct gai_afd {
 #define PTON_MAX       4
 #endif
 
+#ifndef IN_MULTICAST
+#define IN_MULTICAST(i)            (((i) & 0xf0000000U) == 0xe0000000U)
+#endif
+
+#ifndef IN_EXPERIMENTAL
+#define IN_EXPERIMENTAL(i)  (((i) & 0xe0000000U) == 0xe0000000U)
+#endif
+
+#ifndef IN_LOOPBACKNET
+#define IN_LOOPBACKNET     127
+#endif
 
 static int get_name Py_PROTO((const char *, struct gai_afd *,
                          struct addrinfo **, char *, struct addrinfo *,
@@ -527,7 +538,8 @@ get_addr(hostname, af, res, pai, port0)
        struct gai_afd *gai_afd;
        int i, error = 0, h_error;
        char *ap;
-#ifndef INET6
+#if !defined(INET6) && !defined(MS_WIN32)
+       /* In winsock.h, h_errno is #defined as a function call. */
        extern int h_errno;
 #endif
 
index 962fbfa374be5ff8fc19036634387071009558f9..72b141c8a474d35d41ed47fb1f36a48175cdba2d 100644 (file)
@@ -195,12 +195,7 @@ Socket methods:
 #include <GUSI.h>
 #endif
 
-/* XXX 24-Jun-2000 Tim:  I have no idea what the code inside this block is
-   trying to do, and don't have time to look.  Looks like Unix-specific code
-   in those files, though, which will never compile on Windows. */
-#ifndef MS_WINDOWS
 #include "addrinfo.h"
-#endif /* ifndef MS_WINDOWS hack */
 
 #ifdef USE_SSL
 #include "openssl/rsa.h"
@@ -211,11 +206,6 @@ Socket methods:
 #include "openssl/err.h"
 #endif /* USE_SSL */
 
-/* XXX 24-Jun-2000 Tim:  I have no idea what the code inside this block is
-   trying to do, and don't have time to look.  Looks like Unix-specific code
-   in those files, though, which will never compile on Windows. */
-#ifndef MS_WINDOWS
-
 #ifndef HAVE_INET_PTON
 int inet_pton (int af, char *src, void *dst);
 char *inet_ntop(int af, void *src, char *dst, socklen_t size);
@@ -229,8 +219,6 @@ char *inet_ntop(int af, void *src, char *dst, socklen_t size);
 #include "getnameinfo.c"
 #endif
 
-#endif /* ifndef MS_WINDOWS hack */
-
 #if defined(MS_WINDOWS) || defined(__BEOS__)
 /* BeOS suffers from the same socket dichotomy as Win32... - [cjh] */
 /* seem to be a few differences in the API */