Remove the "adb reverse" tunnel immediately
As soon as we accepted a connection, we can remove the "adb reverse" tunnel.
This commit is contained in:
parent
3b06e7d500
commit
e1749a0c09
3 changed files with 9 additions and 3 deletions
|
@ -311,7 +311,7 @@ SDL_bool scrcpy(const char *serial, Uint16 local_port, Uint16 max_size, Uint32 b
|
||||||
// to reduce startup time, we could be tempted to init other stuff before blocking here
|
// to reduce startup time, we could be tempted to init other stuff before blocking here
|
||||||
// but we should not block after SDL_Init since it handles the signals (Ctrl+C) in its
|
// but we should not block after SDL_Init since it handles the signals (Ctrl+C) in its
|
||||||
// event loop: blocking could lead to deadlock
|
// event loop: blocking could lead to deadlock
|
||||||
TCPsocket device_socket = server_connect_to(&server);
|
TCPsocket device_socket = server_connect_to(&server, serial);
|
||||||
if (!device_socket) {
|
if (!device_socket) {
|
||||||
server_stop(&server, serial);
|
server_stop(&server, serial);
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
|
|
|
@ -99,12 +99,18 @@ SDL_bool server_start(struct server *server, const char *serial, Uint16 local_po
|
||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
TCPsocket server_connect_to(struct server *server) {
|
TCPsocket server_connect_to(struct server *server, const char *serial) {
|
||||||
SDL_assert(server->server_socket);
|
SDL_assert(server->server_socket);
|
||||||
server->device_socket = server_socket_accept(server->server_socket);
|
server->device_socket = server_socket_accept(server->server_socket);
|
||||||
|
|
||||||
// we don't need the server socket anymore
|
// we don't need the server socket anymore
|
||||||
SDLNet_TCP_Close(server->server_socket);
|
SDLNet_TCP_Close(server->server_socket);
|
||||||
server->server_socket = NULL;
|
server->server_socket = NULL;
|
||||||
|
|
||||||
|
// we don't need the adb tunnel anymore
|
||||||
|
disable_tunnel(serial); // ignore failure
|
||||||
|
server->adb_reverse_enabled = SDL_FALSE;
|
||||||
|
|
||||||
return server->device_socket;
|
return server->device_socket;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ SDL_bool server_start(struct server *server, const char *serial, Uint16 local_po
|
||||||
Uint16 max_size, Uint32 bit_rate);
|
Uint16 max_size, Uint32 bit_rate);
|
||||||
|
|
||||||
// block until the communication with the server is established
|
// block until the communication with the server is established
|
||||||
TCPsocket server_connect_to(struct server *server);
|
TCPsocket server_connect_to(struct server *server, const char *serial);
|
||||||
|
|
||||||
// disconnect and kill the server process
|
// disconnect and kill the server process
|
||||||
void server_stop(struct server *server, const char *serial);
|
void server_stop(struct server *server, const char *serial);
|
||||||
|
|
Loading…
Reference in a new issue