[libvirt] [PATCH] network utilities

Daniel Veillard veillard at redhat.com
Wed Oct 28 14:35:22 UTC 2009


On Thu, Oct 22, 2009 at 04:42:20PM -0400, Laine Stump wrote:
>> +/*
>> + * Helpers to extract the IP arrays from the virSocketAddrPtr
>> + * That part is the less portable of the module
>> + */
>> +typedef unsigned char virIPv4Addr[4];
>> +typedef virIPv4Addr *virIPv4AddrPtr;
>> +typedef unsigned short virIPv6Addr[8];
>>    
>
>
> Are you defining this an an array of short for efficiency? It's much  
> easier to deal with if you just look at it as a byte array - you don't  
> need to worry about network vs. host ordering when doing comparisons and  
> bit shifts/masks (IPv6 addresses, like IPv4 addresses, are *always* in  
> network order, even when being passed around in applications - see  
> section 3.2 of
> http://tools.ietf.org/html/rfc3493.)

  No. Those routines and structs are purely internal, and I choose to
adopt a structure which match the way addresses are serialized in
writing. So if you see 192.168.0.1 and look at the parsed array
(in code or in gdb) you see the same thing. This is mostly to make the
code understandable. For Ipv6 since in writing people use blocks of
values 0000-FFFF is was making sense for me to match that and use an
array of short. htonx and ntohx are just here to make code and debug
easier to understand.

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