unread
Hi internals,
PR #22159 adds three libcurl callback options to ext/curl for 8.6:
- CURLOPT_SOCKOPTFUNCTION
- CURLOPT_OPENSOCKETFUNCTION
- CURLOPT_CLOSESOCKETFUNCTION
https://github.com/php/php-src/pull/22159
Motivation: give PHP users a native way to do SSRF filtering (validate the
resolved peer IP before connect) and low-level socket tuning
(SO_BINDTODEVICE, SO_MARK, keepalive, TCP_NODELAY...) without dropping to
ext/ffi.
Because the C signatures use a raw curl_socket_t fd, the callbacks bridge
to ext/sockets and exchange real Socket objects, fully usable with
socket_set_option(), socket_close(), etc.
Thanks to @devnexen who helped me to improve the dependencies management
and the low level integration.
CI is fully green (Linux, macOS, FreeBSD, Windows, ASAN).
Feedback welcome on any matter.
Thanks,
Xavier Leune