Allan McRae <[email protected]> on Fri, 2021/05/28 12:39: > On 26/5/21 6:22 pm, Christian Hesse wrote: > > Andrew Gregory <[email protected]> on Mon, 2021/05/24 11:50: > >> On 05/24/21 at 08:31pm, Christian Hesse wrote: > >>> Christian Hesse <[email protected]> on Fri, 2021/05/21 10:06: > >>>> By setting an extra HTTP header 'X-Pacman-Expected-Failure' the server > >>>> can indicate that the failure is expected. The next server is tried > >>>> without error message and without increasing the server's error count. > >>>> > >>>> This can be used by servers that are not expected to be complete, for > >>>> example when serving a local cache. > >>> > >>> Any comment on this? > >>> Where to document the behavior? > >>> > >>> BTW, this is the matching branch for pacredir: > >>> https://github.com/eworm-de/pacredir/commits/404-header > >>de/pacredir/commits/404-header > >> > >> I'm not a fan of having this be server-side. > > > > Would be a perfect fit for me and my use case. :-p > > > > For those interested... I created simple flow charts to describe what > > happens when pacman sends its requests to pacredir. > > https://git.eworm.de/cgit/pacredir/about/FLOW.md > > > > Thanks - that helps a bit. > > I'm still confused about how pacredir updates databases from a mirror. > I can see how it gets a database update from another host. Can you clarify?
Ok, let's see a more detailed example:
* pacman sends a request to pacredir, the header contains a timestamp from
synced database file in /var/lib/pacman/sync/:
If-Modified-Since: Fri, 28 May 2021 04:38:25 GMT
* pacredir sends HEAD requests to pacserve on hosts in local network
* pacserve answers with 200, but the header contains a timestamp:
Last-Modified: Fri, 28 May 2021 04:38:25 GMT
* pacredir sends a 307 with redirect to the host with most recent db file - or
404 if all requested db files are older or of same age as local file
--
main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];)
putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
pgp9He8hvqnGm.pgp
Description: OpenPGP digital signature
