pacredir - request flow
Whenever pacman sends a request to pacredir a number of requests
(increasing with the number of hosts found) is sent through the network.
Let's assume pacredir knows about two hosts.
OK - serving from local network
In this exemple one hast (host A) is missing the file, but second
one (host B) does have the file.
For database files the decision on what return code (307 vs. 404) to
send is made on the file age. The local file's timestamp is compared to
what timestamp pacman sends in its request.
After the initial request pacman is redirected to host B and gets the
file there. No request is sent to the mirror.
FAIL - fallback to mirror
In this example no host has the file or the local database files are older
than what pacman requested.
All requests made by pacredir are answered with http code 404, thus
pacman receives the same. Finally pacman falls back to the next mirror.