int best_rate = 0;
uint32_t i = 0;
uint32_t count = 0;
+ uint32_t first_channel = 0;
if (group_id) {
ftdm_group_find(group_id, &group);
i = 0;
} else if (direction == FTDM_RR_DOWN || direction == FTDM_RR_UP) {
i = rr_next(group->last_used_index, 0, group->chan_count - 1, direction);
+ first_channel = i;
} else {
i = group->chan_count-1;
}
group->last_used_index = i;
}
i = rr_next(i, 0, group->chan_count - 1, direction);
+ if (first_channel == i) {
+ break;
+ }
} else {
if (i == 0) {
break;
int best_rate = 0;
uint32_t i = 0;
uint32_t count = 0;
+ uint32_t first_channel = 0;
*ftdmchan = NULL;
i = 1;
} else if (direction == FTDM_RR_DOWN || direction == FTDM_RR_UP) {
i = rr_next(span->last_used_index, 1, span->chan_count, direction);
+ first_channel = i;
} else {
i = span->chan_count;
}
if (i > span->chan_count) {
break;
}
- } else if (direction == FTDM_RR_DOWN || direction == FTDM_RR_UP) {
- if (i == span->last_used_index) {
- break;
- }
} else {
if (i == 0) {
break;
span->last_used_index = i;
}
i = rr_next(i, 1, span->chan_count, direction);
+ if (first_channel == i) {
+ break;
+ }
} else {
i--;
}