*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Sun, 26 Sep 1999 15:27:12 +0200
changeset 823 85c20f9e71de
parent 822 a08e230988fe
child 824 13b31787563a
*** empty log message ***
Socket.st
Socket_win32.st
--- a/Socket.st	Fri Sep 24 17:31:12 1999 +0200
+++ b/Socket.st	Sun Sep 26 15:27:12 1999 +0200
@@ -219,7 +219,7 @@
 # undef AF_ISO
 #endif
 
-#ifdef WANT__AF_NETBIOS /* ? */
+#ifdef WANT__AF_NETBIOS /* NETBIOS */
 # ifdef AF_NETBIOS
 #  ifndef PF_NETBIOS
 #   define PF_NETBIOS AF_NETBIOS
@@ -299,6 +299,36 @@
 # undef AF_ROSE
 #endif
 
+#ifdef WANT__AF_ATM /* ATM Services */
+# ifdef AF_ATM
+#  ifndef PF_ATM
+#   define PF_ATM AF_ATM
+#  endif
+# endif
+#else
+# undef AF_ATM
+#endif
+
+#ifdef WANT__AF_BAN /* BAN / VINES IP Services */
+# ifdef AF_BAN
+#  ifndef PF_BAN
+#   define PF_BAN AF_BAN
+#  endif
+# endif
+#else
+# undef AF_BAN
+#endif
+
+#ifdef WANT__AF_VOICEVIEW /* VoiceView Services W95 only */
+# ifdef AF_VOICEVIEW
+#  ifndef PF_VOICEVIEW
+#   define PF_VOICEVIEW AF_VOICEVIEW
+#  endif
+# endif
+#else
+# undef AF_VOICEVIEW
+#endif
+
 
 /*
  * now, include what we have to ...
@@ -306,6 +336,14 @@
  * (or I dont know yet, where to find it)
  */
 
+#ifdef AF_UNIX
+# ifdef UNIX
+#  include <sys/un.h>
+# else
+#  undef AF_UNIX
+# endif
+#endif
+
 #ifdef AF_INET
 # include <netdb.h>
 # if defined(LINUX) && defined(AF_INET6)
@@ -326,10 +364,6 @@
 # endif
 #endif
 
-#ifdef AF_UNIX
-# include <sys/un.h>
-#endif
-
 #ifdef AF_APPLETALK
 # ifdef LINUX
 #  include <asm/types.h>
@@ -367,10 +401,52 @@
 # ifdef LINUX
 #  include <linux/ipx.h>
 # else
-#  undef AF_IPX
+#  ifdef WIN32
+#   include <wsipx.h>
+#  else
+#   undef AF_IPX
+#  endif
+# endif
+#endif
+
+#ifdef AF_NETBIOS
+# ifdef WIN32
+#  include <wsnetbs.h>
+# else
+#  undef AF_NETBIOS
+# endif
+#endif
+
+#ifdef AF_ATM
+# ifdef WIN32
+#  include <ws2atm.h>
+# else
+#  undef AF_ATM
 # endif
 #endif
 
+#ifdef AF_BAN
+# ifdef WIN32
+#  include <wsvns.h>
+# else
+#  undef AF_BAN
+# endif
+#endif
+
+#ifdef AF_VOICEVIEW
+# ifdef WIN32
+#  include <wsvv.h>
+# else
+#  undef AF_VOICEVIEW
+# endif
+#endif
+
+#undef AF_SNA     /* not yet implemented */
+#undef AF_RAW     /* not yet implemented */
+#undef AF_NETROM  /* not yet implemented */
+#undef AF_BRIDGE  /* not yet implemented */
+#undef AF_BSC     /* not yet implemented */
+
 
 /*
  * see what is leftOver
@@ -400,6 +476,18 @@
 #ifdef AF_IPX
 	struct sockaddr_ipx ipx;
 #endif
+#ifdef AF_NETBIOS
+	struct sockaddr_nb nb;
+#endif
+#ifdef AF_ATM
+	struct sockaddr_atm atm;
+#endif
+#ifdef AF_BAN
+	struct sockaddr_vns vns;
+#endif
+#ifdef AF_VOICEVIEW
+	struct sockaddr_vv vv;
+#endif
 };
 
 
@@ -4557,5 +4645,5 @@
 !Socket class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic2/Socket.st,v 1.135 1999-09-24 15:31:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/Socket.st,v 1.136 1999-09-26 13:27:11 cg Exp $'
 ! !
--- a/Socket_win32.st	Fri Sep 24 17:31:12 1999 +0200
+++ b/Socket_win32.st	Sun Sep 26 15:27:12 1999 +0200
@@ -51,11 +51,17 @@
  * which protocols can we support ?
  */
 #define WANT__AF_INET
+#define WANT__AF_IPX
+#define WANT__AF_NETBIOS
+#define WANT__AF_ATM
+#define WANT__AF_BAN
+#define WANT__AF_VOICEVIEW
 
 #ifdef __BORLANDC__
 # include <windows.h>
 #else
-# include <WINSOCK.H>
+/* # include <WINSOCK.H> /* */
+# include <WINSOCK2.H>
 #endif
 
 #ifdef __DEF_Array
@@ -157,14 +163,29 @@
 # undef AF_X25
 #endif
 
-#ifdef WANT__AF_NS      /* Xerox XNS */
-# ifdef AF_NS
-#  ifndef PF_NS
-#   define PF_NS AF_NS
+#if AF_IPX == AF_NS
+# undef WANT__AF_NS
+#else
+# ifdef WANT__AF_NS      /* Xerox XNS */
+#  ifdef AF_NS
+#   ifndef PF_NS
+#    define PF_NS AF_NS
+#   endif
 #  endif
+# else
+#  undef AF_NS
+# endif
+#endif
+
+#ifdef WANT__AF_IPX /* Novell IPX */
+# ifdef AF_IPX
+#  ifndef PF_IPX
+#   define PF_IPX AF_IPX
+#  endif
+#  include <wsipx.h>
 # endif
 #else
-# undef AF_NS
+# undef AF_IPX
 #endif
 
 #ifdef WANT__AF_SNA     /* IBM SNA */
@@ -197,11 +218,12 @@
 # undef AF_ISO
 #endif
 
-#ifdef WANT__AF_NETBIOS /* ? */
+#ifdef WANT__AF_NETBIOS /* NETBIOS */
 # ifdef AF_NETBIOS
 #  ifndef PF_NETBIOS
 #   define PF_NETBIOS AF_NETBIOS
 #  endif
+#  include <wsnetbs.h>
 # endif
 #else
 # undef AF_NETBIOS
@@ -217,16 +239,6 @@
 # undef AF_CCITT
 #endif
 
-#ifdef WANT__AF_IPX /* Novell IPX */
-# ifdef AF_IPX
-#  ifndef PF_IPX
-#   define PF_IPX AF_IPX
-#  endif
-# endif
-#else
-# undef AF_IPX
-#endif
-
 #ifdef WANT__AF_AX25 /* Amateur radio ax25 */
 # ifdef AF_AX25
 #  ifndef PF_AX25
@@ -267,6 +279,83 @@
 # undef AF_BSC
 #endif
 
+#ifdef WANT__AF_ATM /* ATM Services */
+# ifdef AF_ATM
+#  ifndef PF_ATM
+#   define PF_ATM AF_ATM
+#  endif
+#  include <ws2atm.h>
+# endif
+#else
+# undef AF_ATM
+#endif
+
+#ifdef WANT__AF_BAN     /* BAN / VINES IP Services */
+# ifdef AF_BAN
+#  ifndef PF_BAN
+#   define PF_BAN AF_BAN
+#  endif
+#  include <wsvns.h>
+#  define AF_VNS        AF_BAN
+# endif
+#else
+# undef AF_BAN
+#endif
+
+#ifdef WANT__AF_VOICEVIEW /* VoiceView Services W95 only */
+# ifdef AF_VOICEVIEW
+#  ifndef PF_VOICEVIEW
+#   define PF_VOICEVIEW AF_VOICEVIEW
+#  endif
+#  include <wsvv.h>
+# endif
+#else
+# undef AF_VOICEVIEW
+#endif
+
+/*
+ * see what is leftOver
+ */
+union sockaddr_u {
+#ifdef AF_UNIX
+	struct sockaddr_un un;
+#endif
+#ifdef AF_INET
+	struct sockaddr_in in;
+#endif
+#ifdef AF_INET6
+	struct sockaddr_in6 in6;
+#endif
+#ifdef AF_APPLETALK
+	struct sockaddr_at at;
+#endif
+#ifdef AF_DECNET
+	struct sockaddr_dn dn;
+#endif
+#ifdef AF_X25
+	struct sockaddr_x25 x25;
+#endif
+#ifdef AF_AX25
+	struct sockaddr_ax25 ax25;
+#endif
+#ifdef AF_IPX
+	struct sockaddr_ipx ipx;
+#endif
+#ifdef AF_NETBIOS
+	struct sockaddr_nb nb;
+#endif
+#ifdef AF_ATM
+	struct sockaddr_atm atm;
+#endif
+#ifdef AF_BAN
+	struct sockaddr_vns vns;
+#endif
+#ifdef AF_VOICEVIEW
+	struct sockaddr_vv vv;
+#endif
+};
+
+
 /*
  * on some systems errno is a macro ... check for it here
  */
@@ -1450,7 +1539,7 @@
     hasIt ifTrue:[list add:#decnet].
 
 %{
-#ifdef AF_NS
+#if defined(AF_NS) && !defined(AF_IPX) || (AF_IPX != AD_NS)
     hasIt = true;
 #else
     hasIt = false;
@@ -1548,6 +1637,33 @@
 %}.
     hasIt ifTrue:[list add:#bsc].
 
+%{
+#ifdef AF_ATM
+    hasIt = true;
+#else
+    hasIt = false;
+#endif
+%}.
+    hasIt ifTrue:[list add:#atm].
+
+%{
+#ifdef AF_BAN
+    hasIt = true;
+#else
+    hasIt = false;
+#endif
+%}.
+    hasIt ifTrue:[list add:#ban].
+
+%{
+#ifdef AF_VOICEVIEW
+    hasIt = true;
+#else
+    hasIt = false;
+#endif
+%}.
+    hasIt ifTrue:[list add:#voiceview].
+
 
     ^ list
 
@@ -1667,20 +1783,7 @@
     OBJ fp = __INST(filePointer);
     int nInstVars, nInstBytes, objSize;
     int sock;
-    union {
-# ifdef AF_INET
-	struct sockaddr_in in;
-# endif
-# ifdef AF_INET6
-	struct sockaddr_in6 in6;
-# endif
-# ifdef AF_UNIX
-	struct sockaddr_un un;
-# endif
-# ifdef AF_APPLETALK
-	struct sockaddr_at at;
-# endif
-    } sa;
+    union sockaddr_u sa;
     int alen;
     int n;
     char *cp;
@@ -1772,8 +1875,8 @@
 		if (myDomain == @symbol(x25)) {
 		}
 # endif
-# ifdef AF_NS
-		if (myDomain == @symbol(ns)) {
+# if defined(AF_NS) && !defined(AF_IPX) || (AF_IPX != AD_NS)
+		if ((myDomain == @symbol(ns)) || (myDomain == @symbol(xns))) {
 		}
 # endif
 # ifdef AF_APPLETALK
@@ -1784,10 +1887,6 @@
 		if (myDomain == @symbol(sna)) {
 		}
 # endif
-# ifdef AF_NS
-		if (myDomain == @symbol(xns)) {
-		}
-# endif
 # ifdef AF_RAW
 		if (myDomain == @symbol(raw)) {
 		}
@@ -1816,6 +1915,18 @@
 		if (myDomain == @symbol(bsc)) {
 		}
 # endif
+# ifdef AF_ATM
+		if (myDomain == @symbol(atm)) {
+		}
+# endif
+# ifdef AF_BAN
+		if (myDomain == @symbol(ban)) {
+		}
+# endif
+# ifdef AF_VOICEVIEW
+		if (myDomain == @symbol(voiceview)) {
+		}
+# endif
 # if defined(AF_CCITT) && (AF_CCITT != AF_X25)
 		if (myDomain == @symbol(ccitt)) {
 		}
@@ -1898,20 +2009,7 @@
     OBJ fp = __INST(filePointer);
     int nInstVars, nInstBytes, objSize;
     int sock;
-    union {
-# ifdef AF_INET
-	struct sockaddr_in in;
-# endif
-# ifdef AF_INET6
-	struct sockaddr_in6 in6;
-# endif
-# ifdef AF_UNIX
-	struct sockaddr_un un;
-# endif
-# ifdef AF_APPLETALK
-	struct sockaddr_at at;
-# endif
-    } sa;
+    union sockaddr_u sa;
     struct sockaddr *saPtr = (struct sockaddr *)&sa;
     int alen = sizeof(sa);
     int n;
@@ -2141,20 +2239,7 @@
     OBJ t = __INST(filePointer);
     OBJ myDomain;
     int sock;
-    union {
-# ifdef AF_INET
-	struct sockaddr_in in;
-# endif
-# ifdef AF_INET6
-	struct sockaddr_in6 in6;
-# endif
-# ifdef AF_UNIX
-	struct sockaddr_un un;
-# endif
-# ifdef AF_APPLETALK
-	struct sockaddr_at at;
-# endif
-    } sa;
+    union sockaddr_u sa;
     int sockaddr_size;
     int ret;
     int on = 1;
@@ -2415,8 +2500,8 @@
     if (myDomain == @symbol(x25)) {
     }
 # endif
-# ifdef AF_NS
-    if (myDomain == @symbol(ns)) {
+# if defined(AF_NS) && !defined(AF_IPX) || (AF_IPX != AD_NS)
+    if ((myDomain == @symbol(ns)) || myDomain == @symbol(xns)) {
     }
 # endif
 # ifdef AF_DECnet
@@ -2427,10 +2512,6 @@
     if (myDomain == @symbol(sna)) {
     }
 # endif
-# ifdef AF_NS
-    if (myDomain == @symbol(xns)) {
-    }
-# endif
 # ifdef AF_RAW
     if (myDomain == @symbol(raw)) {
     }
@@ -2455,6 +2536,18 @@
     if (myDomain == @symbol(bsc)) {
     }
 # endif
+# ifdef AF_ATM
+    if (myDomain == @symbol(atm)) {
+    }
+# endif
+# ifdef AF_BAN
+    if (myDomain == @symbol(ban)) {
+    }
+# endif
+# ifdef AF_VOICEVIEW
+    if (myDomain == @symbol(voiceview)) {
+    }
+# endif
 # if defined(AF_CCITT) && (AF_CCITT != AF_X25)
     if (myDomain == @symbol(ccitt)) {
     }
@@ -2595,26 +2688,14 @@
     FILE *fp;
     int flags;
     int sock, newSock;
-    union {
-# ifdef AF_INET
-	struct sockaddr_in in;
-# endif
-# ifdef AF_INET6
-	struct sockaddr_in6 in6;
-# endif
-# ifdef AF_UNIX
-	struct sockaddr_un un;
-# endif
-# ifdef AF_APPLETALK
-	struct sockaddr_at at;
-# endif
-    } sa;
+    union sockaddr_u sa;
     int alen, alen0;
     struct hostent *he ;
     char dotted[20] ;
     struct sockaddr *saPtr = (struct sockaddr *)&sa;
     int *alenPtr = &alen;
     int zero = 0;
+    int one = 1;
 
 # ifdef AF_INET
     if (__INST(domain) == @symbol(inet)) {
@@ -2644,8 +2725,8 @@
     if (__INST(domain) == @symbol(x25)) {
     }
 # endif
-# ifdef AF_NS
-    if (__INST(domain) == @symbol(ns)) {
+# if defined(AF_NS) && !defined(AF_IPX) || (AF_IPX != AD_NS)
+    if ((__INST(domain) == @symbol(ns)) || (__INST(domain) == @symbol(xns))) {
     }
 # endif
 # ifdef AF_DECnet
@@ -2656,10 +2737,6 @@
     if (__INST(domain) == @symbol(sna)) {
     }
 # endif
-# ifdef AF_NS
-    if (__INST(domain) == @symbol(xns)) {
-    }
-# endif
 # ifdef AF_RAW
     if (__INST(domain) == @symbol(raw)) {
     }
@@ -2684,6 +2761,18 @@
     if (__INST(domain) == @symbol(bsc)) {
     }
 # endif
+# ifdef AF_ATM
+    if (__INST(domain) == @symbol(atm)) {
+    }
+# endif
+# ifdef AF_BAN
+    if (__INST(domain) == @symbol(ban)) {
+    }
+# endif
+# ifdef AF_VOICEVIEW
+    if (__INST(domain) == @symbol(voiceview)) {
+    }
+# endif
 # if defined(AF_CCITT) && (AF_CCITT != AF_X25)
     if (__INST(domain) == @symbol(ccitt)) {
     }
@@ -2691,7 +2780,8 @@
 
     sock = _get_osfhandle(_intVal(serverSocketFd));
 
-    flags = ioctlsocket(sock, FIONBIO, &zero);
+    /* flags = ioctlsocket(sock, FIONBIO, &zero); */
+    flags = ioctlsocket(sock, FIONBIO, &one);
 # if 0
 #  if defined(O_NDELAY) && defined(SET_NDELAY)
     flags = ioctl(sock, F_GETFL, 0);
@@ -2810,8 +2900,8 @@
     if (__INST(domain) == @symbol(x25)) {
     }
 # endif
-# ifdef AF_NS
-    if (__INST(domain) == @symbol(ns)) {
+# if defined(AF_NS) && !defined(AF_IPX) || (AF_IPX != AD_NS)
+    if ((__INST(domain) == @symbol(ns)) || (__INST(domain) == @symbol(xns))) {
     }
 # endif
 # ifdef AF_DECnet
@@ -2822,10 +2912,6 @@
     if (__INST(domain) == @symbol(sna)) {
     }
 # endif
-# ifdef AF_NS
-    if (__INST(domain) == @symbol(xns)) {
-    }
-# endif
 # ifdef AF_RAW
     if (__INST(domain) == @symbol(raw)) {
     }
@@ -2850,6 +2936,18 @@
     if (__INST(domain) == @symbol(bsc)) {
     }
 # endif
+# ifdef AF_ATM
+    if (__INST(domain) == @symbol(atm)) {
+    }
+# endif
+# ifdef AF_BAN
+    if (__INST(domain) == @symbol(ban)) {
+    }
+# endif
+# ifdef AF_VOICEVIEW
+    if (__INST(domain) == @symbol(voiceview)) {
+    }
+# endif
 # if defined(AF_CCITT) && (AF_CCITT != AF_X25)
     if (__INST(domain) == @symbol(ccitt)) {
     }
@@ -2954,20 +3052,7 @@
 #ifndef NO_SOCKET
     OBJ t = __INST(filePointer);
     OBJ myDomain;
-    union {
-# ifdef AF_INET
-	struct sockaddr_in in ;
-# endif
-# ifdef AF_INET6
-	struct sockaddr_in6 in6;
-# endif
-# ifdef AF_UNIX
-	struct sockaddr_un un;
-# endif
-# ifdef AF_APPLETALK
-	struct sockaddr_at at;
-# endif
-    } sa;
+    union sockaddr_u sa;
     struct hostent *hp ;
     int a, sock ;
     long addr;
@@ -3183,18 +3268,14 @@
     if (myDomain == @symbol(x25)) {
     }
 # endif
-# ifdef AF_NS
-    if (myDomain == @symbol(ns)) {
+# if defined(AF_NS) && !defined(AF_IPX) || (AF_IPX != AD_NS)
+    if ((myDomain == @symbol(ns)) || (myDomain == @symbol(xns))) {
     }
 # endif
 # ifdef AF_DECnet
     if (myDomain == @symbol(decnet)) {
     }
 # endif
-# ifdef AF_NS 
-    if (myDomain == @symbol(xns)) {
-    }
-# endif
 # ifdef AF_SNA
     if (myDomain == @symbol(sna)) {
     }
@@ -3223,6 +3304,18 @@
     if (myDomain == @symbol(bsc)) {
     }
 # endif
+# ifdef AF_ATM
+    if (myDomain == @symbol(atm)) {
+    }
+# endif
+# ifdef AF_BAN
+    if (myDomain == @symbol(ban)) {
+    }
+# endif
+# ifdef AF_VOICEVIEW
+    if (myDomain == @symbol(voiceview)) {
+    }
+# endif
 # if defined(AF_CCITT) && (AF_CCITT != AF_X25)
     if (myDomain == @symbol(ccitt)) {
     }
@@ -3605,8 +3698,8 @@
 	dom = AF_X25;
     } else
 # endif
-# ifdef AF_NS
-    if (domainArg == @symbol(xns)) {
+# if defined(AF_NS) && !defined(AF_IPX) || (AF_IPX != AD_NS)
+    if ((domainArg == @symbol(ns)) || (domainArg == @symbol(xns))) {
 	dom = AF_NS;
     } else
 # endif
@@ -3645,6 +3738,21 @@
 	dom = AF_BSC;
     }
 # endif
+# ifdef AF_ATM
+    if (domainArg == @symbol(atm)) {
+	dom = AF_ATM;
+    }
+# endif
+# ifdef AF_BAN
+    if (domainArg == @symbol(ban)) {
+	dom = AF_BAN;
+    }
+# endif
+# ifdef AF_VOICEVIEW
+    if (domainArg == @symbol(voiceview)) {
+	dom = AF_VOICEVIEW;
+    }
+# endif
 # if defined(AF_CCITT) && (AF_CCITT != AF_X25)
     if (domainArg == @symbol(ccitt)) {
 	dom = AF_CCITT;
@@ -4258,5 +4366,5 @@
 !Socket class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic2/Attic/Socket_win32.st,v 1.8 1999-08-11 17:48:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/Attic/Socket_win32.st,v 1.9 1999-09-26 13:27:12 cg Exp $'
 ! !