--- a/SocketAddress.st Tue Jul 15 10:10:16 2003 +0200
+++ b/SocketAddress.st Tue Jul 15 14:19:08 2003 +0200
@@ -19,6 +19,12 @@
category:'OS-Sockets'
!
+!SocketAddress primitiveDefinitions!
+%{
+#include "stxOSDefs.h"
+%}
+! !
+
!SocketAddress class methodsFor:'documentation'!
copyright
@@ -170,7 +176,7 @@
domainCode
"answer the numerical domain code used in socket addresses"
- ^ OperatingSystem socketAccessor domainCodeOf:(self domainSymbol)
+ ^ OperatingSystem domainCodeOf:(self domainSymbol)
!
domainCodeFromName:aNameSymbol
@@ -178,24 +184,87 @@
VW returns the internal unix codes here - however, in ST/X,
symbols are returned, which are translated later"
+ aNameSymbol isInteger ifTrue:[ ^ aNameSymbol ].
+
+ "here, all possible variants are translated to AF_* symbols,
+ which are handled by the primitives"
+
aNameSymbol == #afUnix ifTrue:[^ #'AF_UNIX'].
+ aNameSymbol == #AF_UNIX ifTrue:[^ #'AF_UNIX'].
+ aNameSymbol == #unix ifTrue:[^ #'AF_UNIX'].
+
aNameSymbol == #afInet ifTrue:[^ #'AF_INET'].
+ aNameSymbol == #'AF_INET' ifTrue:[^ #'AF_INET'].
+ aNameSymbol == #inet ifTrue:[^ #'AF_INET'].
+
aNameSymbol == #afIpV6 ifTrue:[^ #'AF_INET6'].
- aNameSymbol == #afAppletalk ifTrue:[^ #'AF_APPLETALK'].
+ aNameSymbol == #'AF_INET6' ifTrue:[^ #'AF_INET6'].
+ aNameSymbol == #inet6 ifTrue:[^ #'AF_INET6'].
+ aNameSymbol == #afInet6 ifTrue:[^ #'AF_INET6'].
+
+ aNameSymbol == #afAppletalk ifTrue:[^ #'AF_APPLETALK'].
+ aNameSymbol == #'AF_APPLETALK' ifTrue:[^ #'AF_APPLETALK'].
+ aNameSymbol == #appletalk ifTrue:[^ #'AF_APPLETALK'].
+
aNameSymbol == #afDecnet ifTrue:[^ #'AF_DECnet'].
+ aNameSymbol == #'AF_DECnet' ifTrue:[^ #'AF_DECnet'].
+ aNameSymbol == #'AF_DECNET' ifTrue:[^ #'AF_DECnet'].
+ aNameSymbol == #decnet ifTrue:[^ #'AF_DECnet'].
+ aNameSymbol == #decNet ifTrue:[^ #'AF_DECnet'].
+ aNameSymbol == #DECnet ifTrue:[^ #'AF_DECnet'].
+
aNameSymbol == #afSna ifTrue:[^ #'AF_SNA'].
+ aNameSymbol == #'AF_SNA' ifTrue:[^ #'AF_SNA'].
+ aNameSymbol == #sna ifTrue:[^ #'AF_SNA'].
+
aNameSymbol == #afNs ifTrue:[^ #'AF_NS'].
+ aNameSymbol == #'AF_NS' ifTrue:[^ #'AF_NS'].
+ aNameSymbol == #ns ifTrue:[^ #'AF_NS'].
+ aNameSymbol == #xns ifTrue:[^ #'AF_NS'].
+
aNameSymbol == #afCcitt ifTrue:[^ #'AF_CCITT'].
- aNameSymbol == #afImplink ifTrue:[^ #'AF_IMPLINK'].
+ aNameSymbol == #'AF_CCITT' ifTrue:[^ #'AF_CCITT'].
+ aNameSymbol == #ccitt ifTrue:[^ #'AF_CCITT'].
+
+ aNameSymbol == #afImplink ifTrue:[^ #'AF_IMPLINK'].
+ aNameSymbol == #'AF_IMPLINK' ifTrue:[^ #'AF_IMPLINK'].
+ aNameSymbol == #implink ifTrue:[^ #'AF_IMPLINK'].
+
aNameSymbol == #afPup ifTrue:[^ #'AF_PUP'].
- aNameSymbol == #afChaos ifTrue:[^ #'AF_CHAOS'].
+ aNameSymbol == #'AF_PUP' ifTrue:[^ #'AF_PUP'].
+ aNameSymbol == #pup ifTrue:[^ #'AF_PUP'].
+
+ aNameSymbol == #afChaos ifTrue:[^ #'AF_CHAOS'].
+ aNameSymbol == #'AF_CHAOS' ifTrue:[^ #'AF_CHAOS'].
+ aNameSymbol == #chaos ifTrue:[^ #'AF_CHAOS'].
+
aNameSymbol == #afEcma ifTrue:[^ #'AF_ECMA'].
- aNameSymbol == #afDatakit ifTrue:[^ #'AF_DATAKIT'].
- aNameSymbol == #afDli ifTrue:[^ #'AF_DLI'].
- aNameSymbol == #afLat ifTrue:[^ #'AF_LAT'].
+ aNameSymbol == #'AF_ECMA' ifTrue:[^ #'AF_ECMA'].
+ aNameSymbol == #ecma ifTrue:[^ #'AF_ECMA'].
+
+ aNameSymbol == #afDatakit ifTrue:[^ #'AF_DATAKIT'].
+ aNameSymbol == #'AF_DATAKIT' ifTrue:[^ #'AF_DATAKIT'].
+ aNameSymbol == #datakit ifTrue:[^ #'AF_DATAKIT'].
+
+ aNameSymbol == #afDli ifTrue:[^ #'AF_DLI'].
+ aNameSymbol == #'AF_DLI' ifTrue:[^ #'AF_DLI'].
+ aNameSymbol == #dli ifTrue:[^ #'AF_DLI'].
+
+ aNameSymbol == #afLat ifTrue:[^ #'AF_LAT'].
+ aNameSymbol == #'AF_LAT' ifTrue:[^ #'AF_LAT'].
+ aNameSymbol == #lat ifTrue:[^ #'AF_LAT'].
+
aNameSymbol == #afHylink ifTrue:[^ #'AF_HYLINK'].
+ aNameSymbol == #'AF_HYLINK' ifTrue:[^ #'AF_HYLINK'].
+ aNameSymbol == #hylink ifTrue:[^ #'AF_HYLINK'].
aNameSymbol == #afUnspec ifTrue:[^ #'AF_UNSPEC'].
+ aNameSymbol == #'AF_UNSPEC' ifTrue:[^ #'AF_UNSPEC'].
+ aNameSymbol == #unspec ifTrue:[^ #'AF_UNSPEC'].
+
+ aNameSymbol == #afRaw ifTrue:[^ #'AF_RAW'].
+ aNameSymbol == #'AF_RAW' ifTrue:[^ #'AF_RAW'].
+ aNameSymbol == #raw ifTrue:[^ #'AF_RAW'].
"/
"/ could someone tell me which symbols are used in ST-80's SocketAddress class ?
@@ -212,20 +281,79 @@
code == #unix ifTrue:[^ #afUnix].
code == #'AF_UNIX' ifTrue:[^ #afUnix].
+ code == #'afUnix' ifTrue:[^ #afUnix].
+
code == #inet ifTrue:[^ #afInet].
code == #'AF_INET' ifTrue:[^ #afInet].
+ code == #'afInet' ifTrue:[^ #afInet].
+
code == #inet6 ifTrue:[^ #afIpV6].
code == #'AF_INET6' ifTrue:[^ #afIpV6].
+ code == #'afIpV6' ifTrue:[^ #afIpV6].
+
code == #appletalk ifTrue:[^ #afAppletalk].
code == #'AF_APPLETALK' ifTrue:[^ #afAppletalk].
+ code == #'afAppletalk' ifTrue:[^ #afAppletalk].
+
+ code == #decnet ifTrue:[^ #afDecnet].
code == #DECnet ifTrue:[^ #afDecnet].
+ code == #decNet ifTrue:[^ #afDecnet].
code == #'AF_DECNET' ifTrue:[^ #afDecnet].
+ code == #'AF_DECnet' ifTrue:[^ #afDecnet].
+ code == #'afDecnet' ifTrue:[^ #afDecnet].
+
code == #sna ifTrue:[^ #afSna].
code == #'AF_SNA' ifTrue:[^ #afSna].
+ code == #'afSna' ifTrue:[^ #afSna].
+
code == #xns ifTrue:[^ #afNs].
+ code == #ns ifTrue:[^ #afNs].
code == #'AF_NS' ifTrue:[^ #afNs].
+ code == #'afNs' ifTrue:[^ #afNs].
+
code == #ccitt ifTrue:[^ #afCcitt].
code == #'AF_CCITT' ifTrue:[^ #afCcitt].
+ code == #'afCcitt' ifTrue:[^ #afCcitt].
+
+ code == #implink ifTrue:[^ #afImplink].
+ code == #'AF_IMPLINK' ifTrue:[^ #afImplink].
+ code == #afImplink ifTrue:[^ #afImplink].
+
+ code == #pup ifTrue:[^ #afPup].
+ code == #'AF_PUP' ifTrue:[^ #afPup].
+ code == #afPup ifTrue:[^ #afPup].
+
+ code == #chaos ifTrue:[^ #afChaos].
+ code == #'AF_CHAOS' ifTrue:[^ #afChaos].
+ code == #afChaos ifTrue:[^ #afChaos].
+
+ code == #ecma ifTrue:[^ #afEcma].
+ code == #'AF_ECMA' ifTrue:[^ #afEcma].
+ code == #afEcma ifTrue:[^ #afEcma].
+
+ code == #datakit ifTrue:[^ #afDatakit].
+ code == #'AF_DATAKIT' ifTrue:[^ #afDatakit].
+ code == #afDatakit ifTrue:[^ #afDatakit].
+
+ code == #dli ifTrue:[^ #afDli].
+ code == #'AF_DLI' ifTrue:[^ #afDli].
+ code == #afDli ifTrue:[^ #afDli].
+
+ code == #lat ifTrue:[^ #afLat].
+ code == #'AF_LAT' ifTrue:[^ #afLat].
+ code == #afLat ifTrue:[^ #afLat].
+
+ code == #hylink ifTrue:[^ #afHylink].
+ code == #'AF_HYLINK' ifTrue:[^ #afHylink].
+ code == #afHylink ifTrue:[^ #afHylink].
+
+ code == #unspec ifTrue:[^ #afUnspec].
+ code == #'AF_UNSPEC' ifTrue:[^ #afUnspec].
+ code == #afUnspec ifTrue:[^ #afUnspec].
+
+ code == #raw ifTrue:[^ #afRaw].
+ code == #'AF_RAW' ifTrue:[^ #afRaw].
+ code == #afRaw ifTrue:[^ #afRaw].
"/
"/ could someone tell me which symbols are used in ST-80's SocketAddress class ?
@@ -234,7 +362,7 @@
!
domainSymbol
- "answer the domain symbol. Subclasses redefine this"
+ "Answer the domain symbol. Subclasses redefine this"
self == SocketAddress ifTrue:[
^ nil
@@ -369,14 +497,16 @@
!
socketAddressSize
- "answer the OS specific size of a socket address"
+ "answer the OS specific size of a socket address.
+ Returns nil, if the domain is not supported or invalid."
- ^ OperatingSystem socketAccessor socketAddressSize:(self domainSymbol)
+ ^ OperatingSystem socketAddressSizeOfDomain:(self domainSymbol)
"
- UDSocketAddress socketAddressSize
+ SocketAddress socketAddressSize
+ UDSocketAddress socketAddressSize
IPSocketAddress socketAddressSize
- IPv6SocketAddress socketAddressSize
+ IPv6SocketAddress socketAddressSize
AppletalkSocketAddress socketAddressSize
DecNetSocketAddress socketAddressSize
"
@@ -486,5 +616,5 @@
!SocketAddress class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic2/SocketAddress.st,v 1.20 2003-07-14 11:10:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic2/SocketAddress.st,v 1.21 2003-07-15 12:19:08 cg Exp $'
! !