Skip to content

OpenSIPS 3.6 Genesys fork sync with latest stable 3.6 upstream - #151

Open
benceszigeti wants to merge 272 commits into
3.6-genesysfrom
GCVCALLP-3136
Open

OpenSIPS 3.6 Genesys fork sync with latest stable 3.6 upstream#151
benceszigeti wants to merge 272 commits into
3.6-genesysfrom
GCVCALLP-3136

Conversation

@benceszigeti

Copy link
Copy Markdown
Collaborator

No description provided.

opensips-github and others added 30 commits February 8, 2026 00:51
reset dialog when it has been terminated - this prevents being accessed
after the dialog was deleted.

(cherry picked from commit ee74356)
Reset the `tmp.s` pointer when assigning it to a structure, to avoid
freeing it when the `tmp` is reused.

Many thanks to Andrey F(@kertor) for reporting it and
Nick Altmann(@nikbyte) for fixing it.

Close OpenSIPS#3808

(cherry picked from commit 5595a92)
Fix the edge-case with async cURL where it re-uses an existing TCP
connection.  Here, the @connect variable holds a 0 value, thus the
transfer runs in blocking mode unless we relax the condition.

Patch provided by Nuno Almeida from Five9.

(cherry picked from commit aad6b85)
(cherry picked from commit 1cb16e0)
(cherry picked from commit c58e3af)
(cherry picked from commit 3cc28d1)
except for Debian 13, which is new package and cannot run with libpcre3
The reason is that librkafka depends on libcurl4-openssl-dev, which
conflicts with libcurl4-gnutls-dev

(cherry picked from commit 7d9aadc)
Please enter the commit message for your changes. Lines starting
bogdan-iancu and others added 19 commits July 16, 2026 10:57
…docs

cfgutils: fix async sleep()/usleep() doc examples
(cherry picked from commit 2c8760d)
this ensures that the dialog does not disapear while signaling
operations are being performed.

Many thanks to Nuno Almeida from Five9 for reporting this issue and
his extensively testing to confirm the fix.

(cherry picked from commit 9f9b26b)
Many thanks to Mike Johnston (@LCEbay) for reporting it!

Close: OpenSIPS#4069
(cherry picked from commit d1ddd10)
…ains

Multiple virtual TLS domains can be defined on a single socket via
match_sip_domain (SNI), each with distinct require_cert and verify_cert
settings. However, these domain-specific verification rules were
never applied to the connection during the TLS handshake, leaving only
the socket's default settings enforced.

This commit adds SSL_set_verify to the SNI callbacks for both OpenSSL
and WolfSSL to ensure the correct domain-specific rules are applied.

(cherry picked from commit 5526637)
Many thanks to @baevga for reporting it.

Close: OpenSIPS#4117
(cherry picked from commit 3a78e5a)
- updated core function names and examples to match OpenSIPS 4.0
- synchronized all functions with core_cmds.c
(cherry picked from commit 77236ff521e2a8a5d1ed08edc9ab9d67ed0a6c5a)
…penSIPS#3820)

During sockets_reload, all processes receive an IPC RPC to run
rpc_socket_reload_proc(). Non-dynamic (worker) processes close their
copy of each dynamic socket and then call receive_fd() on the shared
sock_mgm_unix[0] socketpair to get a fresh fd from the mgm process.

Because sock_mgm_unix[0] is shared across all workers and SOCK_STREAM
delivers bytes in order (not per-message), concurrent receive_fd()
calls race: worker A can consume the fd response intended for worker B.
When this happens, worker B receives worker A's fd response, which
references a socket already in worker B's listener list.  The
sock_listadd() macro then corrupts the linked list into a circular
loop (si->next == si), causing push_sock2list() to spin at 100% CPU
indefinitely.

Add a sock_mgm_reload_lock that serializes the entire
send-IPC-to-mgm + receive-fd sequence for worker processes.  Dynamic
(mgm) processes are excluded from this lock because they create
sockets directly via sock_mgm_add_listener() and never call
receive_fd(); including them would deadlock since the worker holding
the lock blocks on receive_fd() waiting for the mgm to process
rpc_sockets_send().

Fixes: OpenSIPS#3789
(cherry picked from commit 9f2990c)
Avoid calling SSL_set_fd() and SSL_shutdown() after TCP lifetime cleanup
has invalidated the connection fd.

Thanks to @mstocco for reporting issue!

Close: OpenSIPS#4124
Do not use the reply status code as a request method when deciding
whether SDP is provisional. This prevents re-INVITE pings from sending
stale SDP after sequential offer/answer updates.

Thanks to rwilkinson87 for reporting issue! Close OpenSIPS#4123

(cherry picked from commit ac1bdc9)
Many thanks to Nick Altmann for spotting this

(cherry picked from commit 4bd55a2)
@codacy-production

Copy link
Copy Markdown

Not up to standards ⛔

🔴 Issues 3 critical

Alerts:
⚠ 3 issues (≤ 0 issues of at least minor severity)

Results:
3 new issues

Category Results
Security 3 critical

View in Codacy

🟢 Metrics 380 complexity

Metric Results
Complexity 380

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.