]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/resolve/resolved-def.h
resolve-tool: provide resolvconf(8) compatibility
authorLennart Poettering <lennart@poettering.net>
Tue, 27 Feb 2018 16:48:54 +0000 (17:48 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 2 Mar 2018 14:48:46 +0000 (15:48 +0100)
commit088c136384edb1d121ed40a6d3ecf4b7abade169
tree48b70081cf10ba8630c197ec0996685e200681bb
parent6cc7e918ffe2f6a08be2b3ea221b8dbb79e41a97
resolve-tool: provide resolvconf(8) compatibility

This turns resolve-tool into a multi-call binary. When invoked as
"resolvconf" it provides minimal compatibility with the resolvconf(8)
tool of various distributions (and FreeBSD as it appears).

This new interface understands to varying degrees features of the two
major implementations of resolvconf(8): Debian's original one and
"openresolv". Specifically:

Fully supported:

        -a -d (supported by all implementations)
        -f    (introduced by openresolv)

Somewhat supported:

        -x    (introduced by openresolv, mapped to a '~.' domain entry)

Unsupported and ignored:

        -m -p (introduced by openresolv, not really necessary for us)

Unsupported and resulting in failure:
        -u    (supported by all other implementations)
        -I -i -l -R -r -v -V
              (all introduced by openresolv)
        --enable-updates --disable-updates --updates-are-enabled
              (specific to Debian's implementation)

Of course, resolvconf(8) is a tool with multiple backends, in our
implementation systemd-resolved is the only backend.

Fixes: #7202
meson.build
src/resolve/meson.build
src/resolve/resolvconf-compat.c [new file with mode: 0644]
src/resolve/resolvconf-compat.h [new file with mode: 0644]
src/resolve/resolve-tool.c
src/resolve/resolve-tool.h [new file with mode: 0644]
src/resolve/resolved-def.h
src/resolve/resolved-dns-stub.h