Branch: refs/heads/master
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 78e7361292d855be06db45fb039f54d6bfa6156d
      
https://github.com/OpenSIPS/opensips/commit/78e7361292d855be06db45fb039f54d6bfa6156d
  Author: mattia <[email protected]>
  Date:   2026-04-08 (Wed, 08 Apr 2026)

  Changed paths:
    M modules/drouting/drouting.c

  Log Message:
  -----------
  drouting: fix random GW selection when all weights are zero

When weight_sum is 0 (all remaining gateways have weight 0), the code
was always selecting the first gateway (i = first) instead of randomly
picking one among the equally-weighted candidates.

Restore uniform random selection by computing:
  i = first + (unsigned int)((size - first) * ((double)rand() / 
((double)RAND_MAX + 1.0)));

The +1.0 on RAND_MAX prevents the index from going out of bounds (i.e.
when rand() == RAND_MAX the result stays strictly below size-first).

Closes: https://github.com/OpenSIPS/opensips/issues/3863


  Commit: 61ff46b0058245fa96565c2f386eae676efb540d
      
https://github.com/OpenSIPS/opensips/commit/61ff46b0058245fa96565c2f386eae676efb540d
  Author: Bogdan Andrei IANCU <[email protected]>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M modules/drouting/drouting.c

  Log Message:
  -----------
  Merge pull request #3867 from wlp2s0/fix/drouting-weight-zero-random-selection

drouting: fix random GW selection when all weights are zero


Compare: 
https://github.com/OpenSIPS/opensips/compare/f1fc0aa4062a...61ff46b00582

To unsubscribe from these emails, change your notification settings at 
https://github.com/OpenSIPS/opensips/settings/notifications

_______________________________________________
Devel mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel

Reply via email to