Documentation Home

5.4.37 mysql_get_ssl_session_data()

void * 
mysql_get_ssl_session_data(MYSQL *, 
                           unsigned int n_ticket, 
                           unsigned int *out_len)

描述

mysql_get_ssl_session_data() 通过从已建立的会话中提取票证并在连接时提交该票证,允许 SSL 会话重用,前提是服务器在其运行时缓存中仍有会话。此函数返回会话数据字符串并提供字符串的长度 out_len(如果非 NULL)。否则,它返回nullptr以指示预期的会话数据是不可能的或连接不在正确的状态。为防止泄漏,您必须 mysql_free_ssl_session_data() 在应用程序使用完指针后通过调用释放会话数据句柄。

数据格式是会话的 PEM 序列化。仅当会话从先前会话中提取到同一端口上的同一mysqld服务器时,才可以重用该会话。此外,新会话的 SSL 版本必须与原始会话的 SSL 版本匹配。

n_ticket指定要返回的一张或多张票。对于 TLS 1.3,服务器默认为新会话生成两张会话票证,在重用会话时生成一张。对于 TLS 1.2,服务器默认生成一张会话票证。在决定服务器上 SSL 会话缓存的大小时应考虑这一点。

笔记

当前,仅返回最后传输的会话。具体来说,除 0 之外的任何内容 n_ticket都会导致错误。OpenSSL 版本 1.0.2 施加了此限制。

避免多次重复使用 SSL 会话。

返回值

没有任何。

错误

没有任何。