On 03/26/2018 04:29 PM, Jim Fehlig wrote:
When preparing for migration, the libxl driver creates a new TCP
listen
socket for the incoming migration by calling virNetSocketNewListenTCP,
passing the destination host name. virNetSocketNewListenTCP calls
virSocketAddrParse to check if the host name is a wildcard address, in
which case it avoids adding the AI_ADDRCONFIG flag to the hints passed to
getaddrinfo. If the host name is not an IP address, virSocketAddrParse
reports an error
error : virSocketAddrParseInternal:121 : Cannot parse socket address
'myhost.example.com': Name or service not known
But virNetSocketNewListenTCP succeeds regardless and the overall migration
operation succeeds.
Introduce virSocketAddrParseAny and use it when simply testing if a host
name/addr is parsable.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
Essentially a V2 of
https://www.redhat.com/archives/libvir-list/2018-March/msg01120.html
It takes a slightly different approach by creating a function that can
parse host names or IP addresses.
src/libvirt_private.syms | 1 +
src/rpc/virnetsocket.c | 2 +-
src/util/virsocketaddr.c | 50 +++++++++++++++++++++++++++++++++++++++++++++---
src/util/virsocketaddr.h | 5 +++++
4 files changed, 54 insertions(+), 4 deletions(-)
Reviewed-by: John Ferlan <jferlan(a)redhat.com>
Wait for 4.2.0 for this one...
John
BTW: Your call on whether to add to the new API comments something about
the API could be susceptible to a delay due to network name resolution
lookup pause. That is, from the getaddrinfo man page:
"The AI_NUMERICHOST flag suppresses any potentially lengthy network host
address lookups."