On 10/09/2013 03:32 PM, Michal Privoznik wrote:
This function takes exactly one argument: an address to check. It returns true, iff the address is an IPv4 or IPv6 address in numeric
Why use "iff" if you still need to say what happens otherwise? :)
format, false if otherwise (e.g. for "examplehost").
s/ if//
@@ -824,3 +839,27 @@ virSocketAddrGetIpPrefix(const virSocketAddrPtr address, */ return 0; }
Missing space.
+/** + * virSocketAddrIsNumeric: + * @address: address to check + * + * Check if passed address is an IP address in numeric format. For + * instance, for 0.0.0.0 true is returned, for 'examplehost" + * false is returned. + * + * Returns: true iff @address is an IP address,
See my comment for the commit message.
+ * false otherwise + */ +bool +virSocketAddrIsNumeric(const char *address) +{ + struct addrinfo *res; + unsigned short family; + + if (virSocketAddrParseInternal(&res, address, AF_UNSPEC, false) < 0) + return false; + + family = res->ai_addr->sa_family;
Is this any different than using int res->ai_family?
+ freeaddrinfo(res); + return family == AF_INET || family == AF_INET6; +}
ACK