sum = 0;
/* Compute the sum of weights for the priority prio */
for (i = j; i < n && srvaddr[i].priority == prio; i++)
- {
- sum += srvaddr[i].weight;
- }
+ {
+ sum += srvaddr[i].weight;
+ }
/* If there is no more nodes with priority prio, get next prio */
if (i == j && srvaddr[i].priority > prio)
- {
- prio = srvaddr[i].priority;
- }
+ {
+ prio = srvaddr[i].priority;
+ }
else
- {
- while (sum > 0)
- {
- wrand = random_int_range (0, sum + 1);
- for (i = j; i < n && srvaddr[i].weight < wrand; i++)
- {
- wrand -= srvaddr[i].weight;
- }
- assert (i < n);
- assert (srvaddr[i].priority == prio);
- dns_srv_switch (srvaddr, j, i);
- sum -= srvaddr[j].weight;
- j++;
- }
- /* Those remaining addresses with weight 0 */
- for (i = j; i < n && srvaddr[i].priority == prio; i++, j++);
- }
+ {
+ while (sum > 0)
+ {
+ wrand = random_int_range (0, sum + 1);
+ for (i = j; i < n && srvaddr[i].weight < wrand; i++)
+ {
+ wrand -= srvaddr[i].weight;
+ }
+ assert (i < n);
+ assert (srvaddr[i].priority == prio);
+ dns_srv_switch (srvaddr, j, i);
+ sum -= srvaddr[j].weight;
+ j++;
+ }
+ /* Those remaining addresses with weight 0 */
+ for (i = j; i < n && srvaddr[i].priority == prio; i++, j++);
+ }
}
}