[libvirt] [PATCH V1 1/3] Implement virMacAddrIsBroadcastRaw

Daniel Veillard veillard at redhat.com
Fri Aug 31 03:33:01 UTC 2012


On Thu, Aug 30, 2012 at 02:29:49PM -0400, Stefan Berger wrote:
> Add function for testing for Ethernet broadcast address
> ---
>  src/libvirt_private.syms |    1 +
>  src/util/virmacaddr.c    |    9 +++++++++
>  src/util/virmacaddr.h    |    2 ++
>  3 files changed, 12 insertions(+)
> 
> Index: libvirt-acl/src/util/virmacaddr.c
> ===================================================================
> --- libvirt-acl.orig/src/util/virmacaddr.c
> +++ libvirt-acl/src/util/virmacaddr.c
> @@ -30,6 +30,9 @@
>  #include "virmacaddr.h"
>  #include "virrandom.h"
>  
> +static const unsigned char virMacAddrBroadcastAddrRaw[VIR_MAC_BUFLEN] =
> +    { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
> +
>  /* Compare two MAC addresses, ignoring differences in case,
>   * as well as leading zeros.
>   */
> @@ -218,3 +221,9 @@ virMacAddrIsUnicast(const virMacAddrPtr
>  {
>      return !(mac->addr[0] & 1);
>  }
> +
> +bool
> +virMacAddrIsBroadcastRaw(const unsigned char s[VIR_MAC_BUFLEN])
> +{
> +    return memcmp(virMacAddrBroadcastAddrRaw, s, sizeof(*s)) == 0;
> +}
> Index: libvirt-acl/src/util/virmacaddr.h
> ===================================================================
> --- libvirt-acl.orig/src/util/virmacaddr.h
> +++ libvirt-acl/src/util/virmacaddr.h
> @@ -52,4 +52,6 @@ int virMacAddrParse(const char* str,
>                      virMacAddrPtr addr) ATTRIBUTE_RETURN_CHECK;
>  bool virMacAddrIsUnicast(const virMacAddrPtr addr);
>  bool virMacAddrIsMulticast(const virMacAddrPtr addr);
> +bool virMacAddrIsBroadcastRaw(const unsigned char s[VIR_MAC_BUFLEN]);
> +

  Humpf, we really ought to add virMacAddrIsBroadcast instead, but
I understand from patch 3/3 that you don't have the structure handy
at that point (and doing a pointer cast to an inexistant structure
would be ugly), so okay for the purpose of fixing that bug, but
I would expect a followup patch with a proper

  bool virMacAddrIsBroadcast(const virMacAddrPtr addr);

added too

>  #endif /* __VIR_MACADDR_H__ */
> Index: libvirt-acl/src/libvirt_private.syms
> ===================================================================
> --- libvirt-acl.orig/src/libvirt_private.syms
> +++ libvirt-acl/src/libvirt_private.syms
> @@ -1329,6 +1329,7 @@ virMacAddrCompare;
>  virMacAddrFormat;
>  virMacAddrGenerate;
>  virMacAddrGetRaw;
> +virMacAddrIsBroadcastRaw;
>  virMacAddrIsMulticast;
>  virMacAddrIsUnicast;
>  virMacAddrParse;

ACK,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list