[squeak-dev] IPv6 implementation code
Levente Uzonyi
leves at caesar.elte.hu
Mon Sep 18 15:22:30 UTC 2017
Unfortunately, things are a bit more complicated.
localhost may not be a name assigned to ::1. For example on my Ubuntu
14.04 it is not. However, there's ip6-localhost which resolves to ::1.
NetNameResolver class >> #localHostName returns the name of the machine
instead of 'localhost'. This is fine, but again, if there's no IPv6
address assigned to that name, it won't work as you would expect.
NetNameResolver class >> #localAddressString will only return the string
representation of the first address assigned to the machine's name.
There's NetNameResolver class >> #addressesForName: which can be more
useful, because it'll return all names. So, here's a snippet to get a
collection with the assigned IPv6 addresses' string representation:
(NetNameResolver addressesForName: NetNameResolver localHostName)
select: [ :each | each addressFamilyName == #inet6 ]
thenCollect: [ :each | each socketAddress hostNumber ].
Levente
On Mon, 18 Sep 2017, Tobias Pape wrote:
> Hi Alan
>
>
>> On 18.09.2017, at 10:19, Alan Pinch <alan.c.pinch at gmail.com> wrote:
>>
>> I am running the Ubuntu 32-bit vm and I enabledIPv6: through the preferences browser. I am able to run yet it seems it is still IPv4. I do not know enough how IPv6 should work. I get the following host addresses:
>>
>> Connection running..<cap://127.0.1.1:10012/Xrlgak8yDT0hgspNx0AyWoCdoZo=, cap://127.0.0.1:47684/FL4dilz6eq2sZDG5wKp3TFDoQEE=>
>>
>> I get the following from NetNameResolver localAddressString
>> 127.0.1.1
>
> I just checked. Bear with me here:
>
> In most imaged you will see for
>
> printIt NetNameResolver useOldNetwork. "true"
>
> If your VM and OS supports IPv6 (it should) you will see
>
> printIt NetNameResolver hasIpv6PrimSupport. "true"
>
> So you then can
>
> doIt NetNameResolver enableIPv6: true.
>
> If that worked, you will find
>
> printIt NetNameResolver useOldNetwork. " false"
>
> From now on, you will get more "interesting" network names. Look at the result of
>
> NetNameResolver localHostAddress.
> NetNameResolver localHostName.
>
> (note that those are typically NOT localhost)
> Also you should see
>
> printIt NetNameResolver addressForName: 'localhost'. "::1(localhost),0(0)"
>
> -=-=-=-=-=-=-
>
> So far so good.
>
> If you now try to, for example get some IPv6-enabled url, your should see
>
> printIt (WebClient httpGet: 'http://ipv6-test.com') status. " 'HTTP/1.1 200 OK'"
>
> But this won't probably work _unless_ you have the fixes in your image which I uploaded just 5 minutes ago (WebClient-topa.110, Network-topa.205) ;)
>
> Best regards
> -Tobias
>
>
>
>>
>> Alan
>>
>> On 09/17/2017 10:44 PM, David T. Lewis wrote:
>>> On Sun, Sep 17, 2017 at 09:46:49PM -0400, Alan Pinch wrote:
>>>> Could anyone be able to point me to working IPv6 code for squeak,
>>>> please? I would appreciate any link.
>>>>
>>>> Alan
>>>>
>>> In the preferences browser, catagory general, set the preference for
>>> "Enable IPv6 and new network support" to true.
>>>
>>> The default setting is false, largely because of some network name
>>> resolver issues on the Windows platform.
>>>
>>> I do not think that the IPv6 code is exercised much, because most
>>> people probably leave their image in the default mode. So if you are
>>> using this and find problems with it, please let us know what does
>>> not work.
>>>
>>> Dave
>>>
>>
>>
More information about the Squeak-dev
mailing list
|