[libvirt] [PATCH v3 02/11] util: netlink: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC

John Ferlan jferlan at redhat.com
Mon Aug 13 20:36:15 UTC 2018



On 08/13/2018 07:42 AM, Erik Skultety wrote:
> On Thu, Aug 09, 2018 at 09:42:10AM +0530, Sukrit Bhatnagar wrote:
>> Using the new VIR_DEFINE_AUTOPTR_FUNC macro defined in
>> src/util/viralloc.h, define a new wrapper around an existing
>> cleanup function which will be called when a variable declared
>> with VIR_AUTOPTR macro goes out of scope. Also, drop the redundant
>> viralloc.h include, since that has moved from the source module into
>> the header.
>>
>> This commit also typedefs virNlMsg to struct nl_msg type for use
>> with the cleanup macros.
>>
>> When a variable of type virNlMsg * is declared using VIR_AUTOPTR,
>> the function nlmsg_free will be run automatically on it when it
>> goes out of scope.
>>
>> Signed-off-by: Sukrit Bhatnagar <skrtbhtngr at gmail.com>
>> ---
>>  src/util/virnetlink.c | 1 -
>>  src/util/virnetlink.h | 5 +++++
>>  2 files changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c
>> index 162efe6..ecf62c9 100644
>> --- a/src/util/virnetlink.c
>> +++ b/src/util/virnetlink.c
>> @@ -38,7 +38,6 @@
>>  #include "virnetlink.h"
>>  #include "virnetdev.h"
>>  #include "virlog.h"
>> -#include "viralloc.h"
>>  #include "virthread.h"
>>  #include "virmacaddr.h"
>>  #include "virerror.h"
>> diff --git a/src/util/virnetlink.h b/src/util/virnetlink.h
>> index 2a9de0a..8ebeab8 100644
>> --- a/src/util/virnetlink.h
>> +++ b/src/util/virnetlink.h
>> @@ -22,6 +22,7 @@
>>
>>  # include "internal.h"
>>  # include "virmacaddr.h"
>> +# include "viralloc.h"
>>
>>  # if defined(__linux__) && defined(HAVE_LIBNL)
>>
>> @@ -44,6 +45,8 @@ struct nlmsghdr;
>>
>>  # endif /* __linux__ */
>>
>> +typedef struct nl_msg virNlMsg;
> 
> Since the name of the module is virNetlink, I'll rename this to virNetlinkMsg
> and tweak all the affected places across the whole series.
> 
> Reviewed-by: Erik Skultety <eskultet at redhat.com>
> 
>> +
>>  int virNetlinkStartup(void);
>>  void virNetlinkShutdown(void);
>>
>> @@ -123,4 +126,6 @@ int virNetlinkEventAddClient(virNetlinkEventHandleCallback handleCB,
>>  int virNetlinkEventRemoveClient(int watch, const virMacAddr *macaddr,
>>                                  unsigned int protocol);
>>
>> +VIR_DEFINE_AUTOPTR_FUNC(virNlMsg, nlmsg_free)
>> +

The freebsd builds are not very happy, for example from...

https://ci.centos.org/view/libvirt/job/libvirt-master-build/systems=libvirt-freebsd-11/1675/

One gets:

...
  CC       util/libvirt_nss_la-viratomic.lo
In file included from ../../src/network/bridge_driver.c:63:
../../src/util/virnetlink.h:129:40: error: use of undeclared identifier
'nlmsg_free'
VIR_DEFINE_AUTOPTR_FUNC(virNetlinkMsg, nlmsg_free)
                                       ^
1 error generated.


John

>>  #endif /* __VIR_NETLINK_H__ */
>> --
>> 1.8.3.1
>>
>> --
>> libvir-list mailing list
>> libvir-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
> 




More information about the libvir-list mailing list