@ -948,9 +948,9 @@ int ast_app_group_set_channel(struct ast_channel *chan, const char *data)
len + = strlen ( category ) + 1 ;
AST_RWLIST_WRLOCK ( & groups ) ;
AST_RWLIST_TRAVERSE_SAFE_BEGIN ( & groups , gi , list) {
AST_RWLIST_TRAVERSE_SAFE_BEGIN ( & groups , gi , group_ list) {
if ( ( gi - > chan = = chan ) & & ( ( ast_strlen_zero ( category ) & & ast_strlen_zero ( gi - > category ) ) | | ( ! ast_strlen_zero ( gi - > category ) & & ! strcasecmp ( gi - > category , category ) ) ) ) {
AST_RWLIST_REMOVE_CURRENT ( list) ;
AST_RWLIST_REMOVE_CURRENT ( group_ list) ;
free ( gi ) ;
break ;
}
@ -967,7 +967,7 @@ int ast_app_group_set_channel(struct ast_channel *chan, const char *data)
gi - > category = ( char * ) gi + sizeof ( * gi ) + strlen ( group ) + 1 ;
strcpy ( gi - > category , category ) ;
}
AST_RWLIST_INSERT_TAIL ( & groups , gi , list) ;
AST_RWLIST_INSERT_TAIL ( & groups , gi , group_ list) ;
} else {
res = - 1 ;
}
@ -986,7 +986,7 @@ int ast_app_group_get_count(const char *group, const char *category)
return 0 ;
AST_RWLIST_RDLOCK ( & groups ) ;
AST_RWLIST_TRAVERSE ( & groups , gi , list) {
AST_RWLIST_TRAVERSE ( & groups , gi , group_ list) {
if ( ! strcasecmp ( gi - > group , group ) & & ( ast_strlen_zero ( category ) | | ( ! ast_strlen_zero ( gi - > category ) & & ! strcasecmp ( gi - > category , category ) ) ) )
count + + ;
}
@ -1009,7 +1009,7 @@ int ast_app_group_match_get_count(const char *groupmatch, const char *category)
return 0 ;
AST_RWLIST_RDLOCK ( & groups ) ;
AST_RWLIST_TRAVERSE ( & groups , gi , list) {
AST_RWLIST_TRAVERSE ( & groups , gi , group_ list) {
if ( ! regexec ( & regexbuf , gi - > group , 0 , NULL , 0 ) & & ( ast_strlen_zero ( category ) | | ( ! ast_strlen_zero ( gi - > category ) & & ! strcasecmp ( gi - > category , category ) ) ) )
count + + ;
}
@ -1025,11 +1025,11 @@ int ast_app_group_update(struct ast_channel *old, struct ast_channel *new)
struct ast_group_info * gi = NULL ;
AST_RWLIST_WRLOCK ( & groups ) ;
AST_RWLIST_TRAVERSE_SAFE_BEGIN ( & groups , gi , list) {
AST_RWLIST_TRAVERSE_SAFE_BEGIN ( & groups , gi , group_ list) {
if ( gi - > chan = = old ) {
gi - > chan = new ;
} else if ( gi - > chan = = new ) {
AST_RWLIST_REMOVE_CURRENT ( list) ;
AST_RWLIST_REMOVE_CURRENT ( group_ list) ;
ast_free ( gi ) ;
}
}
@ -1044,9 +1044,9 @@ int ast_app_group_discard(struct ast_channel *chan)
struct ast_group_info * gi = NULL ;
AST_RWLIST_WRLOCK ( & groups ) ;
AST_RWLIST_TRAVERSE_SAFE_BEGIN ( & groups , gi , list) {
AST_RWLIST_TRAVERSE_SAFE_BEGIN ( & groups , gi , group_ list) {
if ( gi - > chan = = chan ) {
AST_RWLIST_REMOVE_CURRENT ( list) ;
AST_RWLIST_REMOVE_CURRENT ( group_ list) ;
ast_free ( gi ) ;
}
}