Commit graph

99 commits

Author SHA1 Message Date
Lennart Poettering 5cb36f41f0 resolved: read the system /etc/resolv.conf unless we wrote it ourselves
This way we integrate nicely with foreign network management stacks,
such as NM.
2014-08-01 18:10:01 +02:00
Lennart Poettering 39d8db043b resolved: rename resolved.h to resolved-manager.h
After all it pretty much exlcusively containers definitions about the
"Manager" object, hence let's call this the most obvious way.
2014-08-01 16:14:59 +02:00
Lennart Poettering 4e945a6f79 resolved: beef up DNS server configuration logic
We now maintain two lists of DNS servers: system servers and fallback
servers.

system servers are used in combination with any per-link servers.

fallback servers are only used if there are no system servers or
per-link servers configured.

The system server list is supposed to be populated from a foreign tool's
/etc/resolv.conf (not implemented yet).

Also adds a configuration switch for LLMNR, that allows configuring
whether LLMNR shall be used simply for resolving or also for responding.
2014-08-01 16:06:39 +02:00
Lennart Poettering 95dd6257a6 resolved: don't bother caching negative RRs when the SOA TTL is 0 anyway 2014-08-01 00:58:13 +02:00
Lennart Poettering 9a015429b3 resolved: use CLOCK_BOOTTIME instead of CLOCK_MONOTONIC when aging caches and timeing out transactions
That way the cache doens't get confused when the system is suspended.
2014-08-01 00:58:12 +02:00
Lennart Poettering 7da40fc108 resolved: fix negative caching of IDNA domains 2014-08-01 00:58:12 +02:00
Lennart Poettering bdf10b5b4d resolved: handle IDNA domains
Make sure we format UTF-8 labels as IDNA when writing them to DNS
packets, and as native UTF-8 when writing them to mDNS or LLMNR packets.

When comparing or processing labels always consider native UTF-8 and
IDNA formats equivalent.
2014-08-01 00:58:12 +02:00
Zbigniew Jędrzejewski-Szmek afbc4f267b resolved: fix serialization of LOC records, check correctness 2014-07-31 17:42:14 -04:00
Lennart Poettering eb60f9cd4e hostnamed: watch system hostname changes and update LLMNR RRs accordingly 2014-07-31 19:54:43 +02:00
Lennart Poettering 8581858257 resolved: fix deserialization of UTF8 host names 2014-07-31 19:54:24 +02:00
Lennart Poettering 7b9f7afcc0 resolved: accept UTF-8 hostnames from bus clients 2014-07-31 19:53:59 +02:00
Lennart Poettering 07bed172ed resolved: various fixes regarding encoding of UTF8 characters in DNS RRs 2014-07-31 19:51:11 +02:00
Lennart Poettering fd0b4602f6 resolved: properly compare RRs we cannot parse 2014-07-31 18:41:54 +02:00
Lennart Poettering 42cc2eebb0 resolved: properly process SSHFP RRs 2014-07-31 18:41:41 +02:00
Lennart Poettering 9c92ce6d67 resolved: properly process SRV records 2014-07-31 18:23:34 +02:00
Lennart Poettering c0eb11cfd0 resolved: provide properly named way to access SPF data in RRs 2014-07-31 18:23:34 +02:00
Lennart Poettering 6a6fc3df74 resolved: make sure we always initialize r when parsing TXT records 2014-07-31 18:23:34 +02:00
Lennart Poettering 8ac4e9e1e5 resolved: properly process DNAME RRs 2014-07-31 18:02:24 +02:00
Lennart Poettering ec2c5e4398 resolved: implement LLMNR uniqueness verification 2014-07-31 17:47:19 +02:00
Zbigniew Jędrzejewski-Szmek cbd67a86fb resolved: fix multi-record packets with TXTs 2014-07-31 10:45:24 -04:00
Zbigniew Jędrzejewski-Szmek 0dae31d468 resolved: LOC records
LOC records have a version field. So far only version 0 has been
published, but if a record with a different version was encountered,
our only recourse is to treat it as an unknown type. This is
implemented with the 'unparseable' flag, which causes the
serialization/deserialization and printing function to cause the
record as a blob. The flag can be used if other packet types cannot be
parsed for whatever reason.
2014-07-31 08:56:03 -04:00
Zbigniew Jędrzejewski-Szmek 9de3e32940 resolved: SPF records 2014-07-31 08:56:03 -04:00
Zbigniew Jędrzejewski-Szmek 2e276efc7b resolved: TXT records 2014-07-31 08:56:03 -04:00
Zbigniew Jędrzejewski-Szmek 946c70944e resolved: MX records 2014-07-31 08:56:03 -04:00
Zbigniew Jędrzejewski-Szmek b93312f596 resolve-host: list types and classes
Also update systemctl to similar style.
2014-07-31 08:56:03 -04:00
Zbigniew Jędrzejewski-Szmek b2fadec604 Properly report invalid quoted strings
$ systemd-analyze verify trailing-g.service
[./trailing-g.service:2] Trailing garbage, ignoring.
trailing-g.service lacks ExecStart setting. Refusing.
Error: org.freedesktop.systemd1.LoadFailed: Unit trailing-g.service failed to load: Invalid argument.
Failed to create trailing-g.service/start: Invalid argument
2014-07-31 08:56:03 -04:00
Zbigniew Jędrzejewski-Szmek a2a5291b3f Reject invalid quoted strings
String which ended in an unfinished quote were accepted, potentially
with bad memory accesses.

Reject anything which ends in a unfished quote, or contains
non-whitespace characters right after the closing quote.

_FOREACH_WORD now returns the invalid character in *state. But this return
value is not checked anywhere yet.

Also, make 'word' and 'state' variables const pointers, and rename 'w'
to 'word' in various places. Things are easier to read if the same name
is used consistently.

mbiebl_> am I correct that something like this doesn't work
mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-passwd "Unlock EncFS"'
mbiebl_> systemd seems to strip of the quotes
mbiebl_> systemctl status shows
mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-password Unlock EncFS  $RootDir $MountPoint
mbiebl_> which is pretty weird
2014-07-31 04:00:31 -04:00
Lennart Poettering e4501ed4e6 resolved: when we got a successful DNS reply, then only wait for other transactions on the same scope, nowhere else 2014-07-30 20:39:52 +02:00
Lennart Poettering 57f5ad3149 resolved: properly set TTL in SOA records 2014-07-30 19:34:50 +02:00
Lennart Poettering fcf57f9cf7 resolved: don't attempt to order empty answer array 2014-07-30 19:24:13 +02:00
Lennart Poettering 351e6342d5 resolved: properly return start index when appending RR to packet 2014-07-30 19:24:13 +02:00
Lennart Poettering 2d4c5cbc0e resolved: add API for resolving specific RRs 2014-07-30 19:24:13 +02:00
Lennart Poettering 3339cb71d4 resolved: properly pass empty answers back to bus clients 2014-07-30 17:53:19 +02:00
Lennart Poettering 8bf52d3d17 resolved: include SOA records in LLMNR replies for non-existing RRs to allow negative caching 2014-07-30 16:47:21 +02:00
Lennart Poettering 34b9656f0b resolved: fix cname handling 2014-07-30 14:46:40 +02:00
Lennart Poettering 0ec7c46eed resolved: properly handle adding empty replies to cache 2014-07-30 14:21:18 +02:00
Lennart Poettering ddf163393b resolved: never cache ANY lookups 2014-07-30 14:05:48 +02:00
Lennart Poettering d532366133 resolved: respond to ANY queries from our zone 2014-07-30 02:06:09 +02:00
Lennart Poettering 0e2bcd6a17 resolved: don't accept messages with ANY RRs 2014-07-30 02:05:23 +02:00
Lennart Poettering 1d3b690fbd resolved: don't allow adding of ANY class/type RRs to local zones 2014-07-30 02:04:07 +02:00
Lennart Poettering 8bea3d6f88 resolved: don't do llmnr on interfaces lacking multicasting 2014-07-30 01:48:22 +02:00
Lennart Poettering 0c903ae7db resolved: follow more closely the recommend timeouts and TTLs from the LLMNR spec 2014-07-30 01:47:48 +02:00
Lennart Poettering d2f47562d5 resolved: only cache answer RRs, never additional or authoritative RRs of responses 2014-07-30 01:47:10 +02:00
Lennart Poettering 0f05c38759 resolved: never attempt negative caching of SOA records 2014-07-30 01:45:52 +02:00
Lennart Poettering af93291cc4 resolved: when answer A or AAAA questions, order responses by whether addresses are link-local or not 2014-07-30 00:48:59 +02:00
Lennart Poettering 2442b93d15 resolved: the llmnr destination address check applies to queries, not to responses 2014-07-29 23:53:08 +02:00
Lennart Poettering a2a416f768 resolved: add more debug logging 2014-07-29 23:53:08 +02:00
Lennart Poettering bf3f1271e2 resolved: set LLMNR TCP and UDP TTLs to the values suggested by the RFC 2014-07-29 23:53:08 +02:00
Lennart Poettering 2f82f5eae4 resolved: we don't need the DNS server "source" concept anymore, remove it 2014-07-29 23:53:08 +02:00
Lennart Poettering ea917db9e6 resolved: discard more invalid llmnr messages 2014-07-29 20:57:58 +02:00