我想为多年前编写的旧聊天应用程序添加 ssl 支持。我在 OpenSSL 和 LibreSSL 上做了很多阅读,我决定尝试一个新的 libtls API。我认为开发人员在这方面做得非常出色。我发现它非常易于使用 - 在需要时几乎不需要更改我现有的代码。但这是我现在需要弄清楚的一件事:
过去,我使用 select() 来监视套接字和 recv() 来读取数据。这很容易,因为这两个函数都在文件描述符上工作。
现在,使用 libtls,函数 tls_read() 需要一个 tls 上下文作为第一个参数。这意味着每次我准备好读取描述符时,我都需要搜索客户端列表以获取适当的 tls 上下文。这并不难,但也许有人知道更好的解决方案?我将感谢所有评论和代码示例。