On Tue, May 24, 2022 at 10:03:31AM +0200, Claudio Jeker wrote:
> This diff moves and renames the defines that define the maximum number of
> parallel requests for http and rsync.
> The defines are now MAX_HTTP_REQUESTS and MAX_RSYNC_REQUESTS the values
> remane the same.

ok

> Also move the memset of pollfd sets in http.c into the loop. It is not
> needed but I prefer it that way.

Also ok. I would commit this separately as it is completely unrelated.

> 
> -- 
> :wq Claudio
> 
> Index: extern.h
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/extern.h,v
> retrieving revision 1.137
> diff -u -p -r1.137 extern.h
> --- extern.h  11 May 2022 21:19:06 -0000      1.137
> +++ extern.h  24 May 2022 07:44:22 -0000
> @@ -702,8 +702,9 @@ int       mkpathat(int, const char *);
>  /* Maximum depth of the RPKI tree. */
>  #define MAX_CERT_DEPTH               12
>  
> -/* Maximum number of concurrent rsync processes. */
> -#define MAX_RSYNC_PROCESSES  16
> +/* Maximum number of concurrent http and rsync requests. */
> +#define MAX_HTTP_REQUESTS    64
> +#define MAX_RSYNC_REQUESTS   16
>  
>  /* Maximum allowd repositories per tal */
>  #define MAX_REPO_PER_TAL     1000
> Index: http.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/http.c,v
> retrieving revision 1.60
> diff -u -p -r1.60 http.c
> --- http.c    15 May 2022 16:43:34 -0000      1.60
> +++ http.c    24 May 2022 07:44:22 -0000
> @@ -71,9 +71,8 @@
>  #define HTTP_BUF_SIZE                (32 * 1024)
>  #define HTTP_IDLE_TIMEOUT    10
>  #define HTTP_IO_TIMEOUT              (3 * 60)
> -#define MAX_CONNECTIONS              64
>  #define MAX_CONTENTLEN               (2 * 1024 * 1024 * 1024LL)
> -#define NPFDS                        (MAX_CONNECTIONS + 1)
> +#define NPFDS                        (MAX_HTTP_REQUESTS + 1)
>  
>  enum res {
>       DONE,
> @@ -620,7 +619,7 @@ http_req_schedule(struct http_request *r
>               return 1;
>       }
>  
> -     if (http_conn_count < MAX_CONNECTIONS) {
> +     if (http_conn_count < MAX_HTTP_REQUESTS) {
>               http_new(req);
>               return 1;
>       }
> @@ -1793,8 +1792,6 @@ proc_http(char *bind_addr, int fd)
>       if (pledge("stdio inet dns recvfd", NULL) == -1)
>               err(1, "pledge");
>  
> -     memset(&pfds, 0, sizeof(pfds));
> -
>       msgbuf_init(&msgq);
>       msgq.fd = fd;
>  
> @@ -1803,6 +1800,7 @@ proc_http(char *bind_addr, int fd)
>               int timeout;
>               size_t i;
>  
> +             memset(&pfds, 0, sizeof(pfds));
>               pfds[0].fd = fd;
>               pfds[0].events = POLLIN;
>               if (msgq.queued)
> Index: rsync.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/rsync.c,v
> retrieving revision 1.37
> diff -u -p -r1.37 rsync.c
> --- rsync.c   20 Apr 2022 15:38:24 -0000      1.37
> +++ rsync.c   24 May 2022 07:44:22 -0000
> @@ -147,7 +147,7 @@ proc_rsync(char *prog, char *bind_addr, 
>       struct msgbuf            msgq;
>       struct ibuf             *b, *inbuf = NULL;
>       sigset_t                 mask, oldmask;
> -     struct rsyncproc         ids[MAX_RSYNC_PROCESSES] = { 0 };
> +     struct rsyncproc         ids[MAX_RSYNC_REQUESTS] = { 0 };
>  
>       if (pledge("stdio rpath proc exec unveil", NULL) == -1)
>               err(1, "pledge");
> @@ -211,7 +211,7 @@ proc_rsync(char *prog, char *bind_addr, 
>               int st;
>  
>               pfd.events = 0;
> -             if (nprocs < MAX_RSYNC_PROCESSES)
> +             if (nprocs < MAX_RSYNC_REQUESTS)
>                       pfd.events |= POLLIN;
>               if (msgq.queued)
>                       pfd.events |= POLLOUT;
> @@ -230,10 +230,10 @@ proc_rsync(char *prog, char *bind_addr, 
>                       while ((pid = waitpid(WAIT_ANY, &st, WNOHANG)) > 0) {
>                               int ok = 1;
>  
> -                             for (i = 0; i < MAX_RSYNC_PROCESSES; i++)
> +                             for (i = 0; i < MAX_RSYNC_REQUESTS; i++)
>                                       if (ids[i].pid == pid)
>                                               break;
> -                             if (i >= MAX_RSYNC_PROCESSES)
> +                             if (i >= MAX_RSYNC_REQUESTS)
>                                       errx(1, "waitpid: %d unexpected", pid);
>  
>                               if (!WIFEXITED(st)) {
> @@ -278,7 +278,7 @@ proc_rsync(char *prog, char *bind_addr, 
>  
>               if (!(pfd.revents & POLLIN))
>                       continue;
> -             if (nprocs >= MAX_RSYNC_PROCESSES)
> +             if (nprocs >= MAX_RSYNC_REQUESTS)
>                       continue;
>  
>               b = io_buf_read(fd, &inbuf);
> @@ -340,10 +340,10 @@ proc_rsync(char *prog, char *bind_addr, 
>  
>               /* Augment the list of running processes. */
>  
> -             for (i = 0; i < MAX_RSYNC_PROCESSES; i++)
> +             for (i = 0; i < MAX_RSYNC_REQUESTS; i++)
>                       if (ids[i].pid == 0)
>                               break;
> -             assert(i < MAX_RSYNC_PROCESSES);
> +             assert(i < MAX_RSYNC_REQUESTS);
>               ids[i].id = id;
>               ids[i].pid = pid;
>               ids[i].uri = uri;
> @@ -356,7 +356,7 @@ proc_rsync(char *prog, char *bind_addr, 
>       }
>  
>       /* No need for these to be hanging around. */
> -     for (i = 0; i < MAX_RSYNC_PROCESSES; i++)
> +     for (i = 0; i < MAX_RSYNC_REQUESTS; i++)
>               if (ids[i].pid != 0) {
>                       kill(ids[i].pid, SIGTERM);
>                       free(ids[i].uri);
> 

Reply via email to