Re: [PATCH 10/10] daemon: fix type of `max_connections`

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 29, 2024 at 02:13:31PM +0100, Patrick Steinhardt wrote:

> The `max_connections` type tracks how many children git-daemon(1) would
> spawn at the same time. This value can be controlled via a command line
> switch: if given a positive value we'll set that up as the limit. But
> when given either zero or a negative value we don't enforce any limit at
> all.
> 
> But even when being passed a negative value we won't actually store it,
> but normalize it to 0. Still, the variable used to store the config is
> using a signed integer, which causes warnings when comparing the number
> of accepted connections (`max_connections`) with the number of current
> connections being handled (`live_children`).
> 
> Adapt the type of `max_connections` such that the types of both
> variables match.

Makes sense.

> @@ -1315,10 +1313,11 @@ int cmd_main(int argc, const char **argv)
>  			continue;
>  		}
>  		if (skip_prefix(arg, "--max-connections=", &v)) {
> -			if (strtol_i(v, 10, &max_connections))
> +			int parsed_value;
> +			if (strtol_i(v, 10, &parsed_value))
>  				die(_("invalid max-connections '%s', expecting an integer"), v);
> -			if (max_connections < 0)
> -				max_connections = 0;  /* unlimited */
> +			/* A negative value indicates unlimited children. */
> +			max_connections = parsed_value < 0 ? 0 : parsed_value;
>  			continue;
>  		}

If this were a common pattern, we might want some kind of helper that
parses and clamps the negative values. But I suspect it's not common
enough to merit that, and it's not too many extra lines of code to parse
and assign separately. So this looks good.

-Peff




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux