[Asterisk-cvs] asterisk/apps app_zapras.c,1.8,1.8.2.1
russell at lists.digium.com
russell at lists.digium.com
Thu Jul 7 11:07:16 CDT 2005
Update of /usr/cvsroot/asterisk/apps
In directory localhost.localdomain:/tmp/cvs-serv14385/apps
Modified Files:
Tag: v1-0
app_zapras.c
Log Message:
ensure buffer policy is restored after RAS is done with a channel (bug #4648)
Index: app_zapras.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_zapras.c,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -u -d -r1.8 -r1.8.2.1
--- app_zapras.c 22 Jun 2004 19:32:52 -0000 1.8
+++ app_zapras.c 7 Jul 2005 15:15:59 -0000 1.8.2.1
@@ -125,8 +125,14 @@
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) {
@@ -162,20 +168,11 @@
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;
}
}
More information about the svn-commits
mailing list