On Mon, Jun 16, 2014 at 7:38 PM, Lavrentiev, Anton (NIH/NLM/NCBI) [C] <[email protected]> wrote: > Hello Nikos, >> Does making that change address your issue? > It's not that I cannot reissue gnutls_record_send() upon EAGAIN, it's that I > can no longer distinguish > two different write faults that I was able to, formerly: whether send() > failed to complete because of > the internal device timeout or just because send() was not able to write > everything at once. [...] > So the outer code can no longer figure out what the problem has been (there > could not have been any, actually). > The push callback cannot set up any other errnos, because only EAGAIN/EINTR > are treated specially, with > all others being de-facto fatal.
I see. So for you it is mostly the issue that GNUTLS_E_AGAIN doesn't always map to EAGAIN. My suggestions would be to communicate the failure issue using the transport_ptr (e.g., by making it a structure). Modifying gnutls to emulate the previous behavior I don't think would help you either, as there are more cases where GNUTLS_E_AGAIN doesn't directly map to EAGAIN errno. regards, Nikos _______________________________________________ Gnutls-help mailing list [email protected] http://lists.gnupg.org/mailman/listinfo/gnutls-help
