]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/resolve/resolved-dns-question.c
resolved: add ResolveService() bus call for resolving SRV and DNS-SD services 2007/head
authorLennart Poettering <lennart@poettering.net>
Mon, 23 Nov 2015 20:25:40 +0000 (21:25 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 23 Nov 2015 20:31:29 +0000 (21:31 +0100)
commit45ec7efb6c2560c80dfa752bc9d3733749dc52cb
tree06a8eb4a76bc956f2b210f5c208ae51c7a9efa59
parenta564ca2fd113b2876e677beab60b38d50591e246
resolved: add ResolveService() bus call for resolving SRV and DNS-SD services

This also adds client-side support for this to systemd-resolve-host.

Note that the ResolveService() API can deal both with DNS-SD service
(consisting of service name, type and domain), as well as classic SRV
services (consisting just of a type and a domain), all exposed in the
same call.

This patch also reworks CNAME handling in order to reuse it between
hostname, RR and service lookups.

In contrast to Avahi and Bonjour, this new API will actually reolve the
A/AAAA RRs the SRV RRs point to in one go (unless this is explicitly
disabled). This normally comes for free, as these RRs are sent along
the SRV responses anyway, hence let's make use of that. This makes the
API considerably easier to use, as a single ResolveService() invocation
will return all necessary data to pick a server and connect() to it.

Note that this only implements the DNS-SD resolving step, it does not
implement DNS-SD browsing, as that makes sense primarily on mDNS, due to
its continuous nature.
src/resolve-host/resolve-host.c
src/resolve/resolved-bus.c
src/resolve/resolved-def.h
src/resolve/resolved-dns-answer.h
src/resolve/resolved-dns-query.c
src/resolve/resolved-dns-query.h
src/resolve/resolved-dns-question.c
src/resolve/resolved-dns-question.h