On Tue, Aug 08, 2017 at 07:15:26PM +0000, Shashank Ram wrote:
> > Open vSwitch currently supports only IP addresses for specifying
> > OpenFlow and OVSDB remotes. It would be nice to support DNS names.
> > Open vSwitch can't afford to let DNS resolution block processing, so it
> > needs some way to resolve DNS asynchronously. I've come up with the
> > following solutions so far:
> > * Implement it ourselves using threads. Probably, this would be
> > a single worker thread that loops through calls to
> > getaddrinfo().
> > * glibc has getaddrinfo_a(), an asynchronous version of
> > getaddrinfo(). *BSD and Windows do not have this function, so
> > we would still need to implement it ourselves (probably using
> > threads) if we adopted this approach, so it might be more work
> > than the first solution.
> > * Use an external asynchronous DNS library. GNU adns looks like
> > a good choice
> x------------- cut ----------------x
> > It has a port to Windows but I don't know whether it's
> > up-to-date.
> Windows has its own APIs for DNS name resolution:
> DnsQueryEx() which is asynchronous:
> DnsQuery() which is synchronous:
> So we could use either of those.
At first glance DnsQueryEx looks suitable for our purposes. So that
could be used as a substitute for the adns library on Windows, if we
adopt the third option.
dev mailing list