summaryrefslogtreecommitdiff
path: root/src/resolve/resolved-dns-query.c
AgeCommit message (Collapse)Author
2015-08-24resolved: remove duplicate handling of "no servers" query resultLennart Poettering
So far we handled immediate "no server" query results differently from "no server" results we ran into during operation: the former would cause the dns_query_go() call to fail with ESRCH, the later would result in the query completion callback to be called. Remove the duplicate codepaths, by always going through the completion callback. This allows us to remove quite a number of lines for handling the ESRCH. This commit should not alter behaviour at all.
2015-08-21resolved: always split up questions into per-RR transactionsLennart Poettering
We do so for Unicast DNS and LLMNR anyway, let's also do this for mDNS, and simplify things.
2015-08-21resolved: only maintain one question RR key per transactionLennart Poettering
Let's simplify things and only maintain a single RR key per transaction object, instead of a full DnsQuestion. Unicast DNS and LLMNR don't support multiple questions per packet anway, and Multicast DNS suggests coalescing questions beyond a single dns query, across the whole system.
2015-08-21resolved: rework synthesizing logicLennart Poettering
With this change we'll now also generate synthesized RRs for the local LLMNR hostname (first label of system hostname), the local mDNS hostname (first label of system hostname suffixed with .local), the "gateway" hostname and all the reverse PTRs. This hence takes over part of what nss-myhostname already implemented. Local hostnames resolve to the set of local IP addresses. Since the addresses are possibly on different interfaces it is necessary to change the internal DnsAnswer object to track per-RR interface indexes, and to change the bus API to always return the interface per-address rather than per-reply. This change also patches the existing clients for resolved accordingly (nss-resolve + systemd-resolve-host). This also changes the routing logic for queries slightly: we now ensure that the local hostname is never resolved via LLMNR, thus making it trustable on the local system.
2015-08-14resolved: locally synthesize replies for "localhost"Lennart Poettering
Let's make sure that clients querying resolved via the bus for A, AAAA or PTR records for "localhost" get a synthesized, local reply, so that we do not hit the network. This makes part of nss-myhostname redundant, if used in conjunction. However, given that nss-resolve shall be optional we need to keep this code in both places for now.
2015-04-29tree-wide: get rid of a few more explicit bus parametersLennart Poettering
2015-02-23remove unused includesThomas Hindoe Paaboel Andersen
This patch removes includes that are not used. The removals were found with include-what-you-use which checks if any of the symbols from a header is in use.
2014-09-15hashmap: introduce hash_ops to make struct Hashmap smallerMichal Schmidt
It is redundant to store 'hash' and 'compare' function pointers in struct Hashmap separately. The functions always comprise a pair. Store a single pointer to struct hash_ops instead. systemd keeps hundreds of hashmaps, so this saves a little bit of memory.
2014-08-14resolved: allow passing on which protocol, family and interface to look ↵Lennart Poettering
something up Also, return on which protocol/family/interface we found something.
2014-08-11resolved: destroy outstanding queries if the clients that initiated them dieLennart Poettering
2014-08-05resolved: never reuse transactions for probing that are already completed ↵Lennart Poettering
based on cached data
2014-08-01resolved: use CLOCK_BOOTTIME instead of CLOCK_MONOTONIC when aging caches ↵Lennart Poettering
and timeing out transactions That way the cache doens't get confused when the system is suspended.
2014-07-31resolved: implement LLMNR uniqueness verificationLennart Poettering
2014-07-30resolved: when we got a successful DNS reply, then only wait for other ↵Lennart Poettering
transactions on the same scope, nowhere else
2014-07-30resolved: follow more closely the recommend timeouts and TTLs from the LLMNR ↵Lennart Poettering
spec
2014-07-30resolved: only cache answer RRs, never additional or authoritative RRs of ↵Lennart Poettering
responses
2014-07-29resolved: the llmnr destination address check applies to queries, not to ↵Lennart Poettering
responses
2014-07-29resolved: add more debug loggingLennart Poettering
2014-07-29resolved: discard more invalid llmnr messagesLennart Poettering
2014-07-29resolved: when resolving an address PTR record via llmnr, make a tcp ↵Lennart Poettering
connection by default
2014-07-29resolve: add llmnr responder side for UDP and TCPLennart Poettering
Name defending is still missing.
2014-07-23resolved: most DNS servers can't handle more than one question per packet, ↵Lennart Poettering
hence let's not generate that
2014-07-23resolved: implement negative cachingLennart Poettering
2014-07-23resolved: rework logic so that we can share transactions between queries of ↵Lennart Poettering
different clients
2014-07-18resolved: add LLMNR support for looking up namesLennart Poettering
2014-07-17resolved: add DNS cacheLennart Poettering
2014-07-17resolved: enforce limit on concurrent outstanding queriesLennart Poettering
2014-07-16resolved: add CNAME lookup supportLennart Poettering
2014-07-16resolved: support for TCP DNS queriesLennart Poettering
2014-07-16resolve: add distinct bus error code for hosts that exist but lack A or AAAA ↵Lennart Poettering
records
2014-07-16resolved: add a DNS client stub resolverLennart Poettering
Let's turn resolved into a something truly useful: a fully asynchronous DNS stub resolver that subscribes to network changes. (More to come: caching, LLMNR, mDNS/DNS-SD, DNSSEC, IDN, NSS module)