On Tue, 2015-10-20 at 14:14 +1100, Craig McQueen wrote:
> The following patches are related to the captive portal code originally 
> provided by Alexandre Chataignon. The first patch is a copy of the 
> original patch, provided again as a reference. The 3 following patches 
> are improvements I made following a review of Alexandre's patch, to 
> improve the following:
> * Check that the query first question is for an A record, and only 
> send an A record if so.
> * Handle the case of a query containing additional records (don't 
> send a corrupt response).
> * For queries from a loopack IP address, don't return the captive 
> address, but do the normal DNS handling.

So this is a special case of a special case.

The general case to solve is to add local entries to ConnMan's resolver,
i.e. entries in /etc/hosts should be supported. As should the hostname
handled by systemd-hostnamed. A and AAAA records as well as the IP4.ARPA
and IP6.ARPA domains need to be added automatically.

After this comes the first special case: what, if any, should be
configured for hosts in the tethered network. The second special case is
the wildcard catch-all for the portal case specified above. This seems
to point to a wildcard entry in the file mapping all other names. I'm
not very sure how both of these cases will work out in the end.

Plan B for handling this special case is to set up unbound or similar,
start ConnMan with --nodnsproxy while adding the IP address of the
tethering interface to FallbackNameservers. The nameservers in
FallbackNameservers will be sent out via DHCP if ConnMan is not proxying
DNS requests. In this particular special case there were no uplink
connections so the DHCP server IP address is always the same - minus any
bugs of course.

Plan C is to use mDNS from Avahi, but that seems to be outside of the
original solution unless short names are always used.



connman mailing list

Reply via email to