initial changes for forwarding port modifications
This commit is contained in:
parent
31c77bed37
commit
ca1456ff82
|
@ -92,6 +92,7 @@ module Vagrant
|
||||||
with_forwarded_ports(env) do |options|
|
with_forwarded_ports(env) do |options|
|
||||||
guest_port = options[:guest]
|
guest_port = options[:guest]
|
||||||
host_port = options[:host]
|
host_port = options[:host]
|
||||||
|
host_ip = options[:host_ip]
|
||||||
|
|
||||||
if options[:protocol] && options[:protocol] != "tcp"
|
if options[:protocol] && options[:protocol] != "tcp"
|
||||||
@logger.debug("Skipping #{host_port} because UDP protocol.")
|
@logger.debug("Skipping #{host_port} because UDP protocol.")
|
||||||
|
@ -105,8 +106,8 @@ module Vagrant
|
||||||
end
|
end
|
||||||
|
|
||||||
# If the port is open (listening for TCP connections)
|
# If the port is open (listening for TCP connections)
|
||||||
in_use = extra_in_use.include?(host_port) ||
|
in_use = extra_in_use.include?([host_ip,host_port]) ||
|
||||||
port_checker[host_port] ||
|
port_checker[host_ip,host_port] ||
|
||||||
lease_check(host_port)
|
lease_check(host_port)
|
||||||
if in_use
|
if in_use
|
||||||
if !repair || !options[:auto_correct]
|
if !repair || !options[:auto_correct]
|
||||||
|
@ -205,8 +206,8 @@ module Vagrant
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def port_check(port)
|
def port_check(host="127.0.0.1",port)
|
||||||
is_port_open?("127.0.0.1", port)
|
is_port_open?(host, port)
|
||||||
end
|
end
|
||||||
|
|
||||||
def with_forwarded_ports(env)
|
def with_forwarded_ports(env)
|
||||||
|
|
|
@ -14,7 +14,7 @@ module VagrantPlugins
|
||||||
# Build the remap for any existing collision detections
|
# Build the remap for any existing collision detections
|
||||||
remap = {}
|
remap = {}
|
||||||
env[:port_collision_remap] = remap
|
env[:port_collision_remap] = remap
|
||||||
env[:machine].provider.driver.read_forwarded_ports.each do |_nic, name, hostport, _guestport|
|
env[:machine].provider.driver.read_forwarded_ports.each do |_nic, name, hostaddr, hostport, _guestport|
|
||||||
env[:machine].config.vm.networks.each do |type, options|
|
env[:machine].config.vm.networks.each do |type, options|
|
||||||
next if type != :forwarded_port
|
next if type != :forwarded_port
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ module VagrantPlugins
|
||||||
|
|
||||||
def clear_forwarded_ports
|
def clear_forwarded_ports
|
||||||
args = []
|
args = []
|
||||||
read_forwarded_ports(@uuid).each do |nic, name, _, _|
|
read_forwarded_ports(@uuid).each do |nic, name, _, _, _|
|
||||||
args.concat(["--natpf#{nic}", "delete", name])
|
args.concat(["--natpf#{nic}", "delete", name])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -261,8 +261,9 @@ module VagrantPlugins
|
||||||
end
|
end
|
||||||
|
|
||||||
# Parse out the forwarded port information
|
# Parse out the forwarded port information
|
||||||
if line =~ /^Forwarding.+?="(.+?),.+?,.*?,(.+?),.*?,(.+?)"$/
|
if line =~ /^Forwarding.+?="(.+?),.*?,.(.+?),(.+?),.*?,(.+?)"$/
|
||||||
result = [current_nic, $1.to_s, $2.to_i, $3.to_i]
|
result = [current_nic, $1.to_s, $2.to_s, $3.to_i, $4.to_i]
|
||||||
|
#[["nat", "ssh", "127.0.0.1", 2222, 22]]
|
||||||
@logger.debug(" - #{result.inspect}")
|
@logger.debug(" - #{result.inspect}")
|
||||||
results << result
|
results << result
|
||||||
end
|
end
|
||||||
|
@ -449,8 +450,8 @@ module VagrantPlugins
|
||||||
# Ignore our own used ports
|
# Ignore our own used ports
|
||||||
next if uuid == @uuid
|
next if uuid == @uuid
|
||||||
|
|
||||||
read_forwarded_ports(uuid, true).each do |_, _, hostport, _|
|
read_forwarded_ports(uuid, true).each do |_, _, hostaddr, hostport, _|
|
||||||
ports << hostport
|
ports << [hostaddr, hostport]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -497,7 +498,7 @@ module VagrantPlugins
|
||||||
@logger.debug("Searching for SSH port: #{expected_port.inspect}")
|
@logger.debug("Searching for SSH port: #{expected_port.inspect}")
|
||||||
|
|
||||||
# Look for the forwarded port only by comparing the guest port
|
# Look for the forwarded port only by comparing the guest port
|
||||||
read_forwarded_ports.each do |_, _, hostport, guestport|
|
read_forwarded_ports.each do |_, _, _, hostport, guestport|
|
||||||
return hostport if guestport == expected_port
|
return hostport if guestport == expected_port
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue