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


MySQL 9.0 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 以外的任何值都会导致错误。OpenSSL 版本 1.0.2 施加了此限制。

避免将 SSL 会话重用超过一次。

返回值

无。

错误

无。