SocketAddress.st
changeset 1279 13ccd72f5f5d
parent 1273 03afdf3f895e
child 1281 6df4f8f211e3
--- 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 $'
 ! !