This commit is contained in:
rui.zheng 2015-10-30 14:21:35 +08:00
parent d3fe7c74eb
commit 4d159f7cfa
2 changed files with 19 additions and 43 deletions

60
conn.go
View File

@ -29,8 +29,8 @@ func listenAndServe(arg Args) error {
switch arg.Transport { switch arg.Transport {
case "ws": // websocket connection case "ws": // websocket connection
err = NewWs(arg).ListenAndServe() err = NewWs(arg).ListenAndServe()
if err != nil && glog.V(LFATAL) { if err != nil {
glog.Errorln(err) glog.Infoln(err)
} }
return err return err
case "tls": // tls connection case "tls": // tls connection
@ -43,9 +43,7 @@ func listenAndServe(arg Args) error {
} }
if err != nil { if err != nil {
if glog.V(LFATAL) { glog.Infoln(err)
glog.Errorln(err)
}
return err return err
} }
@ -54,9 +52,7 @@ func listenAndServe(arg Args) error {
for { for {
conn, err := ln.Accept() conn, err := ln.Accept()
if err != nil { if err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln(err)
glog.Warningln(err)
}
continue continue
} }
go handleConn(conn, arg) go handleConn(conn, arg)
@ -67,10 +63,9 @@ func listenAndServe(arg Args) error {
func handleConn(conn net.Conn, arg Args) { func handleConn(conn net.Conn, arg Args) {
atomic.AddInt32(&connCounter, 1) atomic.AddInt32(&connCounter, 1)
if glog.V(LINFO) { glog.V(LINFO).Infof("%s connected, connections: %d",
glog.Infof("%s connected, connections: %d", conn.RemoteAddr(), atomic.LoadInt32(&connCounter))
conn.RemoteAddr(), atomic.LoadInt32(&connCounter))
}
if glog.V(LINFO) { if glog.V(LINFO) {
defer func() { defer func() {
glog.Infof("%s disconnected, connections: %d", glog.Infof("%s disconnected, connections: %d",
@ -97,9 +92,7 @@ func handleConn(conn net.Conn, arg Args) {
case "http": case "http":
req, err := http.ReadRequest(bufio.NewReader(conn)) req, err := http.ReadRequest(bufio.NewReader(conn))
if err != nil { if err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln("http:", err)
glog.Warningln("http:", err)
}
return return
} }
handleHttpRequest(req, conn, arg) handleHttpRequest(req, conn, arg)
@ -108,9 +101,7 @@ func handleConn(conn net.Conn, arg Args) {
conn = gosocks5.ServerConn(conn, selector) conn = gosocks5.ServerConn(conn, selector)
req, err := gosocks5.ReadRequest(conn) req, err := gosocks5.ReadRequest(conn)
if err != nil { if err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln("socks5:", err)
glog.Warningln("socks5:", err)
}
return return
} }
handleSocks5Request(req, conn) handleSocks5Request(req, conn)
@ -123,9 +114,7 @@ func handleConn(conn net.Conn, arg Args) {
n, err := io.ReadAtLeast(conn, b, 2) n, err := io.ReadAtLeast(conn, b, 2)
if err != nil { if err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln("client:", err)
glog.Warningln("client:", err)
}
return return
} }
@ -134,34 +123,26 @@ func handleConn(conn net.Conn, arg Args) {
length := 2 + mn length := 2 + mn
if n < length { if n < length {
if _, err := io.ReadFull(conn, b[n:length]); err != nil { if _, err := io.ReadFull(conn, b[n:length]); err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln("socks5:", err)
glog.Warningln("socks5:", err)
}
return return
} }
} }
methods := b[2 : 2+mn] methods := b[2 : 2+mn]
method := selector.Select(methods...) method := selector.Select(methods...)
if _, err := conn.Write([]byte{gosocks5.Ver5, method}); err != nil { if _, err := conn.Write([]byte{gosocks5.Ver5, method}); err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln("socks5 select:", err)
glog.Warningln("socks5 select:", err)
}
return return
} }
c, err := selector.OnSelected(method, conn) c, err := selector.OnSelected(method, conn)
if err != nil { if err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln("socks5 onselected:", err)
glog.Warningln("socks5 onselected:", err)
}
return return
} }
conn = c conn = c
req, err := gosocks5.ReadRequest(conn) req, err := gosocks5.ReadRequest(conn)
if err != nil { if err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln("socks5 request:", err)
glog.Warningln("socks5 request:", err)
}
return return
} }
handleSocks5Request(req, conn) handleSocks5Request(req, conn)
@ -170,9 +151,7 @@ func handleConn(conn net.Conn, arg Args) {
req, err := http.ReadRequest(bufio.NewReader(newReqReader(b[:n], conn))) req, err := http.ReadRequest(bufio.NewReader(newReqReader(b[:n], conn)))
if err != nil { if err != nil {
if glog.V(LWARNING) { glog.V(LWARNING).Infoln("http:", err)
glog.Warningln("http:", err)
}
return return
} }
handleHttpRequest(req, conn, arg) handleHttpRequest(req, conn, arg)
@ -315,16 +294,13 @@ func establish(conn net.Conn, addr string, arg Args) error {
if err := req.Write(conn); err != nil { if err := req.Write(conn); err != nil {
return err return err
} }
if glog.V(LDEBUG) { glog.V(LDEBUG).Infoln(req)
glog.Infoln(req)
}
rep, err := gosocks5.ReadReply(conn) rep, err := gosocks5.ReadReply(conn)
if err != nil { if err != nil {
return err return err
} }
if glog.V(LDEBUG) { glog.V(LDEBUG).Infoln(rep)
glog.Infoln(rep)
}
if rep.Rep != gosocks5.Succeeded { if rep.Rep != gosocks5.Succeeded {
return errors.New("Service unavailable") return errors.New("Service unavailable")
} }

View File

@ -66,7 +66,7 @@ func init() {
cert, err = tls.X509KeyPair([]byte(rawCert), []byte(rawKey)) cert, err = tls.X509KeyPair([]byte(rawCert), []byte(rawKey))
if err != nil { if err != nil {
glog.V(LFATAL).Infoln(err) glog.Infoln(err)
} }
} }
} }