class: IPv6SocketAddress
authorStefan Vogel <sv@exept.de>
Thu, 26 Feb 2015 11:01:22 +0100
changeset 3509 24cf2cef907c
parent 3508 b1824372124b
child 3510 51b43eca349f
class: IPv6SocketAddress changed: #hostAddressFromString: allow [] around ipv6 addresses
IPv6SocketAddress.st
--- a/IPv6SocketAddress.st	Thu Feb 26 11:00:31 2015 +0100
+++ b/IPv6SocketAddress.st	Thu Feb 26 11:01:22 2015 +0100
@@ -11,6 +11,8 @@
 "
 "{ Package: 'stx:libbasic2' }"
 
+"{ NameSpace: Smalltalk }"
+
 IPSocketAddress variableByteSubclass:#IPv6SocketAddress
 	instanceVariableNames:''
 	classVariableNames:''
@@ -93,7 +95,13 @@
         ^ NameLookupError raiseRequestWith:aString
             errorString:' - bad address string'.
     ].
-
+    "allow adresses formated like: '[2001:4dd0:ffa3::1]'"
+    components first first = $[ ifTrue:[
+        components at:1 put:(components first copyFrom:2).
+        components last last = $] ifTrue:[
+            components at:components size put:(components last copyButLast:1).
+        ].
+    ].
     (components last occurrencesOf:$.) == 3 ifTrue:[
         "IPV4 address embedded"
         bytes := IPSocketAddress hostAddressFromString:components removeLast.
@@ -144,6 +152,7 @@
         IPv6SocketAddress hostAddressFromString:'a:b:c:d:e:f:7:8'
         IPv6SocketAddress hostAddressFromString:'1::2:3:4'
         IPv6SocketAddress hostAddressFromString:'1:2:3::4'
+        IPv6SocketAddress hostAddressFromString:'[1:2:3::4]'
         IPv6SocketAddress hostAddressFromString:'::1.2.3.4'
     "
 ! !
@@ -364,10 +373,10 @@
 !IPv6SocketAddress class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic2/IPv6SocketAddress.st,v 1.18 2013-07-16 07:34:26 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/IPv6SocketAddress.st,v 1.19 2015-02-26 10:01:22 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic2/IPv6SocketAddress.st,v 1.18 2013-07-16 07:34:26 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/IPv6SocketAddress.st,v 1.19 2015-02-26 10:01:22 stefan Exp $'
 ! !