Do not attach forwarded ports to host's 127.0.0.1 by default
This is enough for us to bump to 0.5.0 and to close #76
This commit is contained in:
parent
2dbfd23915
commit
98f1df47a1
5 changed files with 28 additions and 10 deletions
|
@ -1,4 +1,11 @@
|
||||||
## [0.4.1](https://github.com/fgrehm/vagrant-lxc/compare/v0.4.0...master) (unreleased)
|
## [0.5.0](https://github.com/fgrehm/vagrant-lxc/compare/v0.4.0...master) (unreleased)
|
||||||
|
|
||||||
|
BACKWARDS INCOMPATIBILITIES:
|
||||||
|
|
||||||
|
- To align with Vagrant's core behaviour, forwarded ports are no longer attached
|
||||||
|
to 127.0.0.1 and `redir`'s `--laddr` parameter is skipped in case the `:host_ip`
|
||||||
|
config is not provided, that means `redir` will listen on connections coming
|
||||||
|
from any of the host's IPs.
|
||||||
|
|
||||||
FEATURES:
|
FEATURES:
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ GIT
|
||||||
PATH
|
PATH
|
||||||
remote: .
|
remote: .
|
||||||
specs:
|
specs:
|
||||||
vagrant-lxc (0.4.1.dev)
|
vagrant-lxc (0.5.0.dev)
|
||||||
|
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
|
|
|
@ -48,7 +48,7 @@ module Vagrant
|
||||||
message_attributes))
|
message_attributes))
|
||||||
|
|
||||||
redir_pid = redirect_port(
|
redir_pid = redirect_port(
|
||||||
fp[:host_ip] || "127.0.0.1",
|
fp[:host_ip],
|
||||||
fp[:host],
|
fp[:host],
|
||||||
fp[:guest_ip] || @env[:machine].provider.driver.assigned_ip,
|
fp[:guest_ip] || @env[:machine].provider.driver.assigned_ip,
|
||||||
fp[:guest]
|
fp[:guest]
|
||||||
|
@ -72,8 +72,8 @@ module Vagrant
|
||||||
end
|
end
|
||||||
|
|
||||||
def redirect_port(host_ip, host_port, guest_ip, guest_port)
|
def redirect_port(host_ip, host_port, guest_ip, guest_port)
|
||||||
host_ip = "--laddr=#{host_ip}" unless host_ip.empty?
|
host_ip = "--laddr=#{host_ip} " if host_ip
|
||||||
redir_cmd = "sudo redir #{host_ip} --lport=#{host_port} --caddr=#{guest_ip} --cport=#{guest_port} 2>/dev/null"
|
redir_cmd = "redir #{host_ip}--lport=#{host_port} --caddr=#{guest_ip} --cport=#{guest_port} 2>/dev/null"
|
||||||
|
|
||||||
@logger.debug "Forwarding port with `#{redir_cmd}`"
|
@logger.debug "Forwarding port with `#{redir_cmd}`"
|
||||||
spawn redir_cmd
|
spawn redir_cmd
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
module Vagrant
|
module Vagrant
|
||||||
module LXC
|
module LXC
|
||||||
VERSION = "0.4.1.dev"
|
VERSION = "0.5.0.dev"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,13 +9,15 @@ describe Vagrant::LXC::Action::ForwardPorts do
|
||||||
let(:env) { {machine: machine, ui: double(info: true)} }
|
let(:env) { {machine: machine, ui: double(info: true)} }
|
||||||
let(:machine) { double(:machine) }
|
let(:machine) { double(:machine) }
|
||||||
let!(:data_dir) { Pathname.new(Dir.mktmpdir) }
|
let!(:data_dir) { Pathname.new(Dir.mktmpdir) }
|
||||||
let(:networks) { [[:other_config, {}], [:forwarded_port, {guest: guest_port, host: host_port}]] }
|
|
||||||
let(:host_port) { 8080 }
|
|
||||||
let(:guest_port) { 80 }
|
|
||||||
let(:provider) { instance_double('Vagrant::LXC::Provider', driver: driver) }
|
let(:provider) { instance_double('Vagrant::LXC::Provider', driver: driver) }
|
||||||
let(:driver) { instance_double('Vagrant::LXC::Driver', assigned_ip: container_ip) }
|
let(:driver) { instance_double('Vagrant::LXC::Driver', assigned_ip: container_ip) }
|
||||||
|
let(:host_ip) { '127.0.0.1' }
|
||||||
|
let(:host_port) { 8080 }
|
||||||
|
let(:guest_port) { 80 }
|
||||||
let(:container_ip) { '10.0.1.234' }
|
let(:container_ip) { '10.0.1.234' }
|
||||||
let(:pid) { 'a-pid' }
|
let(:pid) { 'a-pid' }
|
||||||
|
let(:forward_conf) { {guest: guest_port, host: host_port, host_ip: host_ip} }
|
||||||
|
let(:networks) { [[:other_config, {}], [:forwarded_port, forward_conf]] }
|
||||||
|
|
||||||
subject { described_class.new(app, env) }
|
subject { described_class.new(app, env) }
|
||||||
|
|
||||||
|
@ -33,7 +35,16 @@ describe Vagrant::LXC::Action::ForwardPorts do
|
||||||
subject.stub(system: true)
|
subject.stub(system: true)
|
||||||
subject.call(env)
|
subject.call(env)
|
||||||
subject.should have_received(:spawn).with(
|
subject.should have_received(:spawn).with(
|
||||||
"sudo redir --laddr=127.0.0.1 --lport=#{host_port} --caddr=#{container_ip} --cport=#{guest_port} 2>/dev/null"
|
"redir --laddr=#{host_ip} --lport=#{host_port} --caddr=#{container_ip} --cport=#{guest_port} 2>/dev/null"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'skips --laddr parameter if host_ip is nil' do
|
||||||
|
forward_conf.delete(:host_ip)
|
||||||
|
subject.stub(system: true)
|
||||||
|
subject.call(env)
|
||||||
|
subject.should have_received(:spawn).with(
|
||||||
|
"redir --lport=#{host_port} --caddr=#{container_ip} --cport=#{guest_port} 2>/dev/null"
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue