1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-07 02:42:49 +03:00

Fix openssl sigpipe correctly, move signal handler to openssl.c

This commit is contained in:
Vladislav Vaintroub
2016-05-31 14:24:55 +02:00
parent 7080d9614f
commit 7496789f10
3 changed files with 24 additions and 18 deletions

View File

@@ -3472,13 +3472,6 @@ BOOL CALLBACK win_init_once(
}
#endif
#if defined(SIGPIPE) && !defined(_WIN32) && defined(WITH_OPENSSL)
static void ma_sigpipe_handler()
{
return;
}
#endif
int STDCALL mysql_server_init(int argc __attribute__((unused)),
char **argv __attribute__((unused)),
char **groups __attribute__((unused)))
@@ -3489,17 +3482,6 @@ int STDCALL mysql_server_init(int argc __attribute__((unused)),
return ret? 0: 1;
#else
static pthread_once_t init_once = PTHREAD_ONCE_INIT;
#if defined(SIGPIPE) && defined(WITH_OPENSSL)
struct sigaction old_handler, new_handler={NULL};
if (!sigaction (SIGPIPE, NULL, &old_handler) &&
!old_handler.sa_handler)
{
new_handler.sa_handler= ma_sigpipe_handler;
new_handler.sa_flags= 0;
if (!sigemptyset(&new_handler.sa_mask))
sigaction(SIGPIPE, &new_handler, NULL);
}
#endif
return pthread_once(&init_once, mysql_once_init);
#endif
}