update
This commit is contained in:
parent
a5e06c6666
commit
b3461ea527
6
conn.go
6
conn.go
@ -375,7 +375,7 @@ func (r *reqReader) Read(p []byte) (n int, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func connect(addr string, prot string, chain []Args) (conn net.Conn, err error) {
|
func connect(addr string, prot string, chain ...Args) (conn net.Conn, err error) {
|
||||||
if !strings.Contains(addr, ":") {
|
if !strings.Contains(addr, ":") {
|
||||||
addr += ":80"
|
addr += ":80"
|
||||||
}
|
}
|
||||||
@ -421,9 +421,9 @@ func connectHttp2(client *http.Client, host, target string, prot string) (net.Co
|
|||||||
Host: host,
|
Host: host,
|
||||||
ContentLength: -1,
|
ContentLength: -1,
|
||||||
}
|
}
|
||||||
req.Header.Set("gost-target-addr", target)
|
req.Header.Set("gost-target", target)
|
||||||
if prot != "" {
|
if prot != "" {
|
||||||
req.Header.Set("gost-prot", prot)
|
req.Header.Set("gost-protocol", prot)
|
||||||
}
|
}
|
||||||
|
|
||||||
if glog.V(LDEBUG) {
|
if glog.V(LDEBUG) {
|
||||||
|
@ -13,7 +13,7 @@ func handleTcpForward(conn net.Conn, raddr net.Addr) {
|
|||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|
||||||
glog.V(LINFO).Infof("[tcp] %s - %s", conn.RemoteAddr(), raddr)
|
glog.V(LINFO).Infof("[tcp] %s - %s", conn.RemoteAddr(), raddr)
|
||||||
c, err := connect(raddr.String(), "")
|
c, err := connect(raddr.String(), "", forwardArgs...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.V(LWARNING).Infof("[tcp] %s -> %s : %s", conn.RemoteAddr(), raddr, err)
|
glog.V(LWARNING).Infof("[tcp] %s -> %s : %s", conn.RemoteAddr(), raddr, err)
|
||||||
return
|
return
|
||||||
|
8
http.go
8
http.go
@ -56,7 +56,7 @@ func handleHttpRequest(req *http.Request, conn net.Conn, arg Args) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c, err := connect(req.Host, "http")
|
c, err := connect(req.Host, "http", forwardArgs...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.V(LWARNING).Infof("[http] %s -> %s : %s", conn.RemoteAddr(), req.Host, err)
|
glog.V(LWARNING).Infof("[http] %s -> %s : %s", conn.RemoteAddr(), req.Host, err)
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ func initHttp2Client(host string, chain ...Args) {
|
|||||||
},
|
},
|
||||||
DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) {
|
DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) {
|
||||||
// replace the default dialer with our forward chain.
|
// replace the default dialer with our forward chain.
|
||||||
conn, err := connectWithChain(host, chain...)
|
conn, err := connect(host, "http2", chain...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return conn, err
|
return conn, err
|
||||||
}
|
}
|
||||||
@ -178,7 +178,7 @@ func initHttp2Client(host string, chain ...Args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handlerHttp2Request(w http.ResponseWriter, req *http.Request) {
|
func handlerHttp2Request(w http.ResponseWriter, req *http.Request) {
|
||||||
target := req.Header.Get("gost-target-addr")
|
target := req.Header.Get("gost-target")
|
||||||
if target == "" {
|
if target == "" {
|
||||||
target = req.Host
|
target = req.Host
|
||||||
}
|
}
|
||||||
@ -189,7 +189,7 @@ func handlerHttp2Request(w http.ResponseWriter, req *http.Request) {
|
|||||||
glog.Infoln(string(dump))
|
glog.Infoln(string(dump))
|
||||||
}
|
}
|
||||||
|
|
||||||
c, err := connect(target, req.Header.Get("gost-prot"))
|
c, err := connect(target, req.Header.Get("gost-protocol"), forwardArgs...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.V(LWARNING).Infof("[http2] %s -> %s : %s", req.RemoteAddr, target, err)
|
glog.V(LWARNING).Infof("[http2] %s -> %s : %s", req.RemoteAddr, target, err)
|
||||||
w.Header().Set("Proxy-Agent", "gost/"+Version)
|
w.Header().Set("Proxy-Agent", "gost/"+Version)
|
||||||
|
2
socks.go
2
socks.go
@ -170,7 +170,7 @@ func handleSocks5Request(req *gosocks5.Request, conn net.Conn) {
|
|||||||
case gosocks5.CmdConnect:
|
case gosocks5.CmdConnect:
|
||||||
glog.V(LINFO).Infof("[socks5-connect] %s - %s", conn.RemoteAddr(), req.Addr)
|
glog.V(LINFO).Infof("[socks5-connect] %s - %s", conn.RemoteAddr(), req.Addr)
|
||||||
|
|
||||||
tconn, err := connect(req.Addr.String(), "socks5")
|
tconn, err := connect(req.Addr.String(), "socks5", forwardArgs...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.V(LWARNING).Infof("[socks5-connect] %s -> %s : %s", conn.RemoteAddr(), req.Addr, err)
|
glog.V(LWARNING).Infof("[socks5-connect] %s -> %s : %s", conn.RemoteAddr(), req.Addr, err)
|
||||||
rep := gosocks5.NewReply(gosocks5.HostUnreachable, nil)
|
rep := gosocks5.NewReply(gosocks5.HostUnreachable, nil)
|
||||||
|
2
ss.go
2
ss.go
@ -31,7 +31,7 @@ func handleShadow(conn net.Conn, arg Args) {
|
|||||||
}
|
}
|
||||||
glog.V(LINFO).Infof("[ss] %s -> %s", conn.RemoteAddr(), addr.String())
|
glog.V(LINFO).Infof("[ss] %s -> %s", conn.RemoteAddr(), addr.String())
|
||||||
|
|
||||||
sconn, err := connect(addr.String(), "ss")
|
sconn, err := connect(addr.String(), "ss", forwardArgs...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.V(LWARNING).Infof("[ss] %s -> %s : %s", conn.RemoteAddr(), addr.String(), err)
|
glog.V(LWARNING).Infof("[ss] %s -> %s : %s", conn.RemoteAddr(), addr.String(), err)
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user