Message ID | 20201006202556.174363-2-ted.elhourani@nutanix.com |
---|---|
State | Accepted |
Commit | f00c47b8f33d28fbff5347c1c4e318ddcbdaf10a |
Headers | show |
Series | dns-resolve: Allow unbound's config file to be set through an env var. | expand |
On 10/6/20 10:25 PM, Ted Elhourani wrote: > When an unbound context is created, check whether OVS_UNBOUND_CONF has been > set. If a valid config file is supplied then use it to configure the > context. The procedure returns if the config file is invalid. If no config > file is found then the default unbound config is used. > > Signed-off-by: Ted Elhourani <ted.elhourani@nutanix.com> > --- Thanks, Ted and Yifeng! I added 'Reviewed-by' tag from Yifeng since there was no code changes and applied to master. Hint for a next time: It's not a v1 if you're sending it for the 7th time. :) Best regards, Ilya Maximets. > Documentation/intro/install/general.rst | 4 +++- > NEWS | 2 ++ > lib/dns-resolve.c | 12 ++++++++++++ > 3 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/Documentation/intro/install/general.rst b/Documentation/intro/install/general.rst > index 09f2c13f1..c4300cd53 100644 > --- a/Documentation/intro/install/general.rst > +++ b/Documentation/intro/install/general.rst > @@ -97,7 +97,9 @@ need the following software: > specifying OpenFlow and OVSDB remotes. If unbound library is already > installed, then Open vSwitch will automatically build with support for it. > The environment variable OVS_RESOLV_CONF can be used to specify DNS server > - configuration file (the default file on Linux is /etc/resolv.conf). > + configuration file (the default file on Linux is /etc/resolv.conf), and > + environment variable OVS_UNBOUND_CONF can be used to specify the > + configuration file for unbound. > > On Linux, you may choose to compile the kernel module that comes with the Open > vSwitch distribution or to use the kernel module built into the Linux kernel > diff --git a/NEWS b/NEWS > index a858a3b35..4619e73bf 100644 > --- a/NEWS > +++ b/NEWS > @@ -5,6 +5,8 @@ Post-v2.14.0 > status of the storage that's backing a database. > - DPDK: > * Removed support for vhost-user dequeue zero-copy. > + - The environment variable OVS_UNBOUND_CONF, if set, is now used > + as the DNS resolver's (unbound) configuration file. > > > v2.14.0 - 17 Aug 2020 > diff --git a/lib/dns-resolve.c b/lib/dns-resolve.c > index 1ff58960f..d34451434 100644 > --- a/lib/dns-resolve.c > +++ b/lib/dns-resolve.c > @@ -82,6 +82,18 @@ dns_resolve_init(bool is_daemon) > return; > } > > + const char *ub_conf_filename = getenv("OVS_UNBOUND_CONF"); > + if (ub_conf_filename != NULL) { > + int retval = ub_ctx_config(ub_ctx__, ub_conf_filename); > + if (retval != 0) { > + VLOG_WARN_RL(&rl, "Failed to set libunbound context config: %s", > + ub_strerror(retval)); > + ub_ctx_delete(ub_ctx__); > + ub_ctx__ = NULL; > + return; > + } > + } > + > const char *filename = getenv("OVS_RESOLV_CONF"); > if (!filename) { > #ifdef _WIN32 >
diff --git a/Documentation/intro/install/general.rst b/Documentation/intro/install/general.rst index 09f2c13f1..c4300cd53 100644 --- a/Documentation/intro/install/general.rst +++ b/Documentation/intro/install/general.rst @@ -97,7 +97,9 @@ need the following software: specifying OpenFlow and OVSDB remotes. If unbound library is already installed, then Open vSwitch will automatically build with support for it. The environment variable OVS_RESOLV_CONF can be used to specify DNS server - configuration file (the default file on Linux is /etc/resolv.conf). + configuration file (the default file on Linux is /etc/resolv.conf), and + environment variable OVS_UNBOUND_CONF can be used to specify the + configuration file for unbound. On Linux, you may choose to compile the kernel module that comes with the Open vSwitch distribution or to use the kernel module built into the Linux kernel diff --git a/NEWS b/NEWS index a858a3b35..4619e73bf 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,8 @@ Post-v2.14.0 status of the storage that's backing a database. - DPDK: * Removed support for vhost-user dequeue zero-copy. + - The environment variable OVS_UNBOUND_CONF, if set, is now used + as the DNS resolver's (unbound) configuration file. v2.14.0 - 17 Aug 2020 diff --git a/lib/dns-resolve.c b/lib/dns-resolve.c index 1ff58960f..d34451434 100644 --- a/lib/dns-resolve.c +++ b/lib/dns-resolve.c @@ -82,6 +82,18 @@ dns_resolve_init(bool is_daemon) return; } + const char *ub_conf_filename = getenv("OVS_UNBOUND_CONF"); + if (ub_conf_filename != NULL) { + int retval = ub_ctx_config(ub_ctx__, ub_conf_filename); + if (retval != 0) { + VLOG_WARN_RL(&rl, "Failed to set libunbound context config: %s", + ub_strerror(retval)); + ub_ctx_delete(ub_ctx__); + ub_ctx__ = NULL; + return; + } + } + const char *filename = getenv("OVS_RESOLV_CONF"); if (!filename) { #ifdef _WIN32
When an unbound context is created, check whether OVS_UNBOUND_CONF has been set. If a valid config file is supplied then use it to configure the context. The procedure returns if the config file is invalid. If no config file is found then the default unbound config is used. Signed-off-by: Ted Elhourani <ted.elhourani@nutanix.com> --- Documentation/intro/install/general.rst | 4 +++- NEWS | 2 ++ lib/dns-resolve.c | 12 ++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-)