X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/ced42cf101c42e27ac29206d140a2fffb4aaddf9..b38684e59eef299e82f5858fe1e14f6cf2aaa10a:/app/controllers/amf_controller.rb diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index 24093cd09..f11700718 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -43,6 +43,7 @@ class AmfController < ApplicationController session :off before_filter :check_api_writable + around_filter :api_call_timeout, :only => [:amf_read] # Main AMF handlers: process the raw AMF string (using AMF library) and # calls each action (private method) accordingly. @@ -72,7 +73,7 @@ class AmfController < ApplicationController index=AMF.getstring(req) # | get index in response sequence bytes=AMF.getlong(req) # | get total size in bytes args=AMF.getvalue(req) # | get response (probably an array) - logger.info("Executing AMF #{message}:#{index}") + logger.info("Executing AMF #{message}(#{args.join(',')}):#{index}") case message when 'getpresets'; results[index]=AMF.putdata(index,getpresets()) @@ -89,7 +90,7 @@ class AmfController < ApplicationController when 'getpoi'; results[index]=AMF.putdata(index,getpoi(*args)) end end - logger.info("encoding AMF results") + logger.info("Encoding AMF results") sendresponse(results) else render :nothing => true, :status => :method_not_allowed @@ -133,7 +134,7 @@ class AmfController < ApplicationController when 'startchangeset'; results[index]=AMF.putdata(index,startchangeset(*args)) end end - logger.info("encoding AMF results") + logger.info("Encoding AMF results") sendresponse(results) else render :nothing => true, :status => :method_not_allowed @@ -198,7 +199,7 @@ class AmfController < ApplicationController enlarge = [(xmax-xmin)/8,0.01].min xmin -= enlarge; ymin -= enlarge xmax += enlarge; ymax += enlarge - + # check boundary is sane and area within defined # see /config/application.yml check_boundaries(xmin, ymin, xmax, ymax) @@ -228,6 +229,8 @@ class AmfController < ApplicationController [0, ways, points, relations] + rescue OSM::APITimeoutError => err + [-1,"Sorry - I can't get the map for that area. The server said: #{err}"] rescue Exception => err [-2,"Sorry - I can't get the map for that area. The server said: #{err}"] end