>From e2498d102ed8f3db3837769a977dc144767739ec Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sat, 12 Jun 2010 12:07:07 +0800 Subject: [PATCH 3/3] 2010-06-12 Holger Hans Peter Freyther * Sockets.st: Make DatagramSocket local: string port: int work. Resolve the ipAddress to localAddr early on, use the localAddr instead of ipAddress to determine the addressClass and afterwards fallback to localhost in case localAddr was nil. --- packages/sockets/ChangeLog | 7 +++++++ packages/sockets/Sockets.st | 9 ++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/sockets/ChangeLog b/packages/sockets/ChangeLog index ba4dd79..0637a8e 100644 --- a/packages/sockets/ChangeLog +++ b/packages/sockets/ChangeLog @@ -1,5 +1,12 @@ 2010-06-12 Holger Hans Peter Freyther + * Sockets.st: Make DatagramSocket local: string port: int + work. Resolve the ipAddress to localAddr early on, use the + localAddr instead of ipAddress to determine the addressClass + and afterwards fallback to localhost in case localAddr was nil. + +2010-06-12 Holger Hans Peter Freyther + * Sockets.st: Add AbstractSocket class>>#addressFromString to parse a string into a SocketAddress and use it inside the ServerSocket and DatagramSocket class. diff --git a/packages/sockets/Sockets.st b/packages/sockets/Sockets.st index 471f528..9dc892b 100644 --- a/packages/sockets/Sockets.st +++ b/packages/sockets/Sockets.st @@ -654,15 +654,14 @@ but it is done for cleanliness and symmetry.'> | localAddr remoteAddr addressClass | remoteAddr := self addressFromString: ipAddressOrString. + localAddr := self addressFromString: ipAddress. addressClass := remoteAddr isNil ifTrue: [self defaultAddressClass] ifFalse: [remoteAddr class]. - addressClass := ipAddress isNil + addressClass := localAddr isNil ifTrue: [addressClass] - ifFalse: [ipAddress class]. - localAddr := ipAddress isNil - ifTrue: [addressClass anyLocalAddress] - ifFalse: [ipAddress]. + ifFalse: [localAddr class]. + localAddr ifNil: [localAddr := addressClass anyLocalAddress]. ^(addressClass newSocket: self) remote: remoteAddr port: remotePort -- 1.7.0.1