Refactor server_start() error handling

This avoids cleanup duplication.
master
Romain Vimont 6 years ago
parent 4150eedcdf
commit 64d5edce92

@ -345,32 +345,33 @@ server_start(struct server *server, const char *serial,
} }
if (!push_server(serial)) { if (!push_server(serial)) {
SDL_free(server->serial); goto error1;
return false;
} }
if (!enable_tunnel_any_port(server, params->port_range)) { if (!enable_tunnel_any_port(server, params->port_range)) {
SDL_free(server->serial); goto error1;
return false;
} }
// server will connect to our server socket // server will connect to our server socket
server->process = execute_server(server, params); server->process = execute_server(server, params);
if (server->process == PROCESS_NONE) { if (server->process == PROCESS_NONE) {
goto error2;
}
server->tunnel_enabled = true;
return true;
error2:
if (!server->tunnel_forward) { if (!server->tunnel_forward) {
close_socket(&server->server_socket); close_socket(&server->server_socket);
} }
disable_tunnel(server); disable_tunnel(server);
error1:
SDL_free(server->serial); SDL_free(server->serial);
return false; return false;
} }
server->tunnel_enabled = true;
return true;
}
bool bool
server_connect_to(struct server *server) { server_connect_to(struct server *server) {
if (!server->tunnel_forward) { if (!server->tunnel_forward) {

Loading…
Cancel
Save