[libvirt] [resend][PATCH] deamon: use default value if ca_file, cert_file or key_file not set

Jiri Denemark jdenemar at redhat.com
Fri Jan 12 09:44:38 UTC 2018


On Fri, Jan 12, 2018 at 17:09:10 +0800, Chen Hanxiao wrote:
> From: Chen Hanxiao <chenhanxiao at gmail.com>
> 
> As the description of daemon/libvirtd.conf, setting
> key_file, cert_file or key_file will override the default value.
> But if we set any one of them, we need to set all the rest of them.

I think this is a reasonable behavior. If a default value is not usable
for one of them, the other will likely need to be changed too.

Although ca_file could be separated. In other words, I can imagine
someone wants to change ca_file but keep default values for
cert_file/key_file or keep default ca_file and override
cert_file/key_file. Overriding cert_file or key_file only without also
changing the other one doesn't make a lot of sense.

Anyway, the patch is incorrect...

> This patch set default value to them as daemon/libvirtd.conf
> described.
> 
> Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
> ---
>  daemon/libvirtd.c | 27 ++++++++++++++++++---------
>  1 file changed, 18 insertions(+), 9 deletions(-)
> 
> diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
> index 6d3b83355..93983f63b 100644
> --- a/daemon/libvirtd.c
> +++ b/daemon/libvirtd.c
> @@ -493,19 +493,28 @@ daemonSetupNetworking(virNetServerPtr srv,
>                  config->cert_file ||
>                  config->key_file) {
>                  if (!config->ca_file) {
> -                    virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> -                                   _("No CA certificate path set to match server key/cert"));
> -                    goto cleanup;
> +                    VIR_WARN("Using default path for ca_file");
> +                    if (VIR_STRDUP(config->ca_file, LIBVIRT_CACERT) < 0) {
> +                        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                                       _("No CA certificate path set to match server key/cert"));

This error message doesn't make any sense now. Not to mention you're
overriding the error which was already set by VIR_STRDUP.

> +                        goto cleanup;
> +                    }
>                  }
>                  if (!config->cert_file) {
> -                    virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> -                                   _("No server certificate path set to match server key"));
> -                    goto cleanup;
> +                    VIR_WARN("Using default path for cert_file");
> +                    if (VIR_STRDUP(config->cert_file, LIBVIRT_SERVERCERT) < 0) {
> +                        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                                       _("No server certificate path set to match server key"));

Dtto.

> +                        goto cleanup;
> +                    }
>                  }
>                  if (!config->key_file) {
> -                    virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> -                                   _("No server key path set to match server cert"));
> -                    goto cleanup;
> +                    VIR_WARN("Using default path for key_file");
> +                    if (VIR_STRDUP(config->key_file, LIBVIRT_SERVERKEY) < 0) {
> +                        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                                       _("No server key path set to match server cert"));

Dtto.

> +                        goto cleanup;
> +                    }
>                  }
>                  VIR_DEBUG("Using CA='%s' cert='%s' key='%s'",
>                            config->ca_file, config->cert_file, config->key_file);

Jirka




More information about the libvir-list mailing list