On 02/02/2015 11:31 AM, Pavel Hrdina wrote:
Commit e562a61a introduced new function to get/set interface state
but
there was misuse of ATTRIBUTE_NONNULL on non-pointer attributes and also
we need to wrap that functions by #ifdef to not break mingw build.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
+++ b/src/util/virnetdev.c
@@ -671,12 +671,23 @@ int virNetDevSetIFFlag(const char *ifname,
*
* Returns 0 in case of success or -1 on error.
*/
+#if defined(SIOCSIFFLAGS) && defined(HAVE_STRUCT_IFREQ)
int virNetDevSetOnline(const char *ifname,
bool online)
{
return virNetDevSetIFFlag(ifname, IFF_UP, online);
}
This feels like it should be safe, except maybe for the fact that it
uses IFF_UP. Maybe we should wrap that under VIR_IFF_UP (defined to
IFF_UP when the #ifdefs are right, and to 0 otherwise), so that _only_
virNetDevSetIFFlag() has to have a counterpart definition, instead of
repeating lots of #ifdefs on all the callers.
+++ b/src/util/virnetdev.h
@@ -201,25 +201,23 @@ int virNetDevDelMulti(const char *ifname,
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
int virNetDevSetIFFlag(const char *ifname, int flag, bool val)
- ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
- ATTRIBUTE_RETURN_CHECK;
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
Ack to the changes in this file, although I still think the virnetdev.c
changes can be made shorter.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org