From: Russell Bryant Date: Thu, 23 Aug 2007 19:21:53 +0000 (+0000) Subject: Fix func_timeout to take values in floating point so 1.5 actually means X-Git-Tag: 1.4.12~198 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e5be9cb65f78227abc24c14261c08c3943c139e0;p=thirdparty%2Fasterisk.git Fix func_timeout to take values in floating point so 1.5 actually means 1.5 seconds instead of being rounded. (closes issue #10540, reported by spendergrass, patch by me) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80539 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/funcs/func_timeout.c b/funcs/func_timeout.c index 7d9d535ea0..37b441127e 100644 --- a/funcs/func_timeout.c +++ b/funcs/func_timeout.c @@ -89,6 +89,7 @@ static int timeout_read(struct ast_channel *chan, char *cmd, char *data, static int timeout_write(struct ast_channel *chan, char *cmd, char *data, const char *value) { + float f; int x; char timestr[64]; struct tm myt; @@ -104,7 +105,10 @@ static int timeout_write(struct ast_channel *chan, char *cmd, char *data, if (!value) return -1; - x = atoi(value); + f = atof(value); + if (f < 0) + f = 1.0; + x = (int) (f * 1000); switch (*data) { case 'a':