diff options
Diffstat (limited to 'FLOW.md')
-rw-r--r-- | FLOW.md | 38 |
1 files changed, 38 insertions, 0 deletions
@@ -0,0 +1,38 @@ +pacredir - request flow +======================= + +[◀ Go back to main README](README.md) + +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. + +![OK - serving from local network](FLOW/ok.svg) + +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. + +![FAIL - fallback to mirror](FLOW/fail.svg) + +All requests made by `pacredir` are answered with http code `404`, thus +`pacman` receives the same. Finally `pacman` falls back to the next mirror. + +--- +[◀ Go back to main README](README.md) +[▲ Go back to top](#top) |