From a232d8e060566fdcaaaa89eebc493fba0c0423b2 Mon Sep 17 00:00:00 2001 From: James Golovich <james@gnuinter.net> Date: Fri, 27 Feb 2004 06:15:49 +0000 Subject: [PATCH] Move ast_get_group from res_parking.c to channel.c git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2263 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channel.c | 33 +++++++++++++++++++++++++++++++++ include/asterisk/channel.h | 2 ++ include/asterisk/parking.h | 2 -- res/res_parking.c | 34 ---------------------------------- 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/channel.c b/channel.c index b05ea75896..e4a572af35 100755 --- a/channel.c +++ b/channel.c @@ -2496,3 +2496,36 @@ int ast_tonepair(struct ast_channel *chan, int freq1, int freq2, int duration, i return 0; } +unsigned int ast_get_group(char *s) +{ + char *copy; + char *piece; + char *c=NULL; + int start=0, finish=0,x; + unsigned int group = 0; + copy = ast_strdupa(s); + if (!copy) { + ast_log(LOG_ERROR, "Out of memory\n"); + return 0; + } + c = copy; + + while((piece = strsep(&c, ","))) { + if (sscanf(piece, "%d-%d", &start, &finish) == 2) { + /* Range */ + } else if (sscanf(piece, "%d", &start)) { + /* Just one */ + finish = start; + } else { + ast_log(LOG_ERROR, "Syntax error parsing '%s' at '%s'. Using '0'\n", s,piece); + return 0; + } + for (x=start;x<=finish;x++) { + if ((x > 31) || (x < 0)) { + ast_log(LOG_WARNING, "Ignoring invalid group %d\n", x); + } else + group |= (1 << x); + } + } + return group; +} diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index 71043ea7c0..24699a7d97 100755 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -843,6 +843,8 @@ static inline int ast_select(int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds, c->blocking = -1; \ } } +extern unsigned int ast_get_group(char *s); + #if defined(__cplusplus) || defined(c_plusplus) } #endif diff --git a/include/asterisk/parking.h b/include/asterisk/parking.h index 7851536962..4b98595928 100755 --- a/include/asterisk/parking.h +++ b/include/asterisk/parking.h @@ -48,8 +48,6 @@ extern char *ast_pickup_ext(void); extern int ast_bridge_call(struct ast_channel *chan, struct ast_channel *peer, int allowredirect_in, int allowredirect_out, int allowdisconnect); -extern unsigned int ast_get_group(char *s); - extern int ast_pickup_call(struct ast_channel *chan); diff --git a/res/res_parking.c b/res/res_parking.c index 5c80498226..2f54ee0480 100755 --- a/res/res_parking.c +++ b/res/res_parking.c @@ -749,40 +749,6 @@ int ast_pickup_call(struct ast_channel *chan) return res; } -unsigned int ast_get_group(char *s) -{ - char *copy; - char *piece; - char *c=NULL; - int start=0, finish=0,x; - unsigned int group = 0; - copy = ast_strdupa(s); - if (!copy) { - ast_log(LOG_ERROR, "Out of memory\n"); - return 0; - } - c = copy; - - while((piece = strsep(&c, ","))) { - if (sscanf(piece, "%d-%d", &start, &finish) == 2) { - /* Range */ - } else if (sscanf(piece, "%d", &start)) { - /* Just one */ - finish = start; - } else { - ast_log(LOG_ERROR, "Syntax error parsing '%s' at '%s'. Using '0'\n", s,piece); - return 0; - } - for (x=start;x<=finish;x++) { - if ((x > 31) || (x < 0)) { - ast_log(LOG_WARNING, "Ignoring invalid group %d\n", x); - } else - group |= (1 << x); - } - } - return group; -} - int unload_module(void) { STANDARD_HANGUP_LOCALUSERS; -- GitLab