Skip to content
Snippets Groups Projects
Commit fa023cbf authored by Sean Bright's avatar Sean Bright Committed by Joshua Colp
Browse files

tcptls.c: Don't close TCP client file descriptors more than once

ASTERISK-28430 #close

Change-Id: Ib556b0a0c95cca939e956886214ec8d828d89606
parent 61116d5d
No related branches found
No related tags found
3 merge requests!138Merge branch asterisk-20.3.0 into devel properly,!123Merge asterisk '20.3.0' into devel,!118Draft: manager: AOC-S support for AOCMessage
......@@ -608,13 +608,8 @@ struct ast_tcptls_session_instance *ast_tcptls_client_start(struct ast_tcptls_se
return handle_tcptls_connection(tcptls_session);
client_start_error:
if (desc) {
close(desc->accept_fd);
desc->accept_fd = -1;
}
ao2_ref(tcptls_session, -1);
return NULL;
}
struct ast_tcptls_session_instance *ast_tcptls_client_create(struct ast_tcptls_session_args *desc)
......@@ -631,10 +626,6 @@ struct ast_tcptls_session_instance *ast_tcptls_client_create(struct ast_tcptls_s
/* If we return early, there is no connection */
ast_sockaddr_setnull(&desc->old_address);
if (desc->accept_fd != -1) {
close(desc->accept_fd);
}
fd = desc->accept_fd = socket(ast_sockaddr_is_ipv6(&desc->remote_address) ?
AF_INET6 : AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (desc->accept_fd < 0) {
......@@ -672,6 +663,9 @@ struct ast_tcptls_session_instance *ast_tcptls_client_create(struct ast_tcptls_s
goto error;
}
/* From here on out, the iostream owns the accept_fd and it will take
* care of closing it when the iostream is closed */
tcptls_session->parent = desc;
tcptls_session->parent->worker_fn = NULL;
ast_sockaddr_copy(&tcptls_session->remote_address,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment