00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef EVENT2_BUFFEREVENT_SSL_H_INCLUDED_
00027 #define EVENT2_BUFFEREVENT_SSL_H_INCLUDED_
00028
00033 #include <event2/visibility.h>
00034 #include <event2/event-config.h>
00035 #include <event2/bufferevent.h>
00036 #include <event2/util.h>
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00042
00043 struct ssl_st;
00044
00049 enum bufferevent_ssl_state {
00050 BUFFEREVENT_SSL_OPEN = 0,
00051 BUFFEREVENT_SSL_CONNECTING = 1,
00052 BUFFEREVENT_SSL_ACCEPTING = 2
00053 };
00054
00055 #if defined(EVENT__HAVE_OPENSSL) || defined(EVENT_IN_DOXYGEN_)
00056
00067 EVENT2_EXPORT_SYMBOL
00068 struct bufferevent *
00069 bufferevent_openssl_filter_new(struct event_base *base,
00070 struct bufferevent *underlying,
00071 struct ssl_st *ssl,
00072 enum bufferevent_ssl_state state,
00073 int options);
00074
00085 EVENT2_EXPORT_SYMBOL
00086 struct bufferevent *
00087 bufferevent_openssl_socket_new(struct event_base *base,
00088 evutil_socket_t fd,
00089 struct ssl_st *ssl,
00090 enum bufferevent_ssl_state state,
00091 int options);
00092
00109 EVENT2_EXPORT_SYMBOL
00110 int bufferevent_openssl_get_allow_dirty_shutdown(struct bufferevent *bev);
00111 EVENT2_EXPORT_SYMBOL
00112 void bufferevent_openssl_set_allow_dirty_shutdown(struct bufferevent *bev,
00113 int allow_dirty_shutdown);
00114
00116 EVENT2_EXPORT_SYMBOL
00117 struct ssl_st *
00118 bufferevent_openssl_get_ssl(struct bufferevent *bufev);
00119
00121 EVENT2_EXPORT_SYMBOL
00122 int bufferevent_ssl_renegotiate(struct bufferevent *bev);
00123
00125 EVENT2_EXPORT_SYMBOL
00126 unsigned long bufferevent_get_openssl_error(struct bufferevent *bev);
00127
00128 #endif
00129
00130 #ifdef __cplusplus
00131 }
00132 #endif
00133
00134 #endif