diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-08-23 01:09:49 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-08-23 01:09:49 +0000 |
commit | 1b9fcfe21b87a422831e7a8724aaa865f2d4dcdb (patch) | |
tree | 1b72c2e53b961048493d5e306b43925b098eead8 | |
parent | 610ee422c0e87aa12dbdd53149870263aa4e4fb8 (diff) |
reverse commit due to lack of disclaimer
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6367 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-x | apps/app_record.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/apps/app_record.c b/apps/app_record.c index 1d1416ac2..c5da8f910 100755 --- a/apps/app_record.c +++ b/apps/app_record.c @@ -78,8 +78,9 @@ static int record_exec(struct ast_channel *chan, void *data) int dspsilence = 0; int silence = 0; /* amount of silence to allow */ int gotsilence = 0; /* did we timeout for silence? */ - int maxduration = 0; /* max duration of recording in milliseconds */ + int maxduration = 0; /* max duration of recording */ int gottimeout = 0; /* did we timeout for maxduration exceeded? */ + time_t timeout = 0; int option_skip = 0; int option_noanswer = 0; int option_append = 0; @@ -130,8 +131,7 @@ static int record_exec(struct ast_channel *chan, void *data) if (maxstr) { if ((sscanf(maxstr, "%d", &i) == 1) && (i > -1)) - /* Convert duration to milliseconds */ - maxduration = i * 1000; + maxduration = i; else if (!ast_strlen_zero(maxstr)) ast_log(LOG_WARNING, "'%s' is not a valid maximum duration\n", maxstr); } @@ -218,18 +218,13 @@ static int record_exec(struct ast_channel *chan, void *data) if (s) { - int waitres; - - if (maxduration <= 0) - maxduration = -1; + if (maxduration > 0) + timeout = time(NULL) + (time_t)maxduration; - while ((waitres = ast_waitfor(chan, maxduration)) > -1) { - if (maxduration > 0) { - if (waitres == 0) { - gottimeout = 1; - break; - } - maxduration = waitres; + while (ast_waitfor(chan, -1) > -1) { + if (maxduration > 0 && time(NULL) > timeout) { + gottimeout = 1; + break; } f = ast_read(chan); |