Fix WHOIS library not to puke on strange IP addresses
[selectricity-live] / app / views / quickvote / list_voters.rhtml
index 795ab4507fc41d9e14a8776ba90b512eb21f7a70..695794fc3f536d4776897b845b0460b548ba4086 100644 (file)
             /^192\.168/ or voter.ipaddress =~ /^10\./ or voter.ipaddress =~ /^169\.254/ or
             voter.ipaddress =~ /^172\.[1-3]/
             %>
-        <% w= Whois::Whois.new(IPAddr.new(voter.ipaddress),true)%>
+            <% w=nil
+            puts "WHOIS #{voter.ipaddress}"
+            if Cache and w=Cache.get("WHOIS:#{voter.ipaddress}")
+            elsif Cache
+              puts "CREATE"
+              w= Whois::Whois.new(IPAddr.new(voter.ipaddress),false)
+              puts "SEARCH"
+              w.search_whois
+              puts "DONE"
+              Cache.set("WHOIS:#{voter.ipaddress}", w)
+            else
+              w= Whois::Whois.new(IPAddr.new(voter.ipaddress),false)
+              w.search_whois
+            end
+            
+            %>
         <%=h((w.host == nil or w.host.empty?) ? voter.ipaddress : w.host)%>
       </td>
       <td>
-        <%w.search_whois%>
         <%=h (w.all.grep(/^(OrgName|org-name)/)[0] or "").sub(/^(OrgName|org-name)\:/,'').strip -%> - <%=  (w.all.grep(/^(NetName|netname)/)[0] or "").sub(/^(NetName|netname)\:/,'').strip %>
 
     <% rescue ArgumentError => err %>

Benjamin Mako Hill || Want to submit a patch?