On Tue, Aug 10, 2010 at 02:03:27PM +0200, Daniel Veillard wrote: > On Tue, Aug 10, 2010 at 07:42:49PM +1000, Justin Clift wrote: > > Hum ... I think that it's better to allow virSocketParseAddr() to > take a NULL Addr pointer it's very simple, I'm attaching the patch > and then virIsNumericIPAddr(foo) can be replaced by > > virSocketParseAddr(foo, NULL, 0) > > it also has the extensibility of being able to cope with IPv4 or > IPv6 only if one need, just by adjusting the hint. > Am I right ? I see you do more initializations on hints.ai_family > but the memset means the two functions are just the same for > ai_socktype and ai_protocol, Yep, AI_NUMERICHOST is the only one that really matters here. > diff --git a/src/util/network.c b/src/util/network.c > index 6e24792..b17d419 100644 > --- a/src/util/network.c > +++ b/src/util/network.c > @@ -56,7 +56,7 @@ static int getIPv6Addr(virSocketAddrPtr addr, virIPv6AddrPtr tab) { > /** > * virSocketParseAddr: > * @val: a numeric network address IPv4 or IPv6 > - * @addr: where to store the return value. > + * @addr: where to store the return value, optional. > * @hint: optional hint to pass down to getaddrinfo > * > * Mostly a wrapper for getaddrinfo() extracting the address storage > @@ -70,7 +70,7 @@ virSocketParseAddr(const char *val, virSocketAddrPtr addr, int hint) { > struct addrinfo hints; > struct addrinfo *res = NULL; > > - if ((val == NULL) || (addr == NULL)) > + if (val == NULL) > return(-1); > > memset(&hints, 0, sizeof(hints)); > @@ -80,7 +80,8 @@ virSocketParseAddr(const char *val, virSocketAddrPtr addr, int hint) { > } > > len = res->ai_addrlen; > - memcpy(&addr->stor, res->ai_addr, len); > + if (addr != NULL) > + memcpy(&addr->stor, res->ai_addr, len); > > freeaddrinfo(res); > return(len); ACK Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list