[libvirt] [PATCH v2 11/20] network: Introduce virNetworkObj{Get|Set}Autostart

John Ferlan posted 20 patches 7 years, 9 months ago
[libvirt] [PATCH v2 11/20] network: Introduce virNetworkObj{Get|Set}Autostart
Posted by John Ferlan 7 years, 9 months ago
In preparation for privatizing the virNetworkObj structure, create
accessors for the obj->autostart.

Signed-off-by: John Ferlan <jferlan@redhat.com>
---
 src/conf/virnetworkobj.c    | 15 +++++++++++++++
 src/conf/virnetworkobj.h    |  9 ++++++++-
 src/libvirt_private.syms    |  2 ++
 src/network/bridge_driver.c | 20 ++++++++++----------
 src/test/test_driver.c      |  5 +++--
 5 files changed, 38 insertions(+), 13 deletions(-)

diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c
index 631f8cd..36d4bff 100644
--- a/src/conf/virnetworkobj.c
+++ b/src/conf/virnetworkobj.c
@@ -129,6 +129,21 @@ virNetworkObjGetNewDef(virNetworkObjPtr obj)
 }
 
 
+int
+virNetworkObjGetAutostart(virNetworkObjPtr obj)
+{
+    return obj->autostart;
+}
+
+
+void
+virNetworkObjSetAutostart(virNetworkObjPtr obj,
+                          int autostart)
+{
+    obj->autostart = autostart;
+}
+
+
 pid_t
 virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj)
 {
diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h
index 90ce0ca..a526d30 100644
--- a/src/conf/virnetworkobj.h
+++ b/src/conf/virnetworkobj.h
@@ -32,7 +32,7 @@ struct _virNetworkObj {
     pid_t dnsmasqPid;
     pid_t radvdPid;
     unsigned int active : 1;
-    unsigned int autostart : 1;
+    int autostart;
     unsigned int persistent : 1;
 
     virNetworkDefPtr def; /* The current definition */
@@ -60,6 +60,13 @@ virNetworkObjSetDef(virNetworkObjPtr obj,
 virNetworkDefPtr
 virNetworkObjGetNewDef(virNetworkObjPtr obj);
 
+int
+virNetworkObjGetAutostart(virNetworkObjPtr obj);
+
+void
+virNetworkObjSetAutostart(virNetworkObjPtr obj,
+                          int autostart);
+
 virMacMapPtr
 virNetworkObjGetMacMap(virNetworkObjPtr obj);
 
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 84e3eb7..8a3284f 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -944,6 +944,7 @@ virNetworkObjFindByName;
 virNetworkObjFindByNameLocked;
 virNetworkObjFindByUUID;
 virNetworkObjFindByUUIDLocked;
+virNetworkObjGetAutostart;
 virNetworkObjGetClassIdMap;
 virNetworkObjGetDef;
 virNetworkObjGetDnsmasqPid;
@@ -966,6 +967,7 @@ virNetworkObjNew;
 virNetworkObjRemoveInactive;
 virNetworkObjReplacePersistentDef;
 virNetworkObjSaveStatus;
+virNetworkObjSetAutostart;
 virNetworkObjSetDef;
 virNetworkObjSetDefTransient;
 virNetworkObjSetDnsmasqPid;
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index b4fbfc5..eb814d3 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -525,7 +525,7 @@ networkAutostartConfig(virNetworkObjPtr obj,
     int ret = -1;
 
     virObjectLock(obj);
-    if (obj->autostart &&
+    if (virNetworkObjGetAutostart(obj) &&
         !virNetworkObjIsActive(obj) &&
         networkStartNetwork(driver, obj) < 0)
         goto cleanup;
@@ -3963,7 +3963,7 @@ networkGetAutostart(virNetworkPtr net,
     if (virNetworkGetAutostartEnsureACL(net->conn, virNetworkObjGetDef(obj)) < 0)
         goto cleanup;
 
-    *autostart = obj->autostart;
+    *autostart = virNetworkObjGetAutostart(obj);
     ret = 0;
 
  cleanup:
@@ -3974,12 +3974,13 @@ networkGetAutostart(virNetworkPtr net,
 
 static int
 networkSetAutostart(virNetworkPtr net,
-                    int autostart)
+                    int new_autostart)
 {
     virNetworkDriverStatePtr driver = networkGetDriver();
     virNetworkObjPtr obj;
     virNetworkDefPtr def;
     char *configFile = NULL, *autostartLink = NULL;
+    int cur_autostart;
     int ret = -1;
 
     if (!(obj = networkObjFromNetwork(net)))
@@ -3995,9 +3996,9 @@ networkSetAutostart(virNetworkPtr net,
         goto cleanup;
     }
 
-    autostart = (autostart != 0);
-
-    if (obj->autostart != autostart) {
+    new_autostart = (new_autostart != 0);
+    cur_autostart = virNetworkObjGetAutostart(obj);
+    if (cur_autostart != new_autostart) {
         if ((configFile = virNetworkConfigFile(driver->networkConfigDir,
                                                def->name)) == NULL)
             goto cleanup;
@@ -4005,7 +4006,7 @@ networkSetAutostart(virNetworkPtr net,
                                                   def->name)) == NULL)
             goto cleanup;
 
-        if (autostart) {
+        if (new_autostart) {
             if (virFileMakePath(driver->networkAutostartDir) < 0) {
                 virReportSystemError(errno,
                                      _("cannot create autostart directory '%s'"),
@@ -4028,13 +4029,12 @@ networkSetAutostart(virNetworkPtr net,
             }
         }
 
-        obj->autostart = autostart;
+        virNetworkObjSetAutostart(obj, new_autostart);
     }
+
     ret = 0;
 
  cleanup:
-    VIR_FREE(configFile);
-    VIR_FREE(autostartLink);
     virNetworkObjEndAPI(&obj);
     return ret;
 }
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 868aa27..8e841b2 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -3647,7 +3647,7 @@ testNetworkGetAutostart(virNetworkPtr net,
     if (!(obj = testNetworkObjFindByName(privconn, net->name)))
         goto cleanup;
 
-    *autostart = obj->autostart;
+    *autostart = virNetworkObjGetAutostart(obj);
     ret = 0;
 
  cleanup:
@@ -3667,7 +3667,8 @@ testNetworkSetAutostart(virNetworkPtr net,
     if (!(obj = testNetworkObjFindByName(privconn, net->name)))
         goto cleanup;
 
-    obj->autostart = autostart ? 1 : 0;
+    virNetworkObjSetAutostart(obj, autostart ? 1 : 0);
+
     ret = 0;
 
  cleanup:
-- 
2.9.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 11/20] network: Introduce virNetworkObj{Get|Set}Autostart
Posted by Michal Privoznik 7 years, 9 months ago
On 07/26/2017 05:05 PM, John Ferlan wrote:
> In preparation for privatizing the virNetworkObj structure, create
> accessors for the obj->autostart.
> 
> Signed-off-by: John Ferlan <jferlan@redhat.com>
> ---
>  src/conf/virnetworkobj.c    | 15 +++++++++++++++
>  src/conf/virnetworkobj.h    |  9 ++++++++-
>  src/libvirt_private.syms    |  2 ++
>  src/network/bridge_driver.c | 20 ++++++++++----------
>  src/test/test_driver.c      |  5 +++--
>  5 files changed, 38 insertions(+), 13 deletions(-)
> 
> diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c
> index 631f8cd..36d4bff 100644
> --- a/src/conf/virnetworkobj.c
> +++ b/src/conf/virnetworkobj.c
> @@ -129,6 +129,21 @@ virNetworkObjGetNewDef(virNetworkObjPtr obj)
>  }
>  
>  
> +int
> +virNetworkObjGetAutostart(virNetworkObjPtr obj)
> +{
> +    return obj->autostart;
> +}
> +
> +
> +void
> +virNetworkObjSetAutostart(virNetworkObjPtr obj,
> +                          int autostart)
> +{
> +    obj->autostart = autostart;
> +}
> +
> +
>  pid_t
>  virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj)
>  {
> diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h
> index 90ce0ca..a526d30 100644
> --- a/src/conf/virnetworkobj.h
> +++ b/src/conf/virnetworkobj.h
> @@ -32,7 +32,7 @@ struct _virNetworkObj {
>      pid_t dnsmasqPid;
>      pid_t radvdPid;
>      unsigned int active : 1;
> -    unsigned int autostart : 1;
> +    int autostart;

Since we are touching this does it make sense to convert this to bool?
Interestingly, you're doing that conversion for @active in the next patch.

>      unsigned int persistent : 1;
>  
>      virNetworkDefPtr def; /* The current definition */
> @@ -60,6 +60,13 @@ virNetworkObjSetDef(virNetworkObjPtr obj,
>  virNetworkDefPtr
>  virNetworkObjGetNewDef(virNetworkObjPtr obj);
>  
> +int
> +virNetworkObjGetAutostart(virNetworkObjPtr obj);
> +
> +void
> +virNetworkObjSetAutostart(virNetworkObjPtr obj,
> +                          int autostart);
> +
>  virMacMapPtr
>  virNetworkObjGetMacMap(virNetworkObjPtr obj);
>  
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 84e3eb7..8a3284f 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -944,6 +944,7 @@ virNetworkObjFindByName;
>  virNetworkObjFindByNameLocked;
>  virNetworkObjFindByUUID;
>  virNetworkObjFindByUUIDLocked;
> +virNetworkObjGetAutostart;
>  virNetworkObjGetClassIdMap;
>  virNetworkObjGetDef;
>  virNetworkObjGetDnsmasqPid;
> @@ -966,6 +967,7 @@ virNetworkObjNew;
>  virNetworkObjRemoveInactive;
>  virNetworkObjReplacePersistentDef;
>  virNetworkObjSaveStatus;
> +virNetworkObjSetAutostart;
>  virNetworkObjSetDef;
>  virNetworkObjSetDefTransient;
>  virNetworkObjSetDnsmasqPid;
> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
> index b4fbfc5..eb814d3 100644
> --- a/src/network/bridge_driver.c
> +++ b/src/network/bridge_driver.c
> @@ -525,7 +525,7 @@ networkAutostartConfig(virNetworkObjPtr obj,
>      int ret = -1;
>  
>      virObjectLock(obj);
> -    if (obj->autostart &&
> +    if (virNetworkObjGetAutostart(obj) &&
>          !virNetworkObjIsActive(obj) &&
>          networkStartNetwork(driver, obj) < 0)
>          goto cleanup;
> @@ -3963,7 +3963,7 @@ networkGetAutostart(virNetworkPtr net,
>      if (virNetworkGetAutostartEnsureACL(net->conn, virNetworkObjGetDef(obj)) < 0)
>          goto cleanup;
>  
> -    *autostart = obj->autostart;
> +    *autostart = virNetworkObjGetAutostart(obj);
>      ret = 0;
>  
>   cleanup:
> @@ -3974,12 +3974,13 @@ networkGetAutostart(virNetworkPtr net,
>  
>  static int
>  networkSetAutostart(virNetworkPtr net,
> -                    int autostart)
> +                    int new_autostart)
>  {
>      virNetworkDriverStatePtr driver = networkGetDriver();
>      virNetworkObjPtr obj;
>      virNetworkDefPtr def;
>      char *configFile = NULL, *autostartLink = NULL;
> +    int cur_autostart;
>      int ret = -1;
>  
>      if (!(obj = networkObjFromNetwork(net)))
> @@ -3995,9 +3996,9 @@ networkSetAutostart(virNetworkPtr net,
>          goto cleanup;
>      }
>  
> -    autostart = (autostart != 0);
> -
> -    if (obj->autostart != autostart) {
> +    new_autostart = (new_autostart != 0);
> +    cur_autostart = virNetworkObjGetAutostart(obj);
> +    if (cur_autostart != new_autostart) {
>          if ((configFile = virNetworkConfigFile(driver->networkConfigDir,
>                                                 def->name)) == NULL)
>              goto cleanup;
> @@ -4005,7 +4006,7 @@ networkSetAutostart(virNetworkPtr net,
>                                                    def->name)) == NULL)
>              goto cleanup;
>  
> -        if (autostart) {
> +        if (new_autostart) {
>              if (virFileMakePath(driver->networkAutostartDir) < 0) {
>                  virReportSystemError(errno,
>                                       _("cannot create autostart directory '%s'"),
> @@ -4028,13 +4029,12 @@ networkSetAutostart(virNetworkPtr net,
>              }
>          }
>  
> -        obj->autostart = autostart;
> +        virNetworkObjSetAutostart(obj, new_autostart);
>      }
> +
>      ret = 0;
>  
>   cleanup:
> -    VIR_FREE(configFile);
> -    VIR_FREE(autostartLink);

This doesn't feel right. @configFile and @autostartLink are leaked.

>      virNetworkObjEndAPI(&obj);
>      return ret;
>  }

Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 11/20] network: Introduce virNetworkObj{Get|Set}Autostart
Posted by John Ferlan 7 years, 9 months ago

On 08/15/2017 11:32 AM, Michal Privoznik wrote:
> On 07/26/2017 05:05 PM, John Ferlan wrote:
>> In preparation for privatizing the virNetworkObj structure, create
>> accessors for the obj->autostart.
>>
>> Signed-off-by: John Ferlan <jferlan@redhat.com>
>> ---
>>  src/conf/virnetworkobj.c    | 15 +++++++++++++++
>>  src/conf/virnetworkobj.h    |  9 ++++++++-
>>  src/libvirt_private.syms    |  2 ++
>>  src/network/bridge_driver.c | 20 ++++++++++----------
>>  src/test/test_driver.c      |  5 +++--
>>  5 files changed, 38 insertions(+), 13 deletions(-)
>>
>> diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c
>> index 631f8cd..36d4bff 100644
>> --- a/src/conf/virnetworkobj.c
>> +++ b/src/conf/virnetworkobj.c
>> @@ -129,6 +129,21 @@ virNetworkObjGetNewDef(virNetworkObjPtr obj)
>>  }
>>  
>>  
>> +int
>> +virNetworkObjGetAutostart(virNetworkObjPtr obj)
>> +{
>> +    return obj->autostart;
>> +}
>> +
>> +
>> +void
>> +virNetworkObjSetAutostart(virNetworkObjPtr obj,
>> +                          int autostart)
>> +{
>> +    obj->autostart = autostart;
>> +}
>> +
>> +
>>  pid_t
>>  virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj)
>>  {
>> diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h
>> index 90ce0ca..a526d30 100644
>> --- a/src/conf/virnetworkobj.h
>> +++ b/src/conf/virnetworkobj.h
>> @@ -32,7 +32,7 @@ struct _virNetworkObj {
>>      pid_t dnsmasqPid;
>>      pid_t radvdPid;
>>      unsigned int active : 1;
>> -    unsigned int autostart : 1;
>> +    int autostart;
> 
> Since we are touching this does it make sense to convert this to bool?
> Interestingly, you're doing that conversion for @active in the next patch.
> 

I think because it was an external API provided value I left it at
'int'. For the other two active and persistent - those are boolean
states as a result of other internal operations and not outwardly
facing.  IOW: There's no virNetworkSetPersistent or virNetworkSetActive
type API's.

I think also the GetAutostart algorithm which assigns *autostart =
obj->autostart caused me to pause especially since the code is
"repeated" in domain, storage, and test. Initially I think I was
thinking of combining all those places that make the same sequence of
calls, but that got shot down. I think changing it to a bool would
probably be a "next step" exercise, but "technically", the Get algorithm
would be *autostart = obj->autostart ? 1 : 0; as opposed to the current
*autostart = obj->autostart;

>>      unsigned int persistent : 1;
>>  
>>      virNetworkDefPtr def; /* The current definition */
>> @@ -60,6 +60,13 @@ virNetworkObjSetDef(virNetworkObjPtr obj,
>>  virNetworkDefPtr
>>  virNetworkObjGetNewDef(virNetworkObjPtr obj);
>>  
>> +int
>> +virNetworkObjGetAutostart(virNetworkObjPtr obj);
>> +
>> +void
>> +virNetworkObjSetAutostart(virNetworkObjPtr obj,
>> +                          int autostart);
>> +
>>  virMacMapPtr
>>  virNetworkObjGetMacMap(virNetworkObjPtr obj);
>>  
>> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
>> index 84e3eb7..8a3284f 100644
>> --- a/src/libvirt_private.syms
>> +++ b/src/libvirt_private.syms
>> @@ -944,6 +944,7 @@ virNetworkObjFindByName;
>>  virNetworkObjFindByNameLocked;
>>  virNetworkObjFindByUUID;
>>  virNetworkObjFindByUUIDLocked;
>> +virNetworkObjGetAutostart;
>>  virNetworkObjGetClassIdMap;
>>  virNetworkObjGetDef;
>>  virNetworkObjGetDnsmasqPid;
>> @@ -966,6 +967,7 @@ virNetworkObjNew;
>>  virNetworkObjRemoveInactive;
>>  virNetworkObjReplacePersistentDef;
>>  virNetworkObjSaveStatus;
>> +virNetworkObjSetAutostart;
>>  virNetworkObjSetDef;
>>  virNetworkObjSetDefTransient;
>>  virNetworkObjSetDnsmasqPid;
>> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
>> index b4fbfc5..eb814d3 100644
>> --- a/src/network/bridge_driver.c
>> +++ b/src/network/bridge_driver.c
>> @@ -525,7 +525,7 @@ networkAutostartConfig(virNetworkObjPtr obj,
>>      int ret = -1;
>>  
>>      virObjectLock(obj);
>> -    if (obj->autostart &&
>> +    if (virNetworkObjGetAutostart(obj) &&
>>          !virNetworkObjIsActive(obj) &&
>>          networkStartNetwork(driver, obj) < 0)
>>          goto cleanup;
>> @@ -3963,7 +3963,7 @@ networkGetAutostart(virNetworkPtr net,
>>      if (virNetworkGetAutostartEnsureACL(net->conn, virNetworkObjGetDef(obj)) < 0)
>>          goto cleanup;
>>  
>> -    *autostart = obj->autostart;
>> +    *autostart = virNetworkObjGetAutostart(obj);
>>      ret = 0;
>>  
>>   cleanup:
>> @@ -3974,12 +3974,13 @@ networkGetAutostart(virNetworkPtr net,
>>  
>>  static int
>>  networkSetAutostart(virNetworkPtr net,
>> -                    int autostart)
>> +                    int new_autostart)
>>  {
>>      virNetworkDriverStatePtr driver = networkGetDriver();
>>      virNetworkObjPtr obj;
>>      virNetworkDefPtr def;
>>      char *configFile = NULL, *autostartLink = NULL;
>> +    int cur_autostart;
>>      int ret = -1;
>>  
>>      if (!(obj = networkObjFromNetwork(net)))
>> @@ -3995,9 +3996,9 @@ networkSetAutostart(virNetworkPtr net,
>>          goto cleanup;
>>      }
>>  
>> -    autostart = (autostart != 0);
>> -
>> -    if (obj->autostart != autostart) {
>> +    new_autostart = (new_autostart != 0);
>> +    cur_autostart = virNetworkObjGetAutostart(obj);
>> +    if (cur_autostart != new_autostart) {
>>          if ((configFile = virNetworkConfigFile(driver->networkConfigDir,
>>                                                 def->name)) == NULL)
>>              goto cleanup;
>> @@ -4005,7 +4006,7 @@ networkSetAutostart(virNetworkPtr net,
>>                                                    def->name)) == NULL)
>>              goto cleanup;
>>  
>> -        if (autostart) {
>> +        if (new_autostart) {
>>              if (virFileMakePath(driver->networkAutostartDir) < 0) {
>>                  virReportSystemError(errno,
>>                                       _("cannot create autostart directory '%s'"),
>> @@ -4028,13 +4029,12 @@ networkSetAutostart(virNetworkPtr net,
>>              }
>>          }
>>  
>> -        obj->autostart = autostart;
>> +        virNetworkObjSetAutostart(obj, new_autostart);
>>      }
>> +
>>      ret = 0;
>>  
>>   cleanup:
>> -    VIR_FREE(configFile);
>> -    VIR_FREE(autostartLink);
> 
> This doesn't feel right. @configFile and @autostartLink are leaked.
> 

oh right - I dragged back the bulk of the algorithm, but not the
VIR_FREE's... I'll restore them.  Thanks -

John

>>      virNetworkObjEndAPI(&obj);
>>      return ret;
>>  }
> 
> Michal
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 11/20] network: Introduce virNetworkObj{Get|Set}Autostart
Posted by Michal Privoznik 7 years, 9 months ago
On 08/15/2017 10:42 PM, John Ferlan wrote:
> 
> 
> On 08/15/2017 11:32 AM, Michal Privoznik wrote:
>> On 07/26/2017 05:05 PM, John Ferlan wrote:
>>> In preparation for privatizing the virNetworkObj structure, create
>>> accessors for the obj->autostart.
>>>
>>> Signed-off-by: John Ferlan <jferlan@redhat.com>
>>> ---
>>>  src/conf/virnetworkobj.c    | 15 +++++++++++++++
>>>  src/conf/virnetworkobj.h    |  9 ++++++++-
>>>  src/libvirt_private.syms    |  2 ++
>>>  src/network/bridge_driver.c | 20 ++++++++++----------
>>>  src/test/test_driver.c      |  5 +++--
>>>  5 files changed, 38 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c
>>> index 631f8cd..36d4bff 100644
>>> --- a/src/conf/virnetworkobj.c
>>> +++ b/src/conf/virnetworkobj.c
>>> @@ -129,6 +129,21 @@ virNetworkObjGetNewDef(virNetworkObjPtr obj)
>>>  }
>>>  
>>>  
>>> +int
>>> +virNetworkObjGetAutostart(virNetworkObjPtr obj)
>>> +{
>>> +    return obj->autostart;
>>> +}
>>> +
>>> +
>>> +void
>>> +virNetworkObjSetAutostart(virNetworkObjPtr obj,
>>> +                          int autostart)
>>> +{
>>> +    obj->autostart = autostart;
>>> +}
>>> +
>>> +
>>>  pid_t
>>>  virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj)
>>>  {
>>> diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h
>>> index 90ce0ca..a526d30 100644
>>> --- a/src/conf/virnetworkobj.h
>>> +++ b/src/conf/virnetworkobj.h
>>> @@ -32,7 +32,7 @@ struct _virNetworkObj {
>>>      pid_t dnsmasqPid;
>>>      pid_t radvdPid;
>>>      unsigned int active : 1;
>>> -    unsigned int autostart : 1;
>>> +    int autostart;
>>
>> Since we are touching this does it make sense to convert this to bool?
>> Interestingly, you're doing that conversion for @active in the next patch.
>>
> 
> I think because it was an external API provided value I left it at
> 'int'. For the other two active and persistent - those are boolean
> states as a result of other internal operations and not outwardly
> facing.  IOW: There's no virNetworkSetPersistent or virNetworkSetActive
> type API's.
> 
> I think also the GetAutostart algorithm which assigns *autostart =
> obj->autostart caused me to pause especially since the code is
> "repeated" in domain, storage, and test. Initially I think I was
> thinking of combining all those places that make the same sequence of
> calls, but that got shot down. I think changing it to a bool would
> probably be a "next step" exercise, but "technically", the Get algorithm
> would be *autostart = obj->autostart ? 1 : 0; as opposed to the current
> *autostart = obj->autostart;

I don't think that different get is a problem. But okay, I don't care
that much to stop this. If you want to change it to bool do, if not I
can live with that too.

ACK if you fix the mem leak issue.

Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 11/20] network: Introduce virNetworkObj{Get|Set}Autostart
Posted by John Ferlan 7 years, 9 months ago
[...]

>>
>> I think because it was an external API provided value I left it at
>> 'int'. For the other two active and persistent - those are boolean
>> states as a result of other internal operations and not outwardly
>> facing.  IOW: There's no virNetworkSetPersistent or virNetworkSetActive
>> type API's.
>>
>> I think also the GetAutostart algorithm which assigns *autostart =
>> obj->autostart caused me to pause especially since the code is
>> "repeated" in domain, storage, and test. Initially I think I was
>> thinking of combining all those places that make the same sequence of
>> calls, but that got shot down. I think changing it to a bool would
>> probably be a "next step" exercise, but "technically", the Get algorithm
>> would be *autostart = obj->autostart ? 1 : 0; as opposed to the current
>> *autostart = obj->autostart;
> 
> I don't think that different get is a problem. But okay, I don't care
> that much to stop this. If you want to change it to bool do, if not I
> can live with that too.
> 
> ACK if you fix the mem leak issue.
> 
> Michal
> 

Alright - I changed to @bool... I also changed GetAutostart to be
IsAutostart, but otherwise was (mostly) simple except for merges in the
subsequent 2 patches.

John

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