mirror of https://github.com/n1nj4sec/pupy.git
Fix binding issues
This commit is contained in:
parent
23409577f6
commit
10e631a99b
|
@ -34,6 +34,10 @@ func (d *Daemon) ListenAndServe() error {
|
|||
return err
|
||||
}
|
||||
|
||||
conn.(*net.TCPConn).SetKeepAlive(true)
|
||||
conn.(*net.TCPConn).SetKeepAlivePeriod(1 * time.Minute)
|
||||
conn.(*net.TCPConn).SetNoDelay(true)
|
||||
|
||||
conn = tls.Server(conn, ListenerConfig)
|
||||
|
||||
go d.handle(conn)
|
||||
|
@ -67,10 +71,6 @@ func (d *Daemon) onListenerDisabled() {
|
|||
func (d *Daemon) handle(conn net.Conn) {
|
||||
defer conn.Close()
|
||||
|
||||
conn.(*net.TCPConn).SetKeepAlive(true)
|
||||
conn.(*net.TCPConn).SetKeepAlivePeriod(1 * time.Minute)
|
||||
conn.(*net.TCPConn).SetNoDelay(true)
|
||||
|
||||
brh := &BindRequestHeader{}
|
||||
|
||||
err := RecvMessage(conn, brh)
|
||||
|
|
|
@ -77,7 +77,15 @@ func init() {
|
|||
}
|
||||
|
||||
if strings.Index(ProxyBindHost, ":") == -1 {
|
||||
if ExternalBindHost == "0.0.0.0" {
|
||||
ExternalBindHost = ProxyBindHost
|
||||
}
|
||||
|
||||
ProxyBindHost = fmt.Sprintf("%s:%d", ProxyBindHost, ProxyBindPort)
|
||||
} else {
|
||||
if ExternalBindHost == "0.0.0.0" {
|
||||
ExternalBindHost = strings.SplitN(ProxyBindHost, ":", 1)[0]
|
||||
}
|
||||
}
|
||||
|
||||
if strings.Index(ExternalBindHost, ":") != -1 {
|
||||
|
|
|
@ -219,6 +219,7 @@ class Listener(Thread):
|
|||
external = self.external
|
||||
external_port = self.external_port
|
||||
authenticator = self.authenticator
|
||||
port = self.port
|
||||
|
||||
if self.pproxy:
|
||||
if type(authenticator) == PupySSLAuthenticator:
|
||||
|
@ -245,10 +246,11 @@ class Listener(Thread):
|
|||
authenticator = None
|
||||
ipv6 = False
|
||||
igd = None
|
||||
port = 0
|
||||
|
||||
self.server = server(
|
||||
PupyService,
|
||||
port=self.port, hostname=self.address,
|
||||
port=port, hostname=self.address,
|
||||
authenticator=authenticator,
|
||||
stream=stream,
|
||||
transport=transport,
|
||||
|
@ -265,7 +267,7 @@ class Listener(Thread):
|
|||
|
||||
## Workaround..
|
||||
self.server.listener.close()
|
||||
self.server.listener = method(self.port, extra=extra)
|
||||
self.server.listener = method(self.external_port, extra=extra)
|
||||
|
||||
def run(self):
|
||||
self.server.start()
|
||||
|
|
Loading…
Reference in New Issue