--- a/SocketAddress.st Thu Jul 11 17:02:13 2013 +0200
+++ b/SocketAddress.st Thu Jul 11 17:02:16 2013 +0200
@@ -92,7 +92,7 @@
addressInfo := self
getAddressInfo:name
serviceName:portNrOrName
- domain:(self domainSymbol)
+ domain:self domain
type:socketTypeSymbol
protocol:nil
flags:0.
@@ -246,10 +246,20 @@
!SocketAddress class methodsFor:'queries'!
+domain
+ "Answer the domain symbol. Subclasses redefine this"
+
+ self == SocketAddress ifTrue:[
+ ^ nil
+ ] ifFalse:[
+ self subclassResponsibility
+ ]
+!
+
domainCode
"answer the numerical domain code used in socket addresses"
- ^ OperatingSystem domainCodeOf:(self domainSymbol)
+ ^ OperatingSystem domainCodeOf:self domain
!
domainCodeFromName:aNameSymbol
@@ -434,16 +444,6 @@
self error:'no more mimicri implemented yet ...'
!
-domainSymbol
- "Answer the domain symbol. Subclasses redefine this"
-
- self == SocketAddress ifTrue:[
- ^ nil
- ] ifFalse:[
- self subclassResponsibility
- ]
-!
-
getAddressInfo:hostName serviceName:serviceName domain:domainArg type:typeArg protocol:protoArg flags:flags
"answer an Array of socket addresses for serviceName on hostName
Domain, type, protocol may be nil or specify a hint for the socket
@@ -524,22 +524,22 @@
|cls|
DomainToClassMapping isNil ifTrue:[
- DomainToClassMapping := IdentityDictionary new
+ DomainToClassMapping := IdentityDictionary new.
+ "/ some are always known...
+ DomainToClassMapping
+ at:#unix put:UDSocketAddress;
+ at:#inet put:IPSocketAddress;
+ at:#inet6 put:IPv6SocketAddress;
+ at:#appletalk put:AppletalkSocketAddress;
+ at:#decnet put:DecNetSocketAddress.
].
cls := DomainToClassMapping at:code ifAbsent:nil.
cls notNil ifTrue:[^ cls].
code notNil ifTrue:[
- "/ some are always known...
- DomainToClassMapping at:#unix put:UDSocketAddress.
- DomainToClassMapping at:#inet put:IPSocketAddress.
- DomainToClassMapping at:#inet6 put:IPv6SocketAddress.
- DomainToClassMapping at:#appletalk put:AppletalkSocketAddress.
- DomainToClassMapping at:#decnet put:DecNetSocketAddress.
-
self allSubclassesDo:[:aSubClass|
(aSubClass domainCode == code
- or:[aSubClass domainSymbol == code
+ or:[aSubClass domain == code
or:[aSubClass obsoleteDomainSymbol == code
or:[aSubClass vwDomainSymbol == code]]])
ifTrue:[
@@ -579,7 +579,7 @@
"answer the OS specific size of a socket address.
Returns nil, if the domain is not supported or invalid."
- ^ OperatingSystem socketAddressSizeOfDomain:(self domainSymbol)
+ ^ OperatingSystem socketAddressSizeOfDomain:self domain
"
SocketAddress socketAddressSize
@@ -710,6 +710,12 @@
^ self subclassResponsibility
!
+domain
+ "anwer the domain symbol used to creat a socket"
+
+ ^ self class domain
+!
+
hostName
^ (self class getNameInfo:self wantHostName:true
wantServiceName:false datagram:false flags:0) first
@@ -795,15 +801,19 @@
Subclasses may redefine this to check the local configuration, too."
^ self isLocal
+!
+
+isSocketAddress
+ ^ true
! !
!SocketAddress class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic2/SocketAddress.st,v 1.39 2013-07-11 11:38:00 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic2/SocketAddress.st,v 1.40 2013-07-11 15:02:16 stefan Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic2/SocketAddress.st,v 1.39 2013-07-11 11:38:00 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic2/SocketAddress.st,v 1.40 2013-07-11 15:02:16 stefan Exp $'
! !