TODO: improve code for large MQTT payloads

Closes #19416
This commit is contained in:
Daniel Stenberg 2025-11-09 11:45:03 +01:00
parent 92fd791f31
commit 7aa50124c2
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -180,6 +180,7 @@
21.1 Support rate-limiting
21.2 Support MQTTS
21.3 Handle network blocks
21.4 large payloads
22. TFTP
22.1 TFTP does not convert LF to CRLF for mode=netascii
@ -1270,16 +1271,24 @@
21.3 Handle network blocks
Running test suite with
`CURL_DBG_SOCK_WBLOCK=90 ./runtests.pl -a mqtt` makes several
MQTT test cases fail where they should not.
Running test suite with `CURL_DBG_SOCK_WBLOCK=90 ./runtests.pl -a mqtt` makes
several MQTT test cases fail where they should not.
21.4 large payloads
libcurl unnecessarily allocates heap memory to hold the entire payload to get
sent, when the data is already perfectly accessible where it is when
`CURLOPT_POSTFIELDS` is used. This is highly inefficient for larger payloads.
Additionally, libcurl does not support using the read callback for sending
MQTT which is yet another way to avoid having to hold large payload in
memory.
22. TFTP
22.1 TFTP does not convert LF to CRLF for mode=netascii
RFC 3617 defines that an TFTP transfer can be done using "netascii"
mode. curl does not support extracting that mode from the URL nor does it treat
RFC 3617 defines that an TFTP transfer can be done using "netascii" mode.
curl does not support extracting that mode from the URL nor does it treat
such transfers specifically. It should probably do LF to CRLF translations
for them.