[libvirt] [PATCH] Don't drop expired lease while reading custom leases file

Nehal J Wani nehaljw.kkd1 at gmail.com
Fri Sep 30 12:22:03 UTC 2016


On Fri, Sep 30, 2016 at 5:47 PM, Michal Privoznik <mprivozn at redhat.com> wrote:
> On 28.09.2016 21:39, Nehal J Wani wrote:
>> Libvirt, on its own, shouldn't decide whether an expired lease should
>> stay in the custom leases database or not. It should rather rely on
>> the 'DEL' event from dnsmasq.
>> ---
>>  src/util/virlease.c | 8 --------
>>  1 file changed, 8 deletions(-)
>>
>> diff --git a/src/util/virlease.c b/src/util/virlease.c
>> index 920ebaf..b49105d 100644
>> --- a/src/util/virlease.c
>> +++ b/src/util/virlease.c
>> @@ -57,7 +57,6 @@ virLeaseReadCustomLeaseFile(virJSONValuePtr leases_array_new,
>>  {
>>      char *lease_entries = NULL;
>>      virJSONValuePtr leases_array = NULL;
>> -    long long currtime = 0;
>>      long long expirytime;
>>      int custom_lease_file_len = 0;
>>      virJSONValuePtr lease_tmp = NULL;
>> @@ -66,8 +65,6 @@ virLeaseReadCustomLeaseFile(virJSONValuePtr leases_array_new,
>>      size_t i;
>>      int ret = -1;
>>
>> -    currtime = (long long) time(NULL);
>> -
>>      /* Read entire contents */
>>      if ((custom_lease_file_len = virFileReadAll(custom_lease_file,
>>                                                  VIR_NETWORK_DHCP_LEASE_FILE_SIZE_MAX,
>> @@ -109,11 +106,6 @@ virLeaseReadCustomLeaseFile(virJSONValuePtr leases_array_new,
>>                             _("failed to parse json"));
>>              goto cleanup;
>>          }
>> -        /* Check whether lease has expired or not */
>> -        if (expirytime < currtime) {
>> -            i++;
>> -            continue;
>> -        }
>>
>>          /* Check whether lease has to be included or not */
>>          if (ip_to_delete && STREQ(ip_tmp, ip_to_delete)) {
>>
>
> Well, I like this patch. I really do. I always felt like read() function
> should not do any validation and just present called the data. However,
> this "breaks" the nsstest. We have two options here: either merge the
> other patch of yours that fixes the NSS module, or temporarily just
> "fix" the nss test (so that we can undo the change while merging the
> other patch).
> Which one of those two approaches do you like more?
>
> Michal

I like the approach where the NSS module is fixed first, and then
virLeaseReadCustomLeaseFile() is fixed. This way, we won't break
anything in between and won't have to change anything temporarily.

-- 
Nehal J Wani




More information about the libvir-list mailing list