acl  3.5.3.0
acl::polarssl_io类 参考

#include <polarssl_io.hpp>

+ 类 acl::polarssl_io 继承关系图:
+ acl::polarssl_io 的协作图:

Public 成员函数

 polarssl_io (polarssl_conf &conf, bool server_side, bool nblock=false)
 
void destroy (void)
 
bool handshake (void)
 
bool check_peer (void)
 
- Public 成员函数 继承自 acl::sslbase_io
 sslbase_io (sslbase_conf &conf, bool server_side, bool nblock=false)
 
virtual ~sslbase_io (void)
 
void set_non_blocking (bool yes)
 
bool is_non_blocking (void) const
 
bool handshake_ok (void)
 
void set_sni_host (const char *host)
 
- Public 成员函数 继承自 acl::stream_hook
 stream_hook (void)
 

Protected 成员函数

 ~polarssl_io (void)
 
bool open (ACL_VSTREAM *s)
 
bool on_close (bool alive)
 
int read (void *buf, size_t len)
 
int send (const void *buf, size_t len)
 
- Protected 成员函数 继承自 acl::stream_hook
virtual ~stream_hook (void)
 
- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

额外继承的成员函数

- Protected 属性 继承自 acl::sslbase_io
sslbase_confbase_conf_
 
bool server_side_
 
bool nblock_
 
bool handshake_ok_
 
atomic_longrefers_
 
ACL_VSTREAMstream_
 
string sni_host_
 

详细描述

stream/aio_stream 流对象底层 IO 处理过程的处理类,该类对象中的读写的过程将会替代 stream/aio_stream 流对象中 默认的底层 IO 过程;该类对象必须是动态创建的(即为堆对象), stream/aio_stream 流对象通过调用本类对象的 destroy() 方法释放本类对象

在文件 polarssl_io.hpp16 行定义.

构造及析构函数说明

◆ polarssl_io()

acl::polarssl_io::polarssl_io ( polarssl_conf conf,
bool  server_side,
bool  nblock = false 
)

构造函数

参数
conf{polarssl_conf&} 对每一个 SSL 连接进行配置的类对象
server_side{bool} 是否为服务端模式,因为客户端模式与服务端 模式的握手方法不同,所以通过此参数来进行区分
nblock{bool} 是否为非阻塞模式

◆ ~polarssl_io()

acl::polarssl_io::~polarssl_io ( void  )
protected

成员函数说明

◆ check_peer()

bool acl::polarssl_io::check_peer ( void  )

检查对方证书是否有效(一般不必调用此函数)

返回
{bool}

◆ destroy()

void acl::polarssl_io::destroy ( void  )
virtual

@override stream_hook 销毁 SSL IO 对象

重载 acl::stream_hook .

◆ handshake()

bool acl::polarssl_io::handshake ( void  )
virtual

@override sslbase_io 调用此方法进行 SSL 握手,在非阻塞 IO 模式下该函数需要与 handshake_ok() 函数组合使用来判断 SSL 握手是否成功

返回
{bool} 1、返回 false 表示握手失败,需要关闭连接; 2、当返回 true 时: 2.1、如果为阻塞 IO 模式则表示 SSL 握手成功 2.2、在非阻塞 IO 模式下仅代表本次握手过程中 IO 是成功的,还需要调用 handshake_ok() 函数判断 SSL 握手是否成功

实现了 acl::sslbase_io.

◆ on_close()

bool acl::polarssl_io::on_close ( bool  alive)
protectedvirtual

重载 acl::stream_hook .

◆ open()

bool acl::polarssl_io::open ( ACL_VSTREAM s)
protectedvirtual

实现了 acl::stream_hook.

◆ read()

int acl::polarssl_io::read ( void *  buf,
size_t  len 
)
protectedvirtual

实现了 acl::stream_hook.

◆ send()

int acl::polarssl_io::send ( const void *  buf,
size_t  len 
)
protectedvirtual

实现了 acl::stream_hook.


该类的文档由以下文件生成: