b26fa1a2fbcfee7d03b0c8fd15ec3aa64ae70b9f |
|
10-Feb-2016 |
Daniel Mack <daniel@zonque.org> |
tree-wide: remove Emacs lines from all files
This should be handled fine now by .dir-locals.el, so need to carry that
stuff in every file. |
3a519900e18c6a36af084cdbcc468f670f4ffdb1 |
|
26-Jan-2016 |
Lennart Poettering <lennart@poettering.net> |
shared: normalize the root domain to "." rather than ""
Let's make sure the root domain is normalized to ".", rather than then empty string, so that there's actually something
to see on screen. Normally, we don't append a trailing dot to normalized domain names, but do so in the one exception
of the root domain, taking inspiration from UNIX file system paths. |
0cf40f5527501f80044c1a2612781dd552d46591 |
|
18-Jan-2016 |
Lennart Poettering <lennart@poettering.net> |
resolved add dns_name_apply_idna() to convert a domain name into its IDNA equivalent |
b9282bc12840aff500a334836226f6b8df24926d |
|
17-Jan-2016 |
Lennart Poettering <lennart@poettering.net> |
resolved: on negative NODATA replies, properly deal with empty non-terminals
empty non-terminals generally lack NSEC RRs, which means we can deduce their existance only from the fact that there
are other RRs that contain them in their suffix. Specifically, the NSEC proof for NODATA on ENTs works by sending the
NSEC whose next name is a suffix of the queried name to the client. Use this information properly. |
eb241cdbeea092d891137c018cacf919a895e6a6 |
|
13-Jan-2016 |
Lennart Poettering <lennart@poettering.net> |
shared: add new dns_name_startswith() call
dns_name_startswith() is to dns_name_endswith() as startswith() is to endswith(). |
c7feab764702e483ef84b47429387a9a54d451ff |
|
28-Dec-2015 |
Lennart Poettering <lennart@poettering.net> |
shared: relax restrictions on valid domain name characters a bit
Previously, we'd not allow control characters to be embedded in domain
names, even when escaped. Since cloudflare uses \000 however to
implement its synthethic minimally covering NSEC RRs, we should allow
them, as long as they are properly escaped. |
5651285934ade033c0662afbbee940855f6bd2fb |
|
27-Dec-2015 |
Lennart Poettering <lennart@poettering.net> |
shared: fix handling of suffix "." in dns_name_compare_func()
All our other domain name handling functions make no destinction between
domain names that end in a dot plus a NUL, or those just ending in a
NUL. Make sure dns_name_compare_func() and dns_label_unescape_suffix()
do the same. |
db5b0e92b3c23e6f360bd0f44a655b35921a6c98 |
|
26-Dec-2015 |
Lennart Poettering <lennart@poettering.net> |
resolved: tighten search for NSEC3 RRs a bit
Be stricter when searching suitable NSEC3 RRs for proof: generalize the
check we use to find suitable NSEC3 RRs, in nsec3_is_good(), and add
additional checks, such as checking whether all NSEC3 RRs use the same
parameters, have the same suffix and so on. |
e7ff0e0b391341bdc4d9c08dff1c477e1df6a682 |
|
26-Dec-2015 |
Lennart Poettering <lennart@poettering.net> |
resolved: properly implement RRSIG validation of wildcarded RRsets
Note that this is still not complete, one additional step is still
missing: when we verified that a wildcard RRset is properly signed, we
still need to do an NSEC/NSEC3 proof that no more specific RRset exists. |
3cd03457bd3546a9d54a17bc00dae2058b43081b |
|
02-Dec-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: update dns_name_to_wire_format() to optionally generate DNSSEC canonical names
We'll need this later when putting together RR serializations to
checksum. |
37ade1283745f39e3fa37aa2603809fb2daf067c |
|
30-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: change error codes when dealing with too short buffers to ENOBUFS
Some calls used ENOBUFS to indicate too-short result buffers, others
used ENOSPC. Let's unify this on ENOBUFS. |
50dee79bfbe0782a342ef864b28d7d6613c0b1fb |
|
30-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: check resulting domain name length in dns_name_to_wire_format()
Let's better be safe than sorry. |
c6cefd13eb55c8124a01e90021282f8610a05012 |
|
30-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: make sure dns_name_to_wire_format() may properly encode the root domain
The root domain consists of zero labels, and we should be able to encode
that. |
1dfbf0007af3023c2e3ae8282a0d0f229f3a89e3 |
|
30-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: don't accept overly long hostnames
Make sure dns_name_normalize(), dns_name_concat(), dns_name_is_valid()
do not accept/generate invalidly long hostnames, i.e. longer than 253
characters. |
3b37fa735224e58fcc23c737b764d13e22c2885b |
|
30-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: be more strict when encoding/decoding labels
Labels of zero length are not OK, refuse them early on. The concept of a
"zero-length label" doesn't exist, a zero-length full domain name
however does (representing the root domain). See RFC 2181, Section 11. |
422baca0f230913158078fddf884e06c8c64a316 |
|
25-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: rework dns_label_escape() to not imply memory allocation
The new dns_label_escape() call now operates on a buffer passed in,
similar to dns_label_unescape(). This should make decoding a bit faster,
and nicer. |
7e8131e9c6c150732503899a092206578fdc13de |
|
25-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: change dns_srv_type_is_valid() return value to bool
For similar reasons as dns_name_is_root() got changed in the previous
commit. |
dc477e7385e8ab29efb8fadb72ec994077a105c6 |
|
25-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: simplify dns_name_is_root() and dns_name_is_single_label()
Let's change the return value to bool. If we encounter an error while
parsing, return "false" instead of the actual parsing error, after all
the specified hostname does not qualify for what the function is
supposed to test.
Dealing with the additional error codes was always cumbersome, and
easily misused, like for example in the DHCP code.
Let's also rename the functions from dns_name_root() to
dns_name_is_root(), to indicate that this function checks something and
returns a bool. Similar for dns_name_is_signal_label(). |
58db254ade4fb2ef77de68f28c4f13814819f6a1 |
|
24-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
resolved: implement client-side DNAME resolution
Most servers apparently always implicitly convert DNAME to CNAME, but
some servers don't, hence implement this properly, as this is required
by edns0. |
0e8eedbb490b8928d4fa4e33f565a3cda5013018 |
|
23-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: add calls to join/split SRV/DNS-SD service domains
This adds dns_service_join() and dns_service_split() which may be used
to concatenate a DNS-SD service name, am SRV service type string, and a
domain name into a full resolvable DNS domain name string. If the
service name is specified as NULL, only the type and domain are
appended, to implement classic, non-DNS-SD SRV lookups.
The reverse is dns_service_split() which takes the full name, and split
it into the three components again. |
0a49b6b6dce3a756bd8c4d458a34c2d8035ae99d |
|
23-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: add code for verifying validity of DNS-SD service names and types |
54adabf727fbcf1a4f49b59362e92b79da1082f1 |
|
17-Nov-2015 |
Beniamino Galvani <bgalvani@redhat.com> |
dns-domain: add dns_name_to_wire_format()
The function converts a domain name string to the wire format
described in RFC 1035 Section 3.1. |
b5efdb8af40ea759a1ea584c1bc44ecc81dd00ce |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out allocation calls into alloc-util.[ch] |
07630cea1f3a845c09309f197ac7c4f11edd3b62 |
|
24-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split our string related calls from util.[ch] into its own file string-util.[ch]
There are more than enough calls doing string manipulations to deserve
its own files, hence do something about it.
This patch also sorts the #include blocks of all files that needed to be
updated, according to the sorting suggestions from CODING_STYLE. Since
pretty much every file needs our string manipulation functions this
effectively means that most files have sorted #include blocks now.
Also touches a few unrelated include files. |
9ca45586e67c6d061d0db7bdf5b05d30e37e368d |
|
21-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
dns-domain: add call for concatenating two domain names
This is specifically useful for appending the mDNS ".local" suffix to a
single-label hostname in the most correct way. (used in later commit) |
9436e8cae4709b50ed57f2f5858a3ffad03d5d32 |
|
29-Jul-2015 |
Lennart Poettering <lennart@poettering.net> |
resolved: never attempt to resolve loopback addresses via DNS/LLMNR/mDNS
We already refuse to resolve "localhost", hence we should also refuse
resolving "127.0.0.1" and friends. |
ae72b22c40569de7dba810073ea9da299491ef60 |
|
28-Jul-2015 |
Tom Gundersen <teg@jklm.no> |
shared: dns-name - add dns_name_between()
Given three DNS names this function indicates if the second argument lies
strictly between the first and the third according to the canonical DNS
name order. Note that the order is circular, so the last name is
considered to be before the first. |
642900d3fa479c01d29ebe8268746d06d1c63703 |
|
28-Jul-2015 |
Tom Gundersen <teg@jklm.no> |
shared: dns-name - introduce dns_label_unescape_suffix()
Intended to be called repeatedly, and returns then successive unescaped labels
from the most to the least significant (left to right).
This is slightly inefficient as it scans the string three times (two would be
sufficient): once to find the end of the string, once to find the beginning
of each label and lastly once to do the actual unescaping. The latter two
could be done in one go, but that seemed unnecessarily convoluted. |
4ad7f2761da661853dcc29d542efb4727abb1101 |
|
10-Jun-2015 |
Nick Owens <nick.owens@coreos.com> |
resolve: move dns routines into shared |