From: Russell Bryant Date: Fri, 26 Jun 2009 21:16:39 +0000 (+0000) Subject: Don't fast forward past the end of a message. X-Git-Tag: 1.4.26~34 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fe7923abfc9a938e58ffafe56ebcfc865c0f89da;p=thirdparty%2Fasterisk.git Don't fast forward past the end of a message. This is nice change for users of the voicemail application. If someone gets a little carried away with fast forwarding through a message, they can easily get to the end and accidentally exit the voicemail application by hitting the fast forward key during the following prompt. This adds some safety by not allowing a fast forward past the end of a message. (closes issue #14554) Reported by: lacoursj Patches: 21761.patch uploaded by lacoursj (license 707) Tested by: lacoursj git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@203785 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/file.c b/main/file.c index eaee042204..f39268fe37 100644 --- a/main/file.c +++ b/main/file.c @@ -1236,7 +1236,14 @@ static int waitstream_core(struct ast_channel *c, const char *breakon, } else { res = fr->subclass; if (strchr(forward,res)) { + int eoftest; ast_stream_fastforward(c->stream, skip_ms); + eoftest = fgetc(c->stream->f); + if (feof(c->stream->f)) { + ast_stream_rewind(c->stream, skip_ms); + } else { + ungetc(eoftest, c->stream->f); + } } else if (strchr(rewind,res)) { ast_stream_rewind(c->stream, skip_ms); } else if (strchr(breakon, res)) {