On Sun, Apr 19, 2015 at 08:49:06PM -0400, John Ferlan wrote:
Similar to virGetHostname, but this time taking a parameter which is
a
hostname or ipaddress from a <source ... <host name ='%s'.../>... />
XML property and validating that the name can be resolved.
Return true or false depending on whether we can ascertain the hostname
address from calls to 'getnameinfo' and 'getaddrinfo'. Subsequent
patches
will be validating a proposed pool hostname definition against existing
pool hostnames to ensure they are not the same hostname (and thus having
two pools looking at the same data)
Why do we need this function? The failure to resolve the host is already handled
by the underlying commands.
I don't think adding all this code just to save us a fork on wrong input is worth it.
+bool
+virIsValidHostname(const char *hostname)
+{
+ int r;
+ struct addrinfo hints, *info;
+
+ if (STRPREFIX(hostname, "localhost") ||
+ STREQ(hostname, "127.0.0.1") || STREQ(hostname, "::1"))
getaddrinfo handles these two numeric representations of localhost just
fine, just as the rest of them (see DO_TEST_LOCALHOST in sockettest.c
for a few interesting examples)
Jan