Merge "Emulator: fix adbd qemu pipe partial write" am: ae607e149b

am: 4cc3354fb7

* commit '4cc3354fb75363cc8107162f338bc3872c22550c':
  Emulator: fix adbd qemu pipe partial write
This commit is contained in:
bohu 2016-03-02 01:55:44 +00:00 committed by android-build-merger
commit 32e55d70c4

View file

@ -225,7 +225,7 @@ static void qemu_socket_thread(void* arg) {
static const char _ok_resp[] = "ok";
const int port = (int) (uintptr_t) arg;
int res, fd;
int fd;
char tmp[256];
char con_name[32];
@ -251,19 +251,19 @@ static void qemu_socket_thread(void* arg) {
*/
/* Send the 'accept' request. */
res = adb_write(fd, _accept_req, strlen(_accept_req));
if ((size_t)res == strlen(_accept_req)) {
if (WriteFdExactly(fd, _accept_req, strlen(_accept_req))) {
/* Wait for the response. In the response we expect 'ok' on success,
* or 'ko' on failure. */
res = adb_read(fd, tmp, sizeof(tmp));
if (res != 2 || memcmp(tmp, _ok_resp, 2)) {
if (!ReadFdExactly(fd, tmp, 2) || memcmp(tmp, _ok_resp, 2)) {
D("Accepting ADB host connection has failed.");
adb_close(fd);
} else {
/* Host is connected. Register the transport, and start the
* exchange. */
register_socket_transport(fd, "host", port, 1);
adb_write(fd, _start_req, strlen(_start_req));
if (!WriteFdExactly(fd, _start_req, strlen(_start_req))) {
adb_close(fd);
}
}
/* Prepare for accepting of the next ADB host connection. */