Export ssl_init_once(), get rid of init_ssl_or_die(), and, in rpcapd, if
ssl_init_once() fails, use rpcapd_log() to log the error.
#endif
# ifdef HAVE_OPENSSL
#endif
# ifdef HAVE_OPENSSL
- if (uses_ssl) init_ssl_or_die(1, enable_compression);
+ if (uses_ssl) {
+ if (ssl_init_once(1, enable_compression, errbuf, PCAP_ERRBUF_SIZE) < 0)
+ {
+ rpcapd_log(LOGPRIO_ERROR, "Can't initialize SSL: %s",
+ errbuf);
+ exit(2);
+ }
+ }
// TODO: lock?
static SSL_CTX *ctx;
// TODO: lock?
static SSL_CTX *ctx;
-static int ssl_init_once(int is_server, int enable_compression, char *errbuf, size_t errbuflen)
+int ssl_init_once(int is_server, int enable_compression, char *errbuf, size_t errbuflen)
{
static int inited = 0;
if (inited) return 0;
{
static int inited = 0;
if (inited) return 0;
-void init_ssl_or_die(int is_server, int enable_compression)
-{
- char errbuf[PCAP_ERRBUF_SIZE];
-
- if (ssl_init_once(is_server, enable_compression, errbuf, sizeof errbuf) < 0)
- {
- fprintf(stderr, "%s\n", errbuf);
- exit(3);
- }
-}
-
SSL *ssl_promotion_rw(int is_server, SOCKET in, SOCKET out, char *errbuf, size_t errbuflen)
{
if (ssl_init_once(is_server, 1, errbuf, errbuflen) < 0) {
SSL *ssl_promotion_rw(int is_server, SOCKET in, SOCKET out, char *errbuf, size_t errbuflen)
{
if (ssl_init_once(is_server, 1, errbuf, errbuflen) < 0) {
-void init_ssl_or_die(int is_server, int enable_compression);
+int ssl_init_once(int is_server, int enable_compression, char *errbuf, size_t errbuflen);
SSL *ssl_promotion(int is_server, SOCKET s, char *errbuf, size_t errbuflen);
SSL *ssl_promotion_rw(int is_server, SOCKET in, SOCKET out, char *errbuf, size_t errbuflen);
int ssl_send(SSL *, char const *buffer, int size, char *errbuf, size_t errbuflen);
SSL *ssl_promotion(int is_server, SOCKET s, char *errbuf, size_t errbuflen);
SSL *ssl_promotion_rw(int is_server, SOCKET in, SOCKET out, char *errbuf, size_t errbuflen);
int ssl_send(SSL *, char const *buffer, int size, char *errbuf, size_t errbuflen);