mirror of https://github.com/ehang-io/nps
Update https.go
parent
6c6753cd88
commit
accb09ef34
|
@ -104,7 +104,7 @@ func (https *HttpsServer) NewHttps(l net.Listener, certFile string, keyFile stri
|
||||||
func (https *HttpsServer) handleHttps(c net.Conn) {
|
func (https *HttpsServer) handleHttps(c net.Conn) {
|
||||||
hostName, rb := GetServerNameFromClientHello(c)
|
hostName, rb := GetServerNameFromClientHello(c)
|
||||||
var targetAddr string
|
var targetAddr string
|
||||||
r := buildHttpsRequest(hostName)
|
r := buildMyHttpsRequest(hostName,c)
|
||||||
var host *file.Host
|
var host *file.Host
|
||||||
var err error
|
var err error
|
||||||
if host, err = file.GetDb().GetInfoByHost(hostName, r); err != nil {
|
if host, err = file.GetDb().GetInfoByHost(hostName, r); err != nil {
|
||||||
|
@ -125,7 +125,6 @@ func (https *HttpsServer) handleHttps(c net.Conn) {
|
||||||
if targetAddr, err = host.Target.GetRandomTarget(); err != nil {
|
if targetAddr, err = host.Target.GetRandomTarget(); err != nil {
|
||||||
logs.Warn(err.Error())
|
logs.Warn(err.Error())
|
||||||
}
|
}
|
||||||
common.ChangeHostAndHeader(r, host.HostChange, host.HeaderChange, c.RemoteAddr().String(), https.addOrigin)
|
|
||||||
logs.Trace("new https connection,clientId %d,host %s,remote address %s", host.Client.Id, r.Host, c.RemoteAddr().String())
|
logs.Trace("new https connection,clientId %d,host %s,remote address %s", host.Client.Id, r.Host, c.RemoteAddr().String())
|
||||||
https.DealClient(conn.NewConn(c), host.Client, targetAddr, rb, common.CONN_TCP, nil, host.Flow, host.Target.LocalProxy)
|
https.DealClient(conn.NewConn(c), host.Client, targetAddr, rb, common.CONN_TCP, nil, host.Flow, host.Target.LocalProxy)
|
||||||
}
|
}
|
||||||
|
@ -185,3 +184,16 @@ func buildHttpsRequest(hostName string) *http.Request {
|
||||||
r.Host = hostName
|
r.Host = hostName
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func buildMyHttpsRequest(hostName string, c net.Conn) *http.Request {
|
||||||
|
r := new(http.Request)
|
||||||
|
r.RequestURI = "/"
|
||||||
|
r.URL = new(url.URL)
|
||||||
|
r.URL.Scheme = "https"
|
||||||
|
r.Host = hostName
|
||||||
|
logs.Trace("start add header")
|
||||||
|
r.Header.Set("X-Forwarded-For", '1.1.1.1')
|
||||||
|
r.Header.Set("X-Real-IP", '1.1.1.1')
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue