commit - 5787f144b72abc64a01c267bba5468d4db22b1ff
commit + c90cf61f8fabcb90ab2a56309fb0697b71314698
blob - c64ac8c8af19d7f9fe23434e886760a7f0955c01
blob + 95282373aa5fe50714181c3824064e1c35071d36
--- client/client.go
+++ client/client.go
return nil, err
}
+ return connect(conn)
+}
+
+// NewConn wraps an existing connection, for example one opened with tls.Dial
+func NewConn(conn io.ReadWriteCloser) (*Client, error) {
+ return connect(textproto.NewConn(conn))
+}
+
+func connect(conn *textproto.Conn) (*Client, error) {
_, msg, err := conn.ReadCodeLine(200)
if err != nil {
return nil, err