[Asterisk-cvs] asterisk channel.c,1.77,1.78

citats at lists.digium.com citats at lists.digium.com
Fri Feb 27 01:26:32 CST 2004


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv11426

Modified Files:
	channel.c 
Log Message:
Move ast_get_group from res_parking.c to channel.c 


Index: channel.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channel.c,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- channel.c	25 Feb 2004 16:01:56 -0000	1.77
+++ channel.c	27 Feb 2004 06:15:49 -0000	1.78
@@ -2496,3 +2496,36 @@
 	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;
+}




More information about the svn-commits mailing list