On Thu, Nov 25, 2021 at 12:54:49PM +0000, Job Snijders wrote:
> Replace MAX_REPO_TIMEOUT with repo_timeout, which is set to 1/4th of
> timeout, or if timeout is disabled set it to 24 hours.
> 
> OK?

OK claudio@
 
> Index: extern.h
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/extern.h,v
> retrieving revision 1.97
> diff -u -p -r1.97 extern.h
> --- extern.h  24 Nov 2021 15:24:16 -0000      1.97
> +++ extern.h  25 Nov 2021 12:52:05 -0000
> @@ -627,7 +627,4 @@ int       mkpath(const char *);
>  /* Maximum allowd repositories per tal */
>  #define MAX_REPO_PER_TAL     1000
>  
> -/* Timeout for repository synchronisation, in seconds */
> -#define MAX_REPO_TIMEOUT     (15 * 60)
> -
>  #endif /* ! EXTERN_H */
> Index: main.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/main.c,v
> retrieving revision 1.165
> diff -u -p -r1.165 main.c
> --- main.c    19 Nov 2021 09:47:30 -0000      1.165
> +++ main.c    25 Nov 2021 12:52:05 -0000
> @@ -68,6 +68,7 @@ const char  *bird_tablename = "ROAS";
>  int  verbose;
>  int  noop;
>  int  rrdpon = 1;
> +int  repo_timeout = 15*60;
>  
>  struct stats  stats;
>  
> @@ -753,6 +754,12 @@ main(int argc, char *argv[])
>                       timeout = strtonum(optarg, 0, 24*60*60, &errs);
>                       if (errs)
>                               errx(1, "-s: %s", errs);
> +                     if (timeout == 0)
> +                             repo_timeout = 24*60*60;
> +                     else if (timeout < 300)
> +                             errx(1, "-s: %i too small", timeout);
> +                     else
> +                             repo_timeout = timeout / 4;
>                       break;
>               case 't':
>                       if (talsz >= TALSZ_MAX)
> Index: repo.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/repo.c,v
> retrieving revision 1.12
> diff -u -p -r1.12 repo.c
> --- repo.c    15 Nov 2021 16:32:15 -0000      1.12
> +++ repo.c    25 Nov 2021 12:52:05 -0000
> @@ -40,6 +40,7 @@
>  extern struct stats  stats;
>  extern int           noop;
>  extern int           rrdpon;
> +extern int           repo_timeout;
>  
>  enum repo_state {
>       REPO_LOADING = 0,
> @@ -620,7 +621,7 @@ repo_alloc(int talid)
>  
>       rp->id = ++repoid;
>       rp->talid = talid;
> -     rp->alarm = getmonotime() + MAX_REPO_TIMEOUT;
> +     rp->alarm = getmonotime() + repo_timeout;
>       TAILQ_INIT(&rp->queue);
>       SLIST_INSERT_HEAD(&repos, rp, entry);
>  
> @@ -1225,7 +1228,7 @@ static void
>  repo_fail(struct repo *rp)
>  {
>       /* reset the alarm since code may fallback to rsync */
> -     rp->alarm = getmonotime() + MAX_REPO_TIMEOUT;
> +     rp->alarm = getmonotime() + repo_timeout;
>  
>       if (rp->ta)
>               http_finish(rp->ta->id, HTTP_FAILED, NULL);
> Index: rpki-client.8
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/rpki-client.8,v
> retrieving revision 1.49
> diff -u -p -r1.49 rpki-client.8
> --- rpki-client.8     26 Oct 2021 13:26:53 -0000      1.49
> +++ rpki-client.8     25 Nov 2021 12:52:05 -0000
> @@ -131,6 +131,8 @@ seconds of runtime, because normal pract
>  .Xr cron 8 .
>  Disable by specifying 0.
>  Defaults to 1 hour.
> +Individual Publication Points are timed out after one fourth of
> +.Em timeout .
>  .It Fl T Ar table
>  For BIRD output generated with the
>  .Fl B
> 

-- 
:wq Claudio

Reply via email to