proxy: tell the /port server the real external IP address

Before this we accidentally told it the vsock address, which obviously
isn't much good.

Signed-off-by: David Scott <dave.scott@docker.com>
This commit is contained in:
David Scott 2016-04-14 22:13:38 +01:00
parent b0c4fdae37
commit 1d3b8b566e
2 changed files with 3 additions and 6 deletions

View File

@ -8,7 +8,6 @@ import (
"os"
"libproxy"
"strings"
"vsock"
)
func main() {
@ -41,7 +40,7 @@ func exposePort(host net.Addr, port int) error {
log.Printf("Failed to open /port/%s/ctl: %#v\n", name, err)
return err
}
_, err = ctl.WriteString(fmt.Sprintf("%s:%d:%d", name, vsock.VSOCK_CID_SELF, vSockPortOffset + port))
_, err = ctl.WriteString(fmt.Sprintf("%s:%08x", name, port))
if err != nil {
log.Printf("Failed to open /port/%s/ctl: %#v\n", name, err)
return err

View File

@ -10,7 +10,6 @@ import (
"syscall"
"libproxy"
"vsock"
)
// sendError signals the error to the parent and quits the process.
@ -49,13 +48,12 @@ func parseHostContainerAddrs() (host net.Addr, port int, container net.Addr) {
switch *proto {
case "tcp":
host = &net.TCPAddr{IP: net.ParseIP(*hostIP), Port: *hostPort}
port = vSockPortOffset + *hostPort
host = &vsock.VsockAddr{Port: uint(port)}
port = *hostPort
container = &net.TCPAddr{IP: net.ParseIP(*containerIP), Port: *containerPort}
case "udp":
host = &net.UDPAddr{IP: net.ParseIP(*hostIP), Port: *hostPort}
port = *hostPort
port = vSockPortOffset + *hostPort
container = &net.UDPAddr{IP: net.ParseIP(*containerIP), Port: *containerPort}
default:
log.Fatalf("unsupported protocol %s", *proto)