class Falcon::Proxy

def call(request, peer: nil, **options)

def call(request, peer: nil, **options)
	if endpoint = lookup(request)
		@count += 1
		
		if peer and address = peer.remote_address and address.ip?
			request.headers.add(X_FORWARDED_FOR, address.ip_address)
		end
		
		request.headers.add(VIA, "#{request.version} #{self.class}")
		
		client = connect(endpoint)
		
		prepare_headers(request.headers)
		client.call(request)
	else
		super
	end
rescue
	Async.logger.error(self) {$!}
	return Async::HTTP::Response[502, {'content-type' => 'text/plain'}, ["#{$!.inspect}: #{$!.backtrace.join("\n")}"]]
end