文档主页
MySQL 8.4 C API 开发人员指南
下载本手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


MySQL 8.4 C API 开发人员指南  /  ...  /  mysql_get_ssl_session_data()

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(如果非空)中提供字符串的长度。否则,它返回 nullptr 表示预期的会话数据不可用或连接不在正确的状态。为了防止泄漏,您必须在应用程序完成指针使用后,通过调用 mysql_free_ssl_session_data() 来释放会话数据句柄。

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

n_ticket 指定要返回的哪个票据或票据。对于 TLS 1.3,服务器默认情况下为新会话生成两个会话票据,并在重用会话时生成一个票据。对于 TLS 1.2,服务器默认情况下生成一个会话票据。在确定服务器上 SSL 会话缓存的大小方面,应考虑这一点。

注意

目前,只返回最后一次传输的会话。具体来说,对于 n_ticket 来说,除了 0 之外的任何值都会导致错误。OpenSSL 版本 1.0.2 强制执行此限制。

避免多次重用 SSL 会话。

返回值

无。

错误

无。