Commit 8689301d authored by Jason A. Beranek's avatar Jason A. Beranek

builder/vmware-esxi: Ignore localhost for VNC lookup [GH-1480]

  Adds logic to ESXi driver VNC Address function to ignore listen
  addresses that bind to localhost (127.0.0.1), this allows certain
  default ports to be available on ESXi for VNC connections
parent a7122b3c
......@@ -151,6 +151,8 @@ func (d *ESX5Driver) VNCAddress(portMin, portMax uint) (string, uint, error) {
var vncPort uint
//Process ports ESXi is listening on to determine which are available
//This process does best effort to detect ports that are unavailable,
//it will ignore any ports listened to by only localhost
r, err := d.esxcli("network", "ip", "connection", "list")
if err != nil {
err = fmt.Errorf("Could not retrieve network information for ESXi: %v", err)
......@@ -161,12 +163,13 @@ func (d *ESX5Driver) VNCAddress(portMin, portMax uint) (string, uint, error) {
for record, err := r.read(); record != nil && err == nil; record, err = r.read() {
if record["State"] == "LISTEN" {
splitAddress := strings.Split(record["LocalAddress"], ":")
log.Print(splitAddress)
if splitAddress[0] != "127.0.0.1" {
port := splitAddress[len(splitAddress)-1]
log.Printf("ESXi Listening on: %s", port)
log.Printf("ESXi listening on address %s, port %s unavailable for VNC", record["LocalAddress"], port)
listenPorts[port] = true
}
}
}
for port := portMin; port <= portMax; port++ {
if _, ok := listenPorts[fmt.Sprintf("%d", port)]; ok {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment