diff options
author | Christian Hesse <mail@eworm.de> | 2021-05-28 16:11:24 +0200 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2021-06-07 09:59:03 +0200 |
commit | 6a3e91262b53d13f90383ff2604cff1bbebe7c40 (patch) | |
tree | 2a4e518904511ee54c49b8dd1db8e6a60677fb7c | |
parent | 4a4d07193cba5e07ba4c4d94d241cc438b8b2b7c (diff) | |
download | pacredir-6a3e91262b53d13f90383ff2604cff1bbebe7c40.tar.gz pacredir-6a3e91262b53d13f90383ff2604cff1bbebe7c40.tar.zst |
do not redirect if database file is too old
The Arch repositories see regular updates... Consider a database file
older than 24 hours out-of-date and do not redirect.
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | pacredir.c | 5 |
2 files changed, 6 insertions, 5 deletions
@@ -62,9 +62,9 @@ Do not worry if `pacman` reports: This is ok, it just tells `pacman` that `pacredir` could not find a file and downloading it from an official server is required. -Please note that `pacredir` redirects to the most recent file found on -the local network. To make sure you really do have the latest files run -`pacman -Syu` *twice*. +Please note that `pacredir` redirects to the most recent database file +found on the local network if it is not too old (currently 24 hours). To +make sure you really do have the latest files run `pacman -Syu` *twice*. To get a better idea what happens in the background have a look at [the request flow chart](FLOW.md). @@ -524,8 +524,9 @@ static mhd_result ahc_echo(void * cls, } if (request->http_code == MHD_HTTP_OK && - /* for db files choose the most recent server */ - ((dbfile == 1 && ((request->last_modified > last_modified) || + /* for db files choose the most recent server when not too old */ + ((dbfile == 1 && ((request->last_modified > last_modified && + request->last_modified + 86400 > time(NULL)) || /* but use a faster server if available */ (url != NULL && request->last_modified >= last_modified && |