diff options
author | Mark Spencer <markster@digium.com> | 2005-06-19 22:00:18 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2005-06-19 22:00:18 +0000 |
commit | f80df76143b60796b10c42cfed379874144aa143 (patch) | |
tree | 2bde59b310da7db7380eba6e25c797a0d5564b0e /channels | |
parent | b6ea1bcb2926f67ca350c31ec4fbec2cf9123842 (diff) |
Fix fd's when we release rtp/vrtp
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5940 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_sip.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 44bad0d5e..221402234 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -9189,10 +9189,18 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req, } /* Go ahead and free RTP port */ if (p->rtp) { + if (p->owner) { + p->owner->fds[0] = -1; + p->owner->fds[1] = -1; + } ast_rtp_destroy(p->rtp); p->rtp = NULL; } if (p->vrtp) { + if (p->owner) { + p->owner->fds[2] = -1; + p->owner->fds[3] = -1; + } ast_rtp_destroy(p->vrtp); p->vrtp = NULL; } @@ -9219,10 +9227,18 @@ static int handle_request_register(struct sip_pvt *p, struct sip_request *req, i if (res < 1) { /* Go ahead and free RTP port */ if (p->rtp) { + if (p->owner) { + p->owner->fds[0] = -1; + p->owner->fds[1] = -1; + } ast_rtp_destroy(p->rtp); p->rtp = NULL; } if (p->vrtp) { + if (p->owner) { + p->owner->fds[2] = -1; + p->owner->fds[3] = -1; + } ast_rtp_destroy(p->vrtp); p->vrtp = NULL; } |