diff options
author | citats <citats@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-02-27 06:15:49 +0000 |
---|---|---|
committer | citats <citats@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-02-27 06:15:49 +0000 |
commit | f080d88eb8a7eaf5fac8898547dc309c7d75ab29 (patch) | |
tree | 1270b50ac008379ff718c225171242b923cc0eb7 | |
parent | f22f6a73db4599f715f5a15c75a7e1530cfdea43 (diff) |
Move ast_get_group from res_parking.c to channel.c
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2263 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-x | channel.c | 33 | ||||
-rwxr-xr-x | include/asterisk/channel.h | 2 | ||||
-rwxr-xr-x | include/asterisk/parking.h | 2 | ||||
-rwxr-xr-x | res/res_parking.c | 34 |
4 files changed, 35 insertions, 36 deletions
@@ -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 71043ea7c..24699a7d9 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 785153696..4b9859592 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 5c8049822..2f54ee048 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; |