--- 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 $'
! !