mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
Fix address handling in inet_nonblocking_connect
getaddrinfo can give us a list of addresses, but we only try to connect to the first one. If that fails we never proceed to the next one. This is common on desktop setups that often have ipv6 configured but not actually working. To fix this make inet_connect_nonblocking retry connection with a different address. callers on inet_nonblocking_connect register a callback function that will be called when connect opertion completes, in case of failure the fd will have a negative value Signed-off-by: Orit Wasserman <owasserm@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
5db5f44cb4
commit
233aa5c2d1
4 changed files with 126 additions and 58 deletions
|
@ -2456,7 +2456,7 @@ static CharDriverState *qemu_chr_open_socket(QemuOpts *opts)
|
|||
if (is_listen) {
|
||||
fd = inet_listen_opts(opts, 0, NULL);
|
||||
} else {
|
||||
fd = inet_connect_opts(opts, true, NULL, NULL);
|
||||
fd = inet_connect_opts(opts, NULL, NULL, NULL);
|
||||
}
|
||||
}
|
||||
if (fd < 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue