Fix ast_app_dtget() time unit inconsistency.

Note: Noone calls ast_app_dtget() with the timeout parameter of zero so
the bad code normally will never get executed.

* Fix unnecessary floating point division in func_timeout.c
timeout_write() when all other values are integers.

(closes issue ASTERISK-16817)
Reported by: Dmitry Andrianov
........

Merged revisions 352029 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@352035 65c4cc65-6c06-0410-ace0-fbb531ad65f3
10-digiumphones
Richard Mudgett 13 years ago
parent ac7a6a2acb
commit dd82e9676e

@ -171,7 +171,7 @@ static int timeout_write(struct ast_channel *chan, const char *cmd, char *data,
case 'r':
case 'R':
if (chan->pbx) {
chan->pbx->rtimeoutms = when.tv_sec * 1000 + when.tv_usec / 1000.0;
chan->pbx->rtimeoutms = when.tv_sec * 1000 + when.tv_usec / 1000;
ast_verb(3, "Response timeout set to %.3f\n", chan->pbx->rtimeoutms / 1000.0);
}
break;
@ -179,7 +179,7 @@ static int timeout_write(struct ast_channel *chan, const char *cmd, char *data,
case 'd':
case 'D':
if (chan->pbx) {
chan->pbx->dtimeoutms = when.tv_sec * 1000 + when.tv_usec / 1000.0;
chan->pbx->dtimeoutms = when.tv_sec * 1000 + when.tv_usec / 1000;
ast_verb(3, "Digit timeout set to %.3f\n", chan->pbx->dtimeoutms / 1000.0);
}
break;

@ -108,7 +108,7 @@ static AST_RWLIST_HEAD_STATIC(groups, ast_group_info);
* \param collect
* \param size
* \param maxlen
* \param timeout timeout in seconds
* \param timeout timeout in milliseconds
*
* \return 0 if extension does not exist, 1 if extension exists
*/
@ -121,10 +121,12 @@ int ast_app_dtget(struct ast_channel *chan, const char *context, char *collect,
maxlen = size;
}
if (!timeout && chan->pbx) {
timeout = chan->pbx->dtimeoutms / 1000.0;
} else if (!timeout) {
timeout = 5;
if (!timeout) {
if (chan->pbx && chan->pbx->dtimeoutms) {
timeout = chan->pbx->dtimeoutms;
} else {
timeout = 5000;
}
}
if ((ts = ast_get_indication_tone(chan->zone, "dial"))) {

Loading…
Cancel
Save