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
}
if node.Bypasser.Bypass(addr) {
if node.Bypasser != nil && node.Bypasser.Bypass(addr) {
break
}

View File

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

View File

@ -374,7 +374,7 @@ func (h *http2Handler) roundTrip(w http.ResponseWriter, r *http.Request) {
return
}
if h.options.Bypasser.Bypass(host) {
if h.options.Bypasser != nil && h.options.Bypasser.Bypass(host) {
log.Logf("[http2] %s - %s bypass %s",
r.RemoteAddr, laddr, host)
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)
return
}
if h.options.Bypasser.Bypass(host) {
if h.options.Bypasser != nil && h.options.Bypasser.Bypass(host) {
log.Log("[sni] %s - %s bypass %s",
conn.RemoteAddr(), conn.LocalAddr(), host)
return

View File

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

6
ss.go
View File

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

2
ssh.go
View File

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