Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d395852 authored by Luis Hector Chavez's avatar Luis Hector Chavez
Browse files

adb: Distinguish betwen already-connected and connection failure

This change returns a different value (-EALREADY) when a connection has
already been established, as opposed to a real connection failure (which
still returns -1).

Bug: 74411879
Test: Opened a socket, tried to adb connect to it,
      got "failed to connect to localhost:1337"

Change-Id: Ic216ddef7f28eb43ca750f9e51d068c077d54b07
parent ca10ecb3
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -974,7 +974,7 @@ int register_socket_transport(int s, const char* serial, int port, int local) {
            VLOG(TRANSPORT) << "socket transport " << transport->serial
                            << " is already in pending_list and fails to register";
            delete t;
            return -1;
            return -EALREADY;
        }
    }

@@ -983,7 +983,7 @@ int register_socket_transport(int s, const char* serial, int port, int local) {
            VLOG(TRANSPORT) << "socket transport " << transport->serial
                            << " is already in transport_list and fails to register";
            delete t;
            return -1;
            return -EALREADY;
        }
    }

+5 −1
Original line number Diff line number Diff line
@@ -101,7 +101,11 @@ void connect_device(const std::string& address, std::string* response) {
    int ret = register_socket_transport(fd, serial.c_str(), port, 0);
    if (ret < 0) {
        adb_close(fd);
        if (ret == -EALREADY) {
            *response = android::base::StringPrintf("already connected to %s", serial.c_str());
        } else {
            *response = android::base::StringPrintf("failed to connect to %s", serial.c_str());
        }
    } else {
        *response = android::base::StringPrintf("connected to %s", serial.c_str());
    }