tcptls.c: Don't close TCP client file descriptors more than once
ASTERISK-28430 #close Change-Id: Ib556b0a0c95cca939e956886214ec8d828d89606
This commit is contained in:
parent
7ced144867
commit
a6faa53af0
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue