aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcitats <citats@f38db490-d61c-443f-a65b-d21fe96a405b>2004-02-27 06:15:49 +0000
committercitats <citats@f38db490-d61c-443f-a65b-d21fe96a405b>2004-02-27 06:15:49 +0000
commitf080d88eb8a7eaf5fac8898547dc309c7d75ab29 (patch)
tree1270b50ac008379ff718c225171242b923cc0eb7
parentf22f6a73db4599f715f5a15c75a7e1530cfdea43 (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-xchannel.c33
-rwxr-xr-xinclude/asterisk/channel.h2
-rwxr-xr-xinclude/asterisk/parking.h2
-rwxr-xr-xres/res_parking.c34
4 files changed, 35 insertions, 36 deletions
diff --git a/channel.c b/channel.c
index b05ea7589..e4a572af3 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 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;