[libvirt] [PATCH] Use libvirt's existing ipv6/ipv4 parser/printer rather than self-written ones

Daniel Veillard veillard at redhat.com
Tue Mar 30 15:06:14 UTC 2010


On Tue, Mar 30, 2010 at 10:50:20AM -0400, Stefan Berger wrote:
> This patch changes the network filtering code to use libvirt's existing
> IPv4 and IPv6 address parsers/printers rather than my self-written ones.
> 
> I am introducing a new function in network.c that counts the number of
> bits in a netmask and ensures that the given address is indeed a
> netmask, return -1 on error or values of 0-32 for IPv4 addresses and
> 0-128 for IPv6 addresses. I then based the function checking for valid
> netmask on invoking this function.

  Okay, I don't know why virSocketAddrIsNetmask() code didn't work
for you, I'm sure I had tested it even on weird examples, but the
replacement looks fine to me.

> Signed-off-by: Stefan Berger <stefanb at us.ibm.com>
> 
> ---
>  src/conf/nwfilter_conf.c                  |  181 ++----------------------------
>  src/conf/nwfilter_conf.h                  |    8 -
>  src/nwfilter/nwfilter_ebiptables_driver.c |   46 ++++---
>  src/util/network.c                        |  173 +++++++++++++++-------------
>  src/util/network.h                        |    3 
>  5 files changed, 142 insertions(+), 269 deletions(-)
[...]
> @@ -85,11 +87,7 @@ struct _nwMACAddress {
>  typedef struct _nwIPAddress nwIPAddress;
>  typedef nwIPAddress *nwIPAddressPtr;
>  struct _nwIPAddress {
> -    int isIPv6;
> -    union {
> -        unsigned char ipv4Addr[4];
> -        unsigned char ipv6Addr[16];
> -    } addr;
> +    virSocketAddr addr;
>  };

  A following cleanup to this cleanup might be to remove all nwIPAddress
and just use virSocketAddr, I guess this would make the code simpler
too.

  Thanks for the cleanup, looks fine to me,

   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