mirror of https://gitee.com/openkylin/libvirt.git
rpc: treat EADDRNOTAVAIL as non-fatal when listening
Consider creating a listener socket from a hostname that resolves to multiple addresses. It might be the case that the hostname resolves to both an IPv4 and IPv6 address because it is reachable over both protocols, but the IPv6 connectivity is provided off-host. In such a case no local NIC will have IPv6 and so bind() would fail with the EADDRNOTAVAIL errno. Thus it should be treated as non-fatal as long as at least one socket was succesfully bound. Reviewed-by: Jiri Denemark <jdenemar@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
f56eb726b1
commit
2eb748d259
|
@ -382,7 +382,7 @@ int virNetSocketNewListenTCP(const char *nodename,
|
|||
#endif
|
||||
|
||||
if (bind(fd, runp->ai_addr, runp->ai_addrlen) < 0) {
|
||||
if (errno != EADDRINUSE) {
|
||||
if (errno != EADDRINUSE && errno != EADDRNOTAVAIL) {
|
||||
virReportSystemError(errno, "%s", _("Unable to bind to port"));
|
||||
goto error;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue