mirror of
https://github.com/nadoo/glider.git
synced 2025-02-23 17:35:40 +08:00
socks5: fix #148
This commit is contained in:
parent
fda05d5d3d
commit
9c3f2f600a
@ -46,12 +46,14 @@ func (s *HTTP) Serve(cc net.Conn) {
|
|||||||
defer cc.Close()
|
defer cc.Close()
|
||||||
|
|
||||||
var c *conn.Conn
|
var c *conn.Conn
|
||||||
switch ccc := cc.(type) {
|
switch cc := cc.(type) {
|
||||||
case *net.TCPConn:
|
|
||||||
ccc.SetKeepAlive(true)
|
|
||||||
c = conn.NewConn(ccc)
|
|
||||||
case *conn.Conn:
|
case *conn.Conn:
|
||||||
c = ccc
|
c = cc
|
||||||
|
case *net.TCPConn:
|
||||||
|
cc.SetKeepAlive(true)
|
||||||
|
c = conn.NewConn(cc)
|
||||||
|
default:
|
||||||
|
c = conn.NewConn(cc)
|
||||||
}
|
}
|
||||||
|
|
||||||
req, err := parseRequest(c.Reader())
|
req, err := parseRequest(c.Reader())
|
||||||
|
@ -88,7 +88,6 @@ func (m *Mixed) Serve(c net.Conn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cc := conn.NewConn(c)
|
cc := conn.NewConn(c)
|
||||||
|
|
||||||
head, err := cc.Peek(1)
|
head, err := cc.Peek(1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// log.F("[mixed] socks5 peek error: %s", err)
|
// log.F("[mixed] socks5 peek error: %s", err)
|
||||||
|
@ -103,16 +103,11 @@ func (s *Socks5) ListenAndServeTCP() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Serve serves a connection.
|
// Serve serves a connection.
|
||||||
func (s *Socks5) Serve(cc net.Conn) {
|
func (s *Socks5) Serve(c net.Conn) {
|
||||||
defer cc.Close()
|
defer c.Close()
|
||||||
|
|
||||||
var c *conn.Conn
|
if c, ok := c.(*net.TCPConn); ok {
|
||||||
switch ccc := cc.(type) {
|
c.SetKeepAlive(true)
|
||||||
case *net.TCPConn:
|
|
||||||
ccc.SetKeepAlive(true)
|
|
||||||
c = conn.NewConn(ccc)
|
|
||||||
case *conn.Conn:
|
|
||||||
c = ccc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tgt, err := s.handshake(c)
|
tgt, err := s.handshake(c)
|
||||||
|
Loading…
Reference in New Issue
Block a user