SIGPIPE from gnutls_bye on closed socket, error handling

Jos Kuijpers jos at kuijpersvof.nl
Sat Jan 8 12:22:32 CET 2011


Folks,

Since a week, I am having serious problems with the GnuTLS library
concerning the gnutls_bye():

I am writing a binding between gnutls and ObjFW
(https://www.webkeks.org/objfw) => https://webkeks.org/hg/objgnutls/
When an attempt to reading from the socket failed, and results in a closed
socket (because of a malicious client, or lost network connection, etc),
the close method of the object gets called. This method then will call
gnutls_bye, socket close and gnutls_deinit.

There is the problem. Gnutls_bye sends data. When the socket is broken, and
gnutls_bye is called, my program DIES: SIGPIPE.
I am very disappointed about this. Catching signals in a library is
not-done.

Is there a way to get proper error handling done in this case? Can this be
added? The library is unstable now, because a closed socket exits the
server,
which is a very bad thing.


With kind regards,

Jos







More information about the Gnutls-devel mailing list