fix bugs
This commit is contained in:
parent
9ef10b90a9
commit
9d8445735f
@ -140,13 +140,13 @@ func socks5Handle(conn net.Conn) {
|
|||||||
|
|
||||||
req, err := gosocks5.ReadRequest(conn)
|
req, err := gosocks5.ReadRequest(conn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
//log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch req.Cmd {
|
switch req.Cmd {
|
||||||
case gosocks5.CmdConnect:
|
case gosocks5.CmdConnect:
|
||||||
//log.Println("connect", req.Addr.String())
|
log.Println("connect", req.Addr.String())
|
||||||
tconn, err := Connect(req.Addr.String(), Proxy)
|
tconn, err := Connect(req.Addr.String(), Proxy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
gosocks5.NewReply(gosocks5.HostUnreachable, nil).Write(conn)
|
gosocks5.NewReply(gosocks5.HostUnreachable, nil).Write(conn)
|
||||||
|
23
ws.go
23
ws.go
@ -20,16 +20,20 @@ func NewWSConn(conn *websocket.Conn) *WSConn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (conn *WSConn) Read(b []byte) (n int, err error) {
|
func (conn *WSConn) Read(b []byte) (n int, err error) {
|
||||||
_, b, err = conn.ReadMessage()
|
_, r, err := conn.NextReader()
|
||||||
n = len(b)
|
if err != nil {
|
||||||
|
|
||||||
return
|
return
|
||||||
|
}
|
||||||
|
return r.Read(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (conn *WSConn) Write(b []byte) (n int, err error) {
|
func (conn *WSConn) Write(b []byte) (n int, err error) {
|
||||||
n = len(b)
|
w, err := conn.NextWriter(websocket.BinaryMessage)
|
||||||
err = conn.WriteMessage(websocket.BinaryMessage, b)
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
}
|
||||||
|
defer w.Close()
|
||||||
|
return w.Write(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (conn *WSConn) SetDeadline(t time.Time) error {
|
func (conn *WSConn) SetDeadline(t time.Time) error {
|
||||||
@ -58,9 +62,12 @@ func (s *WSServer) handle(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|
||||||
c := NewWSConn(conn)
|
c := gosocks5.ServerConn(NewWSConn(conn), serverConfig)
|
||||||
|
if err := c.Handleshake(); err != nil {
|
||||||
socks5Handle(gosocks5.ServerConn(c, serverConfig))
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
socks5Handle(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *WSServer) ListenAndServe() error {
|
func (s *WSServer) ListenAndServe() error {
|
||||||
|
Loading…
Reference in New Issue
Block a user