From a6ba35b3be9d3d2874cd00930c954347e6be764c Mon Sep 17 00:00:00 2001 From: Amos Kong Date: Fri, 11 May 2012 00:28:16 +0800 Subject: sockets: change inet_connect() to support nonblock socket Add a bool argument to inet_connect() to assign if set socket to block/nonblock, and delete original argument 'socktype' that is unused. Add a new argument to inet_connect()/inet_connect_opts(), to pass back connect error by error class. Retry to connect when -EINTR is got. Connect's successful for nonblock socket when following errors are got, user should wait for connecting by select(): -EINPROGRESS -EWOULDBLOCK (win32) -WSAEALREADY (win32) Change nbd, vnc to use new interface. Signed-off-by: Amos Kong Reviewed-by: Orit Wasserman Reviewed-by: Michael Roth Signed-off-by: Anthony Liguori --- ui/vnc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ui/vnc.c') diff --git a/ui/vnc.c b/ui/vnc.c index deb9ecd..3ae7704 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -3068,7 +3068,7 @@ int vnc_display_open(DisplayState *ds, const char *display) if (strncmp(display, "unix:", 5) == 0) vs->lsock = unix_connect(display+5); else - vs->lsock = inet_connect(display, SOCK_STREAM); + vs->lsock = inet_connect(display, true, NULL); if (-1 == vs->lsock) { g_free(vs->display); vs->display = NULL; -- cgit v1.1