diff options
| author | 2012-04-07 09:19:18 +0000 | |
|---|---|---|
| committer | 2012-04-07 09:19:18 +0000 | |
| commit | c6153bae281a4a86b89bad97f15dbcc6e1f92ed2 (patch) | |
| tree | b263e840ef35d6caa77086fb3a8d9f70fe3d40bb /src/kvilib/net/KviSSL.cpp | |
| parent | Update ukrainian translation, thanks igorko (diff) | |
| download | KVIrc-c6153bae281a4a86b89bad97f15dbcc6e1f92ed2.tar.gz KVIrc-c6153bae281a4a86b89bad97f15dbcc6e1f92ed2.tar.bz2 KVIrc-c6153bae281a4a86b89bad97f15dbcc6e1f92ed2.zip | |
always avoid sigpipe on osx, not only on shutdown
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@6123 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/kvilib/net/KviSSL.cpp')
| -rw-r--r-- | src/kvilib/net/KviSSL.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/kvilib/net/KviSSL.cpp b/src/kvilib/net/KviSSL.cpp index c140e1c13..bde752b95 100644 --- a/src/kvilib/net/KviSSL.cpp +++ b/src/kvilib/net/KviSSL.cpp @@ -44,6 +44,10 @@ #include <signal.h> #endif +#ifdef COMPILE_ON_MAC + #include <sys/socket.h> +#endif + static bool g_bSSLInitialized = false; static KviMutex * g_pSSLMutex = 0; @@ -312,10 +316,7 @@ void KviSSL::shutdown() //avoid to die on a SIGPIPE if the connection has close (SSL_shutdown can call send()) //see bug #440 - #if defined(COMPILE_ON_MAC) - SSL_set_quiet_shutdown(m_pSSL, 1); - SSL_shutdown(m_pSSL); - #elif !(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)) + #if !(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)) // ignore SIGPIPE signal( SIGPIPE, SIG_IGN ); // At least attempt to shutdown the connection gracefully @@ -375,8 +376,11 @@ bool KviSSL::initSocket(kvi_socket_t fd) m_pSSL = SSL_new(m_pSSLCtx); if(!m_pSSL)return false; if(!SSL_set_fd(m_pSSL,fd))return false; +#ifdef COMPILE_ON_MAC + int set = 1; + setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int)); +#endif return true; - } static int cb(char *buf, int size, int, void *u) |
