Cope with no referer
[chef.git] / cookbooks / tile / templates / default / export.erb
index dfd076252167166384bc5c1397ba3b08200b18c3..c05083835b43b28a65564001dd97957c39dfe071 100644 (file)
@@ -58,6 +58,10 @@ form = cgi.FieldStorage()
 if not os.environ.has_key('HTTP_USER_AGENT'):
   os.environ['HTTP_USER_AGENT'] = 'NONE'
 
+# Make sure we have a referer
+if not os.environ.has_key('HTTP_REFERER'):
+  os.environ['HTTP_REFERER'] = 'NONE'
+
 # Get the load average
 cputimes = [float(n) for n in open("/proc/stat").readline().rstrip().split()[1:-1]]
 idletime = cputimes[3] / sum(cputimes)
@@ -71,6 +75,11 @@ elif os.environ['HTTP_USER_AGENT'] == '<%= user_agent %>':
   # Block scraper
   output_error("The server is too busy at the moment. Please wait a few minutes before trying again.", "503 Service Unavailable")
 <% end -%>
+<% @blocks["referers"].each do |referer| -%>
+elif os.environ['HTTP_REFERER'] == '<%= referer %>':
+  # Block scraper
+  output_error("The server is too busy at the moment. Please wait a few minutes before trying again.", "503 Service Unavailable")
+<% end -%>
 elif not form.has_key("bbox"):
   # No bounding box specified
   output_error("No bounding box specified")