summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-06-23 01:10:17 +0000
committerBenny Prijono <bennylp@teluu.com>2007-06-23 01:10:17 +0000
commitb6171c4a923a593539f6d5e424332bb9e03556cc (patch)
tree6f1538273e011242dcb5c207a2ce9e9233d1b420 /pjsip
parent3c21d79e0e457e9c650958ae4f073e467671bcc5 (diff)
Fixed memory and possibly handle leak when UDP transport is restarted
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1386 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip/sip_transport_udp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pjsip/src/pjsip/sip_transport_udp.c b/pjsip/src/pjsip/sip_transport_udp.c
index 223c6659..43d671da 100644
--- a/pjsip/src/pjsip/sip_transport_udp.c
+++ b/pjsip/src/pjsip/sip_transport_udp.c
@@ -541,6 +541,10 @@ static pj_status_t register_to_ioqueue(struct udp_transport *tp)
pj_ioqueue_t *ioqueue;
pj_ioqueue_callback ioqueue_cb;
+ /* Ignore if already registered */
+ if (tp->key != NULL)
+ return PJ_SUCCESS;
+
/* Register to ioqueue. */
ioqueue = pjsip_endpt_get_ioqueue(tp->base.endpt);
pj_memset(&ioqueue_cb, 0, sizeof(ioqueue_cb));
@@ -831,6 +835,7 @@ PJ_DEF(pj_status_t) pjsip_udp_transport_pause(pjsip_transport *transport,
}
}
tp->sock = PJ_INVALID_SOCKET;
+
}
PJ_LOG(4,(tp->base.obj_name, "SIP UDP transport paused"));