[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Nikos Mavroyanopoulos
Subject: errno
Date: Mon Jun 18 10:12:02 2001

While testing gnutls against other TLS implementations I got the following 
  While in the handshake procedure, the client might send a warning (if he's 
polite enough) 
and terminate immediately, if he thinks that he cannot communicate with us. 
However we may be in a step where we are transmiting 2 messages (eg. server 
hello and 
certificate), thus we will get a SIGPIPE and terminate. 
 Of course this is unnacceptable for a library. I though of some solutions:
   1. Document it and request to install SIG_IGN for the SIGPIPE signal before 
      (that way we detect the error and behave as expected)   
   2. Check for pending alerts between reading two messages.
        This solution gives one more problem. We must
        check for pending alerts in a way that we'll not block.
        Thus we'll have to use MSG_DONTWAIT and then check errno
        (but what happens when multithreaded?)
      [this will not work if the peer closes the connection without an alert]
   3. Install the signal handler while doing handshake(), and restore
      it when leaving (I don't really like it)

Which one do you like? Any other options?

Nikos Mavroyanopoulos

reply via email to

[Prev in Thread] Current Thread [Next in Thread]