我有一个开放的TCP连接,并使用for循环从中读取,如下所示
for {
// tx.Text is of type textproto.Conn
// the underlying connection is stored in tx.Conn
l, err := tx.Text.Reader.ReadLine()
// do stuff with the text line ...
}
现在,我想像这样将连接升级到TLS(TlsConf包含已加载的证书tls.LoadX509KeyPair)
tx.Conn = tls.Server(tx.Conn, tx.Server.Conf.TlsConf)
tx.Text = textproto.NewConn(tx.Conn)
当我这样做时,当服务器尝试握手时,我在客户端上遇到了分段错误。我执行一个SMTP服务器,并正与测试它swaks使用-tls标志。Swaks的终端输出如下
-> STARTTLS
<- 220 Start TLS
Segmentation fault: 11
由于swaks是经过测试的工具,并且可以与我以前使用过的nodeJS SMTP实现一起使用,因此我不怀疑该错误是在客户端。
我做错了什么或缺少了什么?
PS:当从现有的不安全连接启动TLS连接时,究竟发生了什么?客户端是在其他端口上建立新连接还是重新使用该连接?
相关分类