[OpenSIPS-Devel] [OpenSIPS/opensips] 4b6097: dialog: Minor rewrite of get_timeout_dlgs()

Liviu Chircu noreply at github.com
Tue Jun 22 12:15:46 EST 2021


  Branch: refs/heads/3.1
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 4b6097de408ab93682ee719764f12aba3d5b552c
      https://github.com/OpenSIPS/opensips/commit/4b6097de408ab93682ee719764f12aba3d5b552c
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2021-06-22 (Tue, 22 Jun 2021)

  Changed paths:
    M modules/dialog/dlg_req_within.h
    M modules/dialog/dlg_timer.c

  Log Message:
  -----------
  dialog: Minor rewrite of get_timeout_dlgs()

    * re-define the ping state values, as they are NOT meant to be
        combined or checked as a bitmask (they are mutually exclusive)

    * eliminate copy-pasted list detachment blocks (merge into one "if")

(cherry picked from commit d1e2fdc5f44b1950d65ddcb4c97fc0d2d93d49e6)


  Commit: ae1ffaf892f6a018bb1639d39665fffbe6bb3a1e
      https://github.com/OpenSIPS/opensips/commit/ae1ffaf892f6a018bb1639d39665fffbe6bb3a1e
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2021-06-22 (Tue, 22 Jun 2021)

  Changed paths:
    M modules/dialog/dlg_timer.c

  Log Message:
  -----------
  dialog pinging: Avoid nested pinging transactions

This fixes a rare condition that could occur whenever the
OPTIONS/Re-INVITE pinging interval was lower than the SIP transaction
timeout (typically 15 seconds, so a pinging interval of < 15 seconds).

In this case, a new pinging transaction would be continuously started,
before the previous one would get the chance to complete, e.g. with 408
Timeout for a dead SIP endpoint.

Fixes #2535


Compare: https://github.com/OpenSIPS/opensips/compare/0b4d365e11da...ae1ffaf892f6



More information about the Devel mailing list