diff --git a/conn.go b/conn.go index fbc29b8..d60d7c0 100644 --- a/conn.go +++ b/conn.go @@ -613,6 +613,9 @@ func (c *Conn) handleStartTLS() { tlsConn := tls.Server(c.conn, c.server.TLSConfig) if err := tlsConn.Handshake(); err != nil { + if err == io.EOF { + return + } c.server.ErrorLog.Printf("TLS handshake error for %s: %v", c.conn.RemoteAddr(), err) c.WriteResponse(550, EnhancedCode{5, 0, 0}, "Handshake error") return diff --git a/server.go b/server.go index f9e2346..8dfb486 100644 --- a/server.go +++ b/server.go @@ -167,6 +167,9 @@ func (s *Server) handleConn(c *Conn) error { c.conn.SetWriteDeadline(time.Now().Add(d)) } if err := tlsConn.Handshake(); err != nil { + if err == io.EOF { + return nil + } s.ErrorLog.Printf("TLS handshake error for %s: %v", tlsConn.RemoteAddr(), err) return err }