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

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


  Branch: refs/heads/2.4
  Home:   https://github.com/OpenSIPS/opensips
  Commit: d1e2fdc5f44b1950d65ddcb4c97fc0d2d93d49e6
      https://github.com/OpenSIPS/opensips/commit/d1e2fdc5f44b1950d65ddcb4c97fc0d2d93d49e6
  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")


  Commit: 3576e66dd839323887950f19e387d35112c611b0
      https://github.com/OpenSIPS/opensips/commit/3576e66dd839323887950f19e387d35112c611b0
  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/a1b44444c746...3576e66dd839



More information about the Devel mailing list