local port for outbound conn #11
@ -70,11 +70,15 @@ func (c Configuration) Build() (*proxy.Proxy, error) {
|
||||
}
|
||||
|
||||
func buildTcp(p *proxy.Proxy, peer Peer, g func() proxy.MacGenerator, v func() proxy.MacVerifier) error {
|
||||
var laddr func() string
|
||||
if peer.LocalPort == 0 {
|
||||
laddr = func() string { return fmt.Sprintf("%s:", peer.GetLocalHost()) }
|
||||
} else {
|
||||
laddr = func() string { return fmt.Sprintf("%s:%d", peer.GetLocalHost(), peer.LocalPort) }
|
||||
}
|
||||
|
||||
if peer.RemoteHost != "" {
|
||||
f, err := tcp.InitiateFlow(
|
||||
func() string { return fmt.Sprintf("%s:", peer.GetLocalHost()) },
|
||||
fmt.Sprintf("%s:%d", peer.RemoteHost, peer.RemotePort),
|
||||
)
|
||||
f, err := tcp.InitiateFlow(laddr, fmt.Sprintf("%s:%d", peer.RemoteHost, peer.RemotePort))
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
@ -86,7 +90,7 @@ func buildTcp(p *proxy.Proxy, peer Peer, g func() proxy.MacGenerator, v func() p
|
||||
return nil
|
||||
}
|
||||
|
||||
err := tcp.NewListener(p, fmt.Sprintf("%s:%d", peer.GetLocalHost(), peer.LocalPort), v, g)
|
||||
err := tcp.NewListener(p, laddr(), v, g)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -95,6 +99,13 @@ func buildTcp(p *proxy.Proxy, peer Peer, g func() proxy.MacGenerator, v func() p
|
||||
}
|
||||
|
||||
func buildUdp(p *proxy.Proxy, peer Peer, g func() proxy.MacGenerator, v func() proxy.MacVerifier) error {
|
||||
var laddr func() string
|
||||
if peer.LocalPort == 0 {
|
||||
laddr = func() string { return fmt.Sprintf("%s:", peer.GetLocalHost()) }
|
||||
} else {
|
||||
laddr = func() string { return fmt.Sprintf("%s:%d", peer.GetLocalHost(), peer.LocalPort) }
|
||||
}
|
||||
|
||||
var c func() udp.Congestion
|
||||
switch peer.Congestion {
|
||||
case "None":
|
||||
@ -107,7 +118,7 @@ func buildUdp(p *proxy.Proxy, peer Peer, g func() proxy.MacGenerator, v func() p
|
||||
|
||||
if peer.RemoteHost != "" {
|
||||
f, err := udp.InitiateFlow(
|
||||
func() string { return fmt.Sprintf("%s:", peer.GetLocalHost()) },
|
||||
laddr,
|
||||
fmt.Sprintf("%s:%d", peer.RemoteHost, peer.RemotePort),
|
||||
v(),
|
||||
g(),
|
||||
@ -125,7 +136,7 @@ func buildUdp(p *proxy.Proxy, peer Peer, g func() proxy.MacGenerator, v func() p
|
||||
return nil
|
||||
}
|
||||
|
||||
err := udp.NewListener(p, fmt.Sprintf("%s:%d", peer.GetLocalHost(), peer.LocalPort), v, g, c)
|
||||
err := udp.NewListener(p, laddr(), v, g, c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user