diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2013-02-27 10:14:23 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2013-02-27 10:14:23 +0000 |
commit | 1703f7d9893e43ae31e81cb9de5b26420e2f6857 (patch) | |
tree | 5f8ab627fc3b45ff195dffb69f0fdbd834e03adf | |
parent | 0989c73839be15a18033ef0573f775dc86d39e06 (diff) |
Re #1557: backported to 1.x
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4386 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjnath/src/pjnath/turn_sock.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/pjnath/src/pjnath/turn_sock.c b/pjnath/src/pjnath/turn_sock.c index e841af2c..443954c3 100644 --- a/pjnath/src/pjnath/turn_sock.c +++ b/pjnath/src/pjnath/turn_sock.c @@ -210,6 +210,7 @@ static void destroy(pj_turn_sock *turn_sock) } if (turn_sock->active_sock) { + pj_activesock_set_user_data(turn_sock->active_sock, NULL); pj_activesock_close(turn_sock->active_sock); turn_sock->active_sock = NULL; } @@ -462,6 +463,16 @@ static pj_bool_t on_connect_complete(pj_activesock_t *asock, pj_turn_sock *turn_sock; turn_sock = (pj_turn_sock*) pj_activesock_get_user_data(asock); + if (!turn_sock) + return PJ_FALSE; + + /* TURN session may have already been destroyed here. + * See ticket #1557 (http://trac.pjsip.org/repos/ticket/1557). + */ + if (!turn_sock->sess) { + sess_fail(turn_sock, "TURN session already destroyed", status); + return PJ_FALSE; + } if (status != PJ_SUCCESS) { sess_fail(turn_sock, "TCP connect() error", status); |