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

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


  Branch: refs/heads/3.2
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 84f0c1e6b5837f1c8678e3168377d39919e3fde3
      https://github.com/OpenSIPS/opensips/commit/84f0c1e6b5837f1c8678e3168377d39919e3fde3
  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)
(cherry picked from commit 4b6097de408ab93682ee719764f12aba3d5b552c)


  Commit: ec854715e136aa629450f9e99e621dc9a6409b1b
      https://github.com/OpenSIPS/opensips/commit/ec854715e136aa629450f9e99e621dc9a6409b1b
  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

(cherry picked from commit ae1ffaf892f6a018bb1639d39665fffbe6bb3a1e)


Compare: https://github.com/OpenSIPS/opensips/compare/6c78fdd7e9db...ec854715e136



More information about the Devel mailing list