On Wed, Jan 21, 2026 at 07:06:10PM -0500, Jon Maloy wrote: > On 2026-01-19 00:02, David Gibson wrote: > > On Sun, Jan 18, 2026 at 05:16:04PM -0500, Jon Maloy wrote: [snip] > > > +/** > > > + * conf_addr_prefix_len() - Parse address with optional prefix length > > > + * @arg: Address string, optionally with /prefix_len suffix (modified) > > > + * @addr: Output for parsed address > > > + * @prefix_len: Output for prefix length (0 if not specified) > > > + * > > > + * Return: AF_INET for IPv4, AF_INET6 for IPv6, -1 on error > > > + */ > > > +static int conf_addr_prefix_len(char *arg, union inany_addr *addr, > > > + int *prefix_len) > > > +{ > > > + char *slash; > > > + > > > + *prefix_len = 0; > > > + > > > + /* Check for /prefix_len suffix */ > > > + slash = strchr(arg, '/'); > > > + if (slash) { > > > + unsigned long len; > > > + char *end; > > > + > > > + *slash = '\0'; > > > + errno = 0; > > > + len = strtoul(slash + 1, &end, 10); > > > + if (errno || *end) > > > + return -1; > > > + > > > + *prefix_len = len; > > > + } > > > + > > > + if (!inany_prefix_pton(arg, addr, prefix_len)) > > > + return -1; > > > > Oh, sorry, I wasn't clear. My idea was that inany_prefix_pton() would > > handle the parsing (strchr(), strtoul() etc.) of the prefix length > > internally, rather than doing that here then adjusting it in there. > > Ok. So I basically eliminate conf_addr_perfix_len() and replace it with > a inany_prefix_pton() which does all the job. Makes sense. Yes. > Regarding the prefix length adjustment: if I give some address in one of the > following two formats: > 192.168.1.1/24 > or > ::ffff:192.168.1.1/120 > > they will both be stored in the array in exactly the same > format, as ::ffff:192.168.1.1. Yes. > It makes little sense to use two different prefix lengths just > because the user happened to use some specific format, and would > only create problems for anybody trying to access that entry later. > I think this one *should* be adjusted. Absolutely, but they should all be adjusted to the IPv6 form, not the IPv4 form. -- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson