Skip to content

pjsip_find_msg: Log warning if Content-Length field not found#3960

Merged
nanangizz merged 1 commit intopjsip:masterfrom
pespin:pespin/pr
May 20, 2024
Merged

pjsip_find_msg: Log warning if Content-Length field not found#3960
nanangizz merged 1 commit intopjsip:masterfrom
pespin:pespin/pr

Conversation

@pespin
Copy link
Copy Markdown
Contributor

@pespin pespin commented May 14, 2024

The pjsip_find_msg() is used when in TCP to find the message boundaries in the stream. For that, it uses the Content-Length field, which is only mandatory in SIP TCP according to spec. Since this function is used only in TCP transport, that's totally fine.
However, a SIP test written in TTCN-3 was recently sending a message without Content-Length field (because there was no body at all in the message). That made Asterisk discard the message without any kind of feedback, as if it was a black hole.
Write down some log line explaining the user that a Content-Length value is expected.

The pjsip_find_msg() is used when in TCP to find the message boundaries
in the stream. For that, it uses the Content-Length field, which is only
mandatory in SIP TCP according to spec. Since this function is used only
in TCP transport, that's totally fine.
However, a SIP test written in TTCN-3 was recently sending a message
without Content-Length field (because there was no body at all in the
message). That made Asterisk discard the message without any kind of
feedback, as if it was a black hole.
Write down some log line explaining the user that a Content-Length value
is expected.
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 14, 2024

CLA assistant check
All committers have signed the CLA.

@trengginas trengginas requested review from nanangizz and sauwming May 17, 2024 13:34
@trengginas
Copy link
Copy Markdown
Member

Right, incoming message without Content-Length: header will be dropped without any information, and the tp_drop_data_cb() is not called either. Users should be notified either from the log or via the callback.

@pespin
Copy link
Copy Markdown
Contributor Author

pespin commented May 17, 2024

@trengginas what you suggest is done in my other PR (#3961). I still think it's fine to merge this PR as it is now, so that logging provides the exact reason of the failure.

@nanangizz nanangizz merged commit 7394b1e into pjsip:master May 20, 2024
dshamaev-intermedia added a commit to intermedia-net/pjproject that referenced this pull request Jun 12, 2024
* Add missing openssl SECLEVEL=0 support (pjsip#3890)

Previous SECLEVEL support allowed for levels 1-5.
However, openssl defines levels 0-5. [1]

Recent openssl versions (3.0+) have moved previous
popular ciphers/key lengths (i.e. RSA1024withSHA1)
into level 0, so it is now a reasonable choice to use.

Add support for level 0.

[1] https://www.openssl.org/docs/man3.2/man3/SSL_CTX_set_security_level.html

* Enable Late Offer Answer Mode (LOAM) feature in the pjsua (pjsip#3869)

* Fix warnings for 32-bit compiler and misc fixes. (pjsip#3896)

* Add some missing unlocks (pjsip#3893)

* Prevent race condition in DTLS media stop (pjsip#3901)

* Fix data race reported by ThreadSanitizer in caching pool (pjsip#3897)

* Fixed Metal renderer memory leak (pjsip#3909)

* Fixed DTLS clock stoppage race (pjsip#3905)

* Improve IP address change IPv4 <-> IPv6 (pjsip#3910)

* pjsua_acc: Fix warnings for comparison between ‘pjsua_nat64_opt’ and ‘enum pjsua_ipv6_use’ (pjsip#3915)

* Fix to ext_fmts accessed out of stack scope. (pjsip#3916)

* Add check in siprtp sample app for inactive audio media (pjsip#3927)

* Add function to initialize MediaFormat audio & video (pjsip#3925)

* Fixed incorrect SDP buffer length calculation (pjsip#3924)

* Support Push Notification in iOS sample app (pjsip#3913)

* Fixed PJSUA2 API to get/set Opus config (pjsip#3935)

* Fix bad address length check in pj_ioqueue_sendto(). (pjsip#3941)

* Fix warning of uninitialized value in fuzz-crypto (pjsip#3946)

* Print log on successful send (pjsip#3942)

* Fixed CI Mac build failure (pjsip#3947)

* Update Android JNI audio dev to use 16bit PCM only (pjsip#3945)

* Add TLS/SSL backend: Windows Schannel (pjsip#3867)

* pjsip_find_msg: Log warning if Content-Length field not found (pjsip#3960)

* Fix audiodev index (pjsip#3962)

* Fix assertion on call hangup from DTMF callback (pjsip#3970)

* Fix yaml error in github feature template (pjsip#3972)

* Fix version string in Python setup (pjsip#3976)

* Prevent pjmedia_codec_param.info.enc_ptime_denum division by zero in stream (pjsip#3975)

---------

Co-authored-by: naf <naf@sdf.org>
Co-authored-by: Goodicus <15110766+goodicus@users.noreply.github.com>
Co-authored-by: Amilcar Ubiera <chopin952@gmail.com>
Co-authored-by: Santiago De la Cruz <51337247+xhit@users.noreply.github.com>
Co-authored-by: sauwming <ming@teluu.com>
Co-authored-by: Nanang Izzuddin <nanang@teluu.com>
Co-authored-by: dshamaev-intermedia <105777082+dshamaev-intermedia@users.noreply.github.com>
Co-authored-by: CI Bot <noreply@intermedia.com>
Co-authored-by: Pau Espin Pedrol <pespin.shar@gmail.com>
Co-authored-by: Riza Sulistyo <trengginas@users.noreply.github.com>
Co-authored-by: Andreas Peldszus <andreas.peldszus@posteo.de>
BarryYin pushed a commit to BarryYin/pjproject that referenced this pull request Feb 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants