aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock2
-rw-r--r--lib/quiet_opener.rb14
3 files changed, 11 insertions, 6 deletions
diff --git a/Gemfile b/Gemfile
index 0cbd2124b..28092a80c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -17,6 +17,7 @@ gem 'json', '~> 1.5.1'
gem 'mahoro'
gem 'memcache-client', :require => 'memcache'
gem 'locale', '>= 2.0.5'
+gem 'net-http-local'
gem 'net-purge'
gem 'rack', '~> 1.1.0'
gem 'rdoc', '~> 2.4.3'
diff --git a/Gemfile.lock b/Gemfile.lock
index 695baae02..f17e72d33 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -30,6 +30,7 @@ GEM
locale (2.0.5)
mahoro (0.3)
memcache-client (1.8.5)
+ net-http-local (0.1.2)
net-purge (0.1.0)
pg (0.11.0)
rack (1.1.0)
@@ -79,6 +80,7 @@ DEPENDENCIES
locale (>= 2.0.5)
mahoro
memcache-client
+ net-http-local
net-purge
pg
rack (~> 1.1.0)
diff --git a/lib/quiet_opener.rb b/lib/quiet_opener.rb
index 11adfe402..2f78f76ad 100644
--- a/lib/quiet_opener.rb
+++ b/lib/quiet_opener.rb
@@ -15,12 +15,14 @@ def quietly_try_to_purge(host, url)
begin
result = ""
result_body = ""
- Net::HTTP.start(host) {|http|
- request = Net::HTTP::Purge.new(url)
- response = http.request(request)
- result = response.code
- result_body = response.body
- }
+ Net::HTTP.bind '127.0.0.1' do
+ Net::HTTP.start(host) {|http|
+ request = Net::HTTP::Purge.new(url)
+ response = http.request(request)
+ result = response.code
+ result_body = response.body
+ }
+ end
rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH
Rails.logger.warn("Unable to reach host #{host}")
end