Skip to content
Snippets Groups Projects
Commit 8b19bdba authored by Kevin P. Fleming's avatar Kevin P. Fleming
Browse files

ensure buffer policy is restored after RAS is done with a channel (bug #4589, slightly simpler fix)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6037 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 9403a6e0
Branches
Tags
No related merge requests found
......@@ -130,8 +130,14 @@ static void run_ras(struct ast_channel *chan, char *args)
int status;
int res;
int signalled = 0;
struct zt_bufferinfo bi;
struct zt_bufferinfo savebi;
int x;
res = ioctl(chan->fds[0], ZT_GET_BUFINFO, &savebi);
if(res) {
ast_log(LOG_WARNING, "Unable to check buffer policy on channel %s\n", chan->name);
return;
}
pid = spawn_ras(chan, args);
if (pid < 0) {
......@@ -167,20 +173,11 @@ static void run_ras(struct ast_channel *chan, char *args)
x = 1;
ioctl(chan->fds[0], ZT_AUDIOMODE, &x);
/* Double check buffering too */
res = ioctl(chan->fds[0], ZT_GET_BUFINFO, &bi);
if (!res) {
/* XXX This is ZAP_BLOCKSIZE XXX */
bi.bufsize = 204;
bi.txbufpolicy = ZT_POLICY_IMMEDIATE;
bi.rxbufpolicy = ZT_POLICY_IMMEDIATE;
bi.numbufs = 4;
res = ioctl(chan->fds[0], ZT_SET_BUFINFO, &bi);
if (res < 0) {
ast_log(LOG_WARNING, "Unable to set buffer policy on channel %s\n", chan->name);
}
} else
ast_log(LOG_WARNING, "Unable to check buffer policy on channel %s\n", chan->name);
/* Restore saved values */
res = ioctl(chan->fds[0], ZT_SET_BUFINFO, &savebi);
if (res < 0) {
ast_log(LOG_WARNING, "Unable to set buffer policy on channel %s\n", chan->name);
}
break;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment