[Asterisk-Dev] [PATCH] app_agi.c
Steven Critchfield
critch at basesys.com
Fri Oct 17 08:47:00 MST 2003
Please ignore second segment of the patch below. fs is not valid and
will probably segfault.
On Fri, 2003-10-17 at 06:02, Steven Critchfield wrote:
> Below is a patch we are running on our production machine. The first
> segment fixes a change that made offset recording fail by truncating all
> files before we could seek.
>
> The second segment fixes a return case where we do not properly close
> the stream on the random error.
>
> Next on the list is to track down why we are receiving the random error.
> [200 result=51 (randomerror) endpos=1868960 ]
>
>
>
> pbx:/usr/src/asterisk# cvs diff -u apps/app_agi.c
> Index: apps/app_agi.c
> ===================================================================
> RCS file: /usr/cvsroot/asterisk/apps/app_agi.c,v
> retrieving revision 1.12
> diff -u -r1.12 app_agi.c
> --- apps/app_agi.c 8 Sep 2003 16:48:06 -0000 1.12
> +++ apps/app_agi.c 17 Oct 2003 11:20:55 -0000
> @@ -515,7 +515,7 @@
> if (!res)
> res = ast_waitstream(chan, argv[4]);
> if (!res) {
> - fs = ast_writefile(argv[2], argv[3], NULL, O_CREAT | O_WRONLY, 0, 0644);
> + fs = ast_writefile(argv[2], argv[3], NULL, O_CREAT | O_WRONLY | (sample_offset ? O_APPEND : 0) , 0, 0644);
> if (!fs) {
> res = -1;
> fdprintf(agi->fd, "200 result=%d (writefile)\n", res);
> @@ -589,8 +589,10 @@
> }
> fdprintf(agi->fd, "200 result=%d (timeout) endpos=%ld\n", res, sample_offset);
> ast_closestream(fs);
> - } else
> + } else {
> fdprintf(agi->fd, "200 result=%d (randomerror) endpos=%ld\n", res, sample_offset);
> + ast_closestream(fs);
> + }
>
> if (silence > 0) {
> res = ast_set_read_format(chan, rfmt);
--
Steven Critchfield <critch at basesys.com>
More information about the asterisk-dev
mailing list