Re: [PATCH v1 24/26] qemu: move qemuBuildSmartcardCommandLine validation to qemu_domain.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/16/19 5:46 PM, Cole Robinson wrote:
> 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

Actually virReportEnumRangeError seems like the common pattern in this case

- Cole

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux