"Daniel Stenberg" <dan...@haxx.se> wrote:

I would say that in all cases where we use errno in libcurl to check for success or failure, if we then fail we should store errno in data->state.os_errno. Does that sound reasonable?

Yes, this OS-error (or errno) could be useful to the caller.

That of course leads to the question: in your example case where WSAStartup() fails, is that really an errno that is returned?

WSAStartup() returns != 0 for failures. It's the closest thing to an 'errno'in
this case. It should be preserved too IMHO.

We sort of have one more level and that's the output that gets enabled in debug builds, usually controlled with the DEBUGF() macro. But that requires a rebuild and is probably not what you had in mind.

I'm okay with a rebuild. What I had in mind was some "maintainer debug".
Since there seems too many debug-combos already [1], I'm not sure how.
Maybe an env-var '$LIBCURL_DEBUG=level/mask' and code to enable this only in one #define. E.g. 'DCURLDEBUG'. The rest controlled by level or a bit-mask.

[1] Currently I've noted all these in libcurl+curl:
-DDEBUG
-DCURLDEBUG
-DDEBUG_ADDRINFO
-DDEBUGBUILD
-DCURL_MT_MALLOC_FILL, -DCURL_MT_FREE_FILL
-DCURL_LIBSSH2_DEBUG
-DDEBUG_LDAP
-DDEBUG_CONFIG
-DDPRINTF_DEBUG2
-DGTLSDEBUG

Have I missed some? It's not clear from the sources what difference
there are in e.g. 'CURLDEBUG' and DEBUGBUILD'.

--gv
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to