On 12/9/19 6:15 PM, Daniel Henrique Barboza wrote: > Move smartcard validation being done by qemuBuildSmartcardCommandLine() > to the existing qemuDomainSmartcardDefValidate() function. This > function is called by qemuDomainDeviceDefValidate(), allowing smartcard > validation in domain define time. > > Tests were adapted to consider the new caps being needed in > this earlier stage. > > Signed-off-by: Daniel Henrique Barboza <danielhb413@xxxxxxxxx> > --- > src/qemu/qemu_command.c | 24 ------------------------ > src/qemu/qemu_domain.c | 37 +++++++++++++++++++++++++++++++++++++ > tests/qemuxml2xmltest.c | 16 +++++++++------- > 3 files changed, 46 insertions(+), 31 deletions(-) > > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c > index efc70d6de9..116ed45a12 100644 > --- a/src/qemu/qemu_command.c > +++ b/src/qemu/qemu_command.c > @@ -8271,24 +8271,10 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logManager, > > switch (smartcard->type) { > case VIR_DOMAIN_SMARTCARD_TYPE_HOST: > - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CCID_EMULATED)) { > - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > - _("this QEMU binary lacks smartcard host " > - "mode support")); > - return -1; > - } > - > virBufferAddLit(&opt, "ccid-card-emulated,backend=nss-emulated"); > break; > > case VIR_DOMAIN_SMARTCARD_TYPE_HOST_CERTIFICATES: > - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CCID_EMULATED)) { > - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > - _("this QEMU binary lacks smartcard host " > - "mode support")); > - return -1; > - } > - > virBufferAddLit(&opt, "ccid-card-emulated,backend=certificates"); > for (i = 0; i < VIR_DOMAIN_SMARTCARD_NUM_CERTIFICATES; i++) { > virBufferAsprintf(&opt, ",cert%zu=", i + 1); > @@ -8304,13 +8290,6 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logManager, > break; > > case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH: > - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CCID_PASSTHRU)) { > - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > - _("this QEMU binary lacks smartcard " > - "passthrough mode support")); > - return -1; > - } > - > if (!(devstr = qemuBuildChrChardevStr(logManager, secManager, > cmd, cfg, def, > smartcard->data.passthru, > @@ -8326,9 +8305,6 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logManager, > break; > > default: > - virReportError(VIR_ERR_INTERNAL_ERROR, > - _("unexpected smartcard type %d"), > - smartcard->type); > return -1; This still returns -1. If somehow we hit this condition, the startup will fail but no error will be reported. I think just 'return 0;' here instead - Cole -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list