From 3723b7fa2c9cd7249b3605e9254813e5bf5c1dd5 Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Tue, 23 Apr 2013 10:56:58 -0400
Subject: [PATCH] Don't rescue from StandardError on bad result.

This was causing unintended resuce from other exceptions like:
Errno::ECONNREFUSED: Connection refused - Unable to connect to Redis...
---
 lib/geocoder/lookups/freegeoip.rb | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/lib/geocoder/lookups/freegeoip.rb b/lib/geocoder/lookups/freegeoip.rb
index 9efaaa4e..cccd9f0f 100644
--- a/lib/geocoder/lookups/freegeoip.rb
+++ b/lib/geocoder/lookups/freegeoip.rb
@@ -21,12 +21,8 @@ module Geocoder::Lookup
     def results(query)
       # don't look up a loopback address, just return the stored result
       return [reserved_result(query.text)] if query.loopback_ip_address?
-      begin
-        return (doc = fetch_data(query)) ? [doc] : []
-      rescue StandardError => err # Freegeoip.net returns HTML on bad request
-        raise_error(err)
-        return []
-      end
+      # note: Freegeoip.net returns plain text "Not Found" on bad request
+      (doc = fetch_data(query)) ? [doc] : []
     end
 
     def reserved_result(ip)
-- 
GitLab