> On 28. Mar 2019, at 08:02, Sven Van Caekenberghe <s...@stfx.eu> wrote:
> 
> Hi Holger & Norbert,
> 

great. Regardless of how many versions exist. We should get one into the image 
with proper platform integration.  

I wasn't aware of your code but I assumed it is something you could write, 
hence the Paleo prefix. Now that the Paleo code is the Neo one is more funny...



> NeoSimplifiedDNSClient default addressForName: 'pharo.org'. "104.28.27.35"
> 
> One of my goals was to use it as a more reliable, non-blocking 'do we have 
> internet access' test:
> 
> NeoNetworkState default hasInternetConnection. "true"


What is internet access and how would this be used? Is this about captive 
portals? With local network policy the big anycast services might be blocked 
but the user can still reach services. Or with deployed microservices they 
might reach other but not the outside?


... snip ...


> The main problems are concurrent and asynchronous requests, as well as error 
> handling.
> 
> I would be great if we could do this well in-image. (But getting OS DNS 
> settings is hard too).
> 
> We should talk ;-)

Agreed that getting the OS DNS settings is hard but not impossible (go seems to 
get away with its implementation on unix). It seems we manage to honor platform 
settings for http proxies and I am confident we can do it for DNS as well.


I planned to solve concurrency by creating one stub resolver per request and 
having a shared cache. The internet can be a hostile place and DNS is an easy 
victim. Cache poisoning does exist and random source port, 0x20 randomization, 
random transaction ids, disrespecting PTMU ICMP messages are the few 
mitigations we have.


Let's definitely talk. I hang out in the pharo discord group. :)


holger

Reply via email to