aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authordvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2011-05-20 21:40:19 +0000
committerdvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2011-05-20 21:40:19 +0000
commit86342904e49513c4e08f0305e057f4d6ccb59046 (patch)
treea5a5cf74f939d98ca51125d85888655e451297e0 /main
parentdc8ba0f195626af4e936941f4c670e318eb32177 (diff)
Merged revisions 320338 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r320338 | dvossel | 2011-05-20 16:39:36 -0500 (Fri, 20 May 2011) | 14 lines Merged revisions 320271 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ........ r320271 | dvossel | 2011-05-20 16:24:48 -0500 (Fri, 20 May 2011) | 8 lines Fixes issue with ast_tcptls_server_start failing on second attempt to bind. (closes issue #19289) Reported by: wdoekes Patches: issue19289_delay_old_address_setting_tcptls.patch uploaded by wdoekes (license 717) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@320340 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/tcptls.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/main/tcptls.c b/main/tcptls.c
index 135f638f5..8159a49f0 100644
--- a/main/tcptls.c
+++ b/main/tcptls.c
@@ -417,7 +417,8 @@ struct ast_tcptls_session_instance *ast_tcptls_client_create(struct ast_tcptls_s
return NULL;
}
- ast_sockaddr_copy(&desc->old_address, &desc->remote_address);
+ /* If we return early, there is no connection */
+ ast_sockaddr_setnull(&desc->old_address);
if (desc->accept_fd != -1)
close(desc->accept_fd);
@@ -454,6 +455,8 @@ struct ast_tcptls_session_instance *ast_tcptls_client_create(struct ast_tcptls_s
ast_sockaddr_copy(&tcptls_session->remote_address,
&desc->remote_address);
+ /* Set current info */
+ ast_sockaddr_copy(&desc->old_address, &desc->remote_address);
return tcptls_session;
error:
@@ -475,7 +478,8 @@ void ast_tcptls_server_start(struct ast_tcptls_session_args *desc)
return;
}
- ast_sockaddr_copy(&desc->old_address, &desc->local_address);
+ /* If we return early, there is no one listening */
+ ast_sockaddr_setnull(&desc->old_address);
/* Shutdown a running server if there is one */
if (desc->master != AST_PTHREADT_NULL) {
@@ -521,6 +525,10 @@ void ast_tcptls_server_start(struct ast_tcptls_session_args *desc)
strerror(errno));
goto error;
}
+
+ /* Set current info */
+ ast_sockaddr_copy(&desc->old_address, &desc->local_address);
+
return;
error: