aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBo Hu <bohu@google.com>2015-03-09 22:58:26 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-03-09 22:58:27 +0000
commit9671c7d916c1312ade5af45f5a6650b9c5e43407 (patch)
tree70595caa5a15286d038bacd26ae9cd1be973ca55
parent21bd5fcd5ae4432a3d4056e4aa208178b780b84d (diff)
parent6b75b11a182fc4ebb1ab6484d414967d8fa5f8d4 (diff)
downloadqemu-9671c7d916c1312ade5af45f5a6650b9c5e43407.tar.gz
Merge "Blocking SIGALRM while using connect syscall to connect emulator to adb" into studio-1.2-releasegradle_1.2.3gradle_1.2.2gradle_1.2.1gradle_1.2.0-beta1gradle_1.2.0
-rw-r--r--android/qemu-setup.c2
-rw-r--r--android/sockets.c12
2 files changed, 12 insertions, 2 deletions
diff --git a/android/qemu-setup.c b/android/qemu-setup.c
index d72889886a..7985246d7e 100644
--- a/android/qemu-setup.c
+++ b/android/qemu-setup.c
@@ -363,7 +363,7 @@ void android_emulation_setup( void )
*/
int s = socket_loopback_client(adb_host_port, SOCKET_STREAM);
if (s < 0) {
- D("can't connect to ADB server: %s", errno_str );
+ D("can't connect to ADB server: %s (errno = %d)", errno_str, errno );
} else {
char tmp[32];
char header[5];
diff --git a/android/sockets.c b/android/sockets.c
index db8747052b..6e80bcf8f7 100644
--- a/android/sockets.c
+++ b/android/sockets.c
@@ -1010,6 +1010,16 @@ socket_recvfrom(int fd, void* buf, int len, SockAddress* from)
}
int
+socket_connect_no_sigalrm(int socket, const struct sockaddr *address, socklen_t address_len)
+{
+ int ret;
+ BEGIN_NOSIGALRM
+ ret = connect(socket, address, address_len);
+ END_NOSIGALRM
+ return ret;
+}
+
+int
socket_connect( int fd, const SockAddress* address )
{
sockaddr_storage addr;
@@ -1018,7 +1028,7 @@ socket_connect( int fd, const SockAddress* address )
if (sock_address_to_bsd(address, &addr, &addrlen) < 0)
return -1;
- SOCKET_CALL(connect(fd,addr.sa,addrlen));
+ SOCKET_CALL(socket_connect_no_sigalrm(fd,addr.sa,addrlen));
}
int