Add early conn interface
This commit is contained in:
@@ -26,6 +26,8 @@ const (
|
||||
|
||||
var CRLF = []byte{'\r', '\n'}
|
||||
|
||||
var _ N.EarlyConn = (*ClientConn)(nil)
|
||||
|
||||
type ClientConn struct {
|
||||
N.ExtendedConn
|
||||
key [KeyLength]byte
|
||||
@@ -41,6 +43,10 @@ func NewClientConn(conn net.Conn, key [KeyLength]byte, destination M.Socksaddr)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *ClientConn) NeedHandshake() bool {
|
||||
return !c.headerWritten
|
||||
}
|
||||
|
||||
func (c *ClientConn) Write(p []byte) (n int, err error) {
|
||||
if c.headerWritten {
|
||||
return c.ExtendedConn.Write(p)
|
||||
@@ -101,6 +107,10 @@ func NewClientPacketConn(conn net.Conn, key [KeyLength]byte) *ClientPacketConn {
|
||||
}
|
||||
}
|
||||
|
||||
func (c *ClientPacketConn) NeedHandshake() bool {
|
||||
return !c.headerWritten
|
||||
}
|
||||
|
||||
func (c *ClientPacketConn) ReadPacket(buffer *buf.Buffer) (M.Socksaddr, error) {
|
||||
return ReadPacket(c.Conn, buffer)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user