CLOSESOCKETFUNCTION not always called in multi

Malcolm Matalka via curl-library <[email protected]>
Newsgroups gmane.comp.web.curl.library
Message-ID <[email protected]>
Hello, I'm debugging a bug in my program using the multi interface.  I'm still trying to work out some details but I thought maybe someone who knows the codebase better than I might just see it as obvious.

In my case, I am setting SOCKETFUNCTION, TIMERFUNCTION, and CLOSESOCKETFUNCTION because I need to manage the sockets myself (I'm integrating curl against a concurrency library in Ocaml).  Because of how the concurrency library works, instead of doing any work in those callbacks functions, I'm adding the event to a queue then processing the events after a "perform" or "action" call.

What I'm seeing is that I have a POLL_REMOVE call for a socket, but then my CLOSESOCKETFUNCTION callback is not being called.  I can see in the ktrace logs that the socket is directly being closed with "close".

I *think* this is happening due libcurl deciding the connection has timed out and some logic chooses not to execute the close callback.  But I'm not entirely sure.

Any idea how I can turn on the tracing for cf-socket.c?  I have set the global trace to 'all' but I am not seeing the logs I am looking for?

I am on FreeBSD use curl 8.11.1.

Thank you

/Malcolm
-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.