Message ID | 20220830123104.256224-7-v.v.mitrofanov@yadro.com |
---|---|
State | Superseded |
Delegated to: | Ramon Fried |
Headers | show |
Series | IPv6 support | expand |
Hi Viacheslav, On Tue, 30 Aug 2022 at 07:01, Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com> wrote: > > Add the possibility to recognize IPv6 address in print function. > To output IPv6 address use %pI6 specifier. > > Signed-off-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com> > --- > lib/vsprintf.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/lib/vsprintf.c b/lib/vsprintf.c > index fe06aa2d71..d5856b1cbe 100644 > --- a/lib/vsprintf.c > +++ b/lib/vsprintf.c > @@ -346,6 +346,7 @@ static char *mac_address_string(char *buf, char *end, u8 *addr, int field_width, > flags & ~SPECIAL); > } > > +#if IS_ENABLED(CONFIG_IPV6) > static char *ip6_addr_string(char *buf, char *end, u8 *addr, int field_width, > int precision, int flags) > { > @@ -365,6 +366,7 @@ static char *ip6_addr_string(char *buf, char *end, u8 *addr, int field_width, > return string(buf, end, ip6_addr, field_width, precision, > flags & ~SPECIAL); > } > +#endif > > static char *ip4_addr_string(char *buf, char *end, u8 *addr, int field_width, > int precision, int flags) > @@ -450,10 +452,6 @@ static char *uuid_string(char *buf, char *end, u8 *addr, int field_width, > * decimal for v4 and colon separated network-order 16 bit hex for v6) > * - 'i' [46] for 'raw' IPv4/IPv6 addresses, IPv6 omits the colons, IPv4 is > * currently the same > - * > - * Note: IPv6 support is currently if(0)'ed out. If you ever need > - * %pI6, please add an IPV6 Kconfig knob, make your code select or > - * depend on that, and change the 0 below to CONFIG_IS_ENABLED(IPV6). > */ > static char *pointer(const char *fmt, char *buf, char *end, void *ptr, > int field_width, int precision, int flags) > @@ -498,10 +496,11 @@ static char *pointer(const char *fmt, char *buf, char *end, void *ptr, > flags |= SPECIAL; > /* Fallthrough */ > case 'I': > - /* %pI6 currently unused */ > - if (0 && fmt[1] == '6') > +#if IS_ENABLED(CONFIG_IPV6) > + if (fmt[1] == '6') Can you do: if (CONFIG_ IS_ENABLED(IPV6) && fmt[1] == '6') and drop the #if of the function above? > return ip6_addr_string(buf, end, ptr, field_width, > precision, flags); > +#endif > if (fmt[1] == '4') > return ip4_addr_string(buf, end, ptr, field_width, > precision, flags); > -- > 2.25.1 > Regards, Simon
diff --git a/lib/vsprintf.c b/lib/vsprintf.c index fe06aa2d71..d5856b1cbe 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -346,6 +346,7 @@ static char *mac_address_string(char *buf, char *end, u8 *addr, int field_width, flags & ~SPECIAL); } +#if IS_ENABLED(CONFIG_IPV6) static char *ip6_addr_string(char *buf, char *end, u8 *addr, int field_width, int precision, int flags) { @@ -365,6 +366,7 @@ static char *ip6_addr_string(char *buf, char *end, u8 *addr, int field_width, return string(buf, end, ip6_addr, field_width, precision, flags & ~SPECIAL); } +#endif static char *ip4_addr_string(char *buf, char *end, u8 *addr, int field_width, int precision, int flags) @@ -450,10 +452,6 @@ static char *uuid_string(char *buf, char *end, u8 *addr, int field_width, * decimal for v4 and colon separated network-order 16 bit hex for v6) * - 'i' [46] for 'raw' IPv4/IPv6 addresses, IPv6 omits the colons, IPv4 is * currently the same - * - * Note: IPv6 support is currently if(0)'ed out. If you ever need - * %pI6, please add an IPV6 Kconfig knob, make your code select or - * depend on that, and change the 0 below to CONFIG_IS_ENABLED(IPV6). */ static char *pointer(const char *fmt, char *buf, char *end, void *ptr, int field_width, int precision, int flags) @@ -498,10 +496,11 @@ static char *pointer(const char *fmt, char *buf, char *end, void *ptr, flags |= SPECIAL; /* Fallthrough */ case 'I': - /* %pI6 currently unused */ - if (0 && fmt[1] == '6') +#if IS_ENABLED(CONFIG_IPV6) + if (fmt[1] == '6') return ip6_addr_string(buf, end, ptr, field_width, precision, flags); +#endif if (fmt[1] == '4') return ip4_addr_string(buf, end, ptr, field_width, precision, flags);
Add the possibility to recognize IPv6 address in print function. To output IPv6 address use %pI6 specifier. Signed-off-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com> --- lib/vsprintf.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)