# File lib/sinatra/rack_driver_select.rb, line 30
    def call(env)
      original_settings = { }
      req = Rack::Request.new(env)
      if req.params['api'] and req.params['api']['driver']
        env['HTTP_X_DELTACLOUD_DRIVER'] = req.params['api']['driver']
      end
      if req.params['api'] and req.params['api']['provider']
        env['HTTP_X_DELTACLOUD_PROVIDER'] = req.params['api']['provider']
      end
      HEADER_TO_ENV_MAP.each do |header, name|
        original_settings[name] = Thread.current[name]
        new_setting = extract_header(env, header)
        Thread.current[name] = new_setting if new_setting
      end

      @app.call(env)
    ensure
      original_settings.each { |name, value| Thread.current[name] = value }
    end