fix nil bypasser

This commit is contained in:
ginuerzh 2020-04-05 20:16:06 +08:00
parent 6799cc5a95
commit d49ec87c17
7 changed files with 16 additions and 16 deletions

View File

@ -302,7 +302,7 @@ func (c *Chain) selectRouteFor(addr string) (route *Chain, err error) {
return return
} }
if node.Bypasser.Bypass(addr) { if node.Bypasser != nil && node.Bypasser.Bypass(addr) {
break break
} }

View File

@ -189,7 +189,7 @@ func (h *httpHandler) handleRequest(conn net.Conn, req *http.Request) {
return return
} }
if h.options.Bypasser.Bypass(host) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(host) {
resp.StatusCode = http.StatusForbidden resp.StatusCode = http.StatusForbidden
log.Logf("[http] %s - %s bypass %s", log.Logf("[http] %s - %s bypass %s",

View File

@ -374,7 +374,7 @@ func (h *http2Handler) roundTrip(w http.ResponseWriter, r *http.Request) {
return return
} }
if h.options.Bypasser.Bypass(host) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(host) {
log.Logf("[http2] %s - %s bypass %s", log.Logf("[http2] %s - %s bypass %s",
r.RemoteAddr, laddr, host) r.RemoteAddr, laddr, host)
w.WriteHeader(http.StatusForbidden) w.WriteHeader(http.StatusForbidden)

2
sni.go
View File

@ -113,7 +113,7 @@ func (h *sniHandler) Handle(conn net.Conn) {
conn.RemoteAddr(), conn.LocalAddr(), host) conn.RemoteAddr(), conn.LocalAddr(), host)
return return
} }
if h.options.Bypasser.Bypass(host) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(host) {
log.Log("[sni] %s - %s bypass %s", log.Log("[sni] %s - %s bypass %s",
conn.RemoteAddr(), conn.LocalAddr(), host) conn.RemoteAddr(), conn.LocalAddr(), host)
return return

View File

@ -900,7 +900,7 @@ func (h *socks5Handler) handleConnect(conn net.Conn, req *gosocks5.Request) {
} }
return return
} }
if h.options.Bypasser.Bypass(host) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(host) {
log.Logf("[socks5] %s - %s : Bypass %s", log.Logf("[socks5] %s - %s : Bypass %s",
conn.RemoteAddr(), conn.LocalAddr(), host) conn.RemoteAddr(), conn.LocalAddr(), host)
rep := gosocks5.NewReply(gosocks5.NotAllowed, nil) rep := gosocks5.NewReply(gosocks5.NotAllowed, nil)
@ -1261,7 +1261,7 @@ func (h *socks5Handler) transportUDP(relay, peer net.PacketConn) (err error) {
if err != nil { if err != nil {
continue // drop silently continue // drop silently
} }
if h.options.Bypasser.Bypass(raddr.String()) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(raddr.String()) {
log.Log("[socks5-udp] [bypass] write to", raddr) log.Log("[socks5-udp] [bypass] write to", raddr)
continue // bypass continue // bypass
} }
@ -1288,7 +1288,7 @@ func (h *socks5Handler) transportUDP(relay, peer net.PacketConn) (err error) {
if clientAddr == nil { if clientAddr == nil {
continue continue
} }
if h.options.Bypasser.Bypass(raddr.String()) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(raddr.String()) {
log.Log("[socks5-udp] [bypass] read from", raddr) log.Log("[socks5-udp] [bypass] read from", raddr)
continue // bypass continue // bypass
} }
@ -1341,7 +1341,7 @@ func (h *socks5Handler) tunnelClientUDP(uc *net.UDPConn, cc net.Conn) (err error
clientAddr = addr clientAddr = addr
} }
raddr := dgram.Header.Addr.String() raddr := dgram.Header.Addr.String()
if h.options.Bypasser.Bypass(raddr) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(raddr) {
log.Log("[udp-tun] [bypass] write to", raddr) log.Log("[udp-tun] [bypass] write to", raddr)
continue // bypass continue // bypass
} }
@ -1370,7 +1370,7 @@ func (h *socks5Handler) tunnelClientUDP(uc *net.UDPConn, cc net.Conn) (err error
continue continue
} }
raddr := dgram.Header.Addr.String() raddr := dgram.Header.Addr.String()
if h.options.Bypasser.Bypass(raddr) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(raddr) {
log.Log("[udp-tun] [bypass] read from", raddr) log.Log("[udp-tun] [bypass] read from", raddr)
continue // bypass continue // bypass
} }
@ -1469,7 +1469,7 @@ func (h *socks5Handler) tunnelServerUDP(cc net.Conn, pc net.PacketConn) (err err
errc <- err errc <- err
return return
} }
if h.options.Bypasser.Bypass(addr.String()) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(addr.String()) {
log.Log("[socks5] udp-tun bypass read from", addr) log.Log("[socks5] udp-tun bypass read from", addr)
continue // bypass continue // bypass
} }
@ -1502,7 +1502,7 @@ func (h *socks5Handler) tunnelServerUDP(cc net.Conn, pc net.PacketConn) (err err
if err != nil { if err != nil {
continue // drop silently continue // drop silently
} }
if h.options.Bypasser.Bypass(addr.String()) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(addr.String()) {
log.Log("[socks5] udp-tun bypass write to", addr) log.Log("[socks5] udp-tun bypass write to", addr)
continue // bypass continue // bypass
} }
@ -1715,7 +1715,7 @@ func (h *socks4Handler) handleConnect(conn net.Conn, req *gosocks4.Request) {
} }
return return
} }
if h.options.Bypasser.Bypass(addr) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(addr) {
log.Log("[socks4] %s - %s : Bypass %s", log.Log("[socks4] %s - %s : Bypass %s",
conn.RemoteAddr(), conn.LocalAddr(), addr) conn.RemoteAddr(), conn.LocalAddr(), addr)
rep := gosocks4.NewReply(gosocks4.Rejected, nil) rep := gosocks4.NewReply(gosocks4.Rejected, nil)

6
ss.go
View File

@ -149,7 +149,7 @@ func (h *shadowHandler) Handle(conn net.Conn) {
return return
} }
if h.options.Bypasser.Bypass(host) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(host) {
log.Logf("[ss] %s - %s : Bypass %s", log.Logf("[ss] %s - %s : Bypass %s",
conn.RemoteAddr(), conn.LocalAddr(), host) conn.RemoteAddr(), conn.LocalAddr(), host)
return return
@ -435,7 +435,7 @@ func (h *shadowUDPHandler) transportUDP(conn net.Conn, cc net.PacketConn) error
if err != nil { if err != nil {
return return
} }
if h.options.Bypasser.Bypass(addr.String()) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(addr.String()) {
log.Log("[ssu] bypass", addr) log.Log("[ssu] bypass", addr)
return // bypass return // bypass
} }
@ -463,7 +463,7 @@ func (h *shadowUDPHandler) transportUDP(conn net.Conn, cc net.PacketConn) error
if Debug { if Debug {
log.Logf("[ssu] %s <<< %s length: %d", conn.RemoteAddr(), addr, n) log.Logf("[ssu] %s <<< %s length: %d", conn.RemoteAddr(), addr, n)
} }
if h.options.Bypasser.Bypass(addr.String()) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(addr.String()) {
log.Log("[ssu] bypass", addr) log.Log("[ssu] bypass", addr)
return // bypass return // bypass
} }

2
ssh.go
View File

@ -608,7 +608,7 @@ func (h *sshForwardHandler) directPortForwardChannel(channel ssh.Channel, raddr
return return
} }
if h.options.Bypasser.Bypass(raddr) { if h.options.Bypasser != nil && h.options.Bypasser.Bypass(raddr) {
log.Logf("[ssh-tcp] [bypass] %s", raddr) log.Logf("[ssh-tcp] [bypass] %s", raddr)
return return
} }