Handshake functions in Mongoose TLS assumed data was being fully sent
after calling mg_io_send(). This was in fact the case with the usual 1460-bytes MSS, but not with the default 536-bytes MSS.
This PR removes all those calls from individual handshake functions, actual send is done at the main handshake function, keeping track of the amount of data sent, and so handling small MTUs/MSSs and possible MG_IO_WAITs when running over a socket layer.
We prepend current path to the URI, so a tilde could not be the first
char in a path. However, the same would happen for double dots, and
since we're already checking for that, it doesn't hurt to be on the safe
side for future's sake.
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:pico-sdk/pico-2-w-picosdk-freertos-lwip], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:pico-sdk/pico-rndis-dashboard], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:pico-sdk/pico-w-picosdk-freertos-lwip], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:renesas/ek-ra6m4-make-baremetal-builtin], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:stm32/nucleo-f746zg-make-baremetal-builtin-cmsis_driver], ) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:stm32/nucleo-f746zg-make-baremetal-builtin-cmsis_driver], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:stm32/nucleo-f746zg-make-freertos-tcp], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:tutorials/http/device-dashboard/microchip/same54-xpro], ) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:tutorials/http/device-dashboard/microchip/same54-xpro], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:pico-sdk/pico-2-w-picosdk-freertos-lwip], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:pico-sdk/pico-rndis-dashboard], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:pico-sdk/pico-w-picosdk-freertos-lwip], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:renesas/ek-ra6m4-make-baremetal-builtin], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:stm32/nucleo-f746zg-make-baremetal-builtin-cmsis_driver], ) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:stm32/nucleo-f746zg-make-baremetal-builtin-cmsis_driver], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:stm32/nucleo-f746zg-make-freertos-tcp], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:tutorials/http/device-dashboard/microchip/same54-xpro], ) (push) Has been cancelled
Full build and test / ${{ matrix.example.path }} ${{ matrix.ssl }} (map[path:tutorials/http/device-dashboard/microchip/same54-xpro], -DMG_TLS=MG_TLS_BUILTIN) (push) Has been cancelled
fixes#3119
lwIP does not export ip_mreq by default, it requires enabling support for IGMP by setting LWIP_IGMP, with the associated extra stuff. Mongoose will print an error if mg_multicast_add() is called with no multicast support in lwIP.