Idź do dokumentacji tego pliku. 1 #ifndef __EKG_IRC_SSL_H
2 #define __EKG_IRC_SSL_H
4 #include <ekg2-config.h>
6 #ifdef IRC_HAVE_OPENSSL
7 # define IRC_HAVE_SSL 1
13 # include <openssl/ssl.h>
14 # include <openssl/err.h>
16 extern SSL_CTX *ircSslCtx;
18 # define SSL_SESSION SSL *
20 # define SSL_INIT(session) !(session = SSL_new(ircSslCtx))
22 # define SSL_HELLO(session) SSL_connect(session)
23 # define SSL_BYE(session) SSL_shutdown(session)
24 # define SSL_DEINIT(session) SSL_free(session)
25 # define SSL_GLOBAL_INIT() SSL_library_init(); ircSslCtx = SSL_CTX_new(SSLv23_client_method())
26 # define SSL_GLOBAL_DEINIT() SSL_CTX_free(ircSslCtx)
27 # define SSL_ERROR(retcode) ERR_error_string(retcode, NULL)
28 # define SSL_E_AGAIN(ret) ((ret == SSL_ERROR_WANT_READ || ret == SSL_ERROR_WANT_WRITE))
30 # define SSL_SEND(session, str, len) SSL_write(session, str, len)
31 # define SSL_RECV(session, buf, size) SSL_read(session, buf, size)
33 # define SSL_SET_FD(session, fd) SSL_set_fd(session, fd)
34 # define SSL_GET_FD(session, fd) fd
35 # define SSL_WRITE_DIRECTION(session, ret) (ret != SSL_ERROR_WANT_READ)