From: Daniel Borkmann <daniel@iogearbox.net>
To: "Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: akpm@linux-foundation.org, linux@rasmusvillemoes.dk,
andriy.shevchenko@linux.intel.com, linux-kernel@vger.kernel.org,
joe@perches.com
Subject: Re: [PATCH] vsprintf: do not append unset Scope ID to IPv6
Date: Wed, 03 Feb 2016 22:07:03 +0100 [thread overview]
Message-ID: <56B26BF7.8070307@iogearbox.net> (raw)
In-Reply-To: <1454496118-26370-1-git-send-email-Jason@zx2c4.com>
On 02/03/2016 11:41 AM, Jason A. Donenfeld wrote:
> The sockaddr_in6 has the sin6_scope_id parameter. This contains the
> netdev index of the output device. When set to 0, sin6_scope_id is
> considered to be "unset" -- it has no Scope ID (see RFC4007). When it is
> set to >0, it has a Scope ID.
[...]
> So, here, either it has Scope ID, in which case it's returned, or it
> doesn't need a Scope ID, in which case 0 - "no scope id" - is returned.
>
> Therefore, vsprintf should treat the 0 Scope ID the same way the rest of
> the v6 stack and the RFC treats it: 0 Scope ID means no Scope ID. And if
> there is no Scope ID, there is nothing to be printed.
I don't see an "issue" here. I.e. if the developer requested to append 's'
to the specifier, then it's expected to dump what is in the scope id, even
if that is 0 meaning "unset" scope.
It would be principle of least surprise -- I could imagine if not dumped,
then a developer would check the source code to find out whether he did a
mistake or it's expected behavior, just to make sure. That's what I would
do probably.
Is this causing a _real_ issue somewhere (I couldn't parse one out of your
commit message other than 'it would be nice to have')?
> So, this patch only prints the Scope ID when one exists, and does not
> print a Scope ID when one does not exist.
>
> It turns out, too, that this is what developers want. The most common
> purpose of %pISpfsc is to show "what is in that sockaddr so that I can
> have some idea of how to connect to it?"
>
> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
> ---
> lib/vsprintf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/vsprintf.c b/lib/vsprintf.c
> index 48ff9c3..1b1b1c8 100644
> --- a/lib/vsprintf.c
> +++ b/lib/vsprintf.c
> @@ -1194,7 +1194,7 @@ char *ip6_addr_string_sa(char *buf, char *end, const struct sockaddr_in6 *sa,
> p = number(p, pend, ntohl(sa->sin6_flowinfo &
> IPV6_FLOWINFO_MASK), spec);
> }
> - if (have_s) {
> + if (have_s && sa->sin6_scope_id) {
> *p++ = '%';
> p = number(p, pend, sa->sin6_scope_id, spec);
> }
>
next prev parent reply other threads:[~2016-02-03 21:07 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-03 10:41 [PATCH] vsprintf: do not append unset Scope ID to IPv6 Jason A. Donenfeld
2016-02-03 12:13 ` [PATCH] vsprintf: flowinfo in IPv6 is optional too Jason A. Donenfeld
2016-02-03 17:56 ` IRe: " Joe Perches
2016-02-03 21:09 ` Jason A. Donenfeld
2016-02-03 21:13 ` Andy Shevchenko
2016-02-03 21:13 ` IRe: " Daniel Borkmann
2016-02-03 21:15 ` Jason A. Donenfeld
2016-02-03 21:07 ` Daniel Borkmann [this message]
2016-02-03 21:14 ` [PATCH] vsprintf: do not append unset Scope ID to IPv6 Jason A. Donenfeld
2016-02-03 21:47 ` Joe Perches
2016-02-03 22:09 ` Daniel Borkmann
2016-02-03 22:42 ` Jason A. Donenfeld
2016-02-03 22:53 ` [PATCH] vsprintf: automatic parameters for %pIS via 'a' Jason A. Donenfeld
2016-02-03 23:05 ` Joe Perches
2016-02-03 23:25 ` Jason A. Donenfeld
2016-02-03 23:29 ` [PATCH v2] " Jason A. Donenfeld
2016-02-03 23:37 ` Joe Perches
2016-02-04 0:59 ` [PATCH v3] " Jason A. Donenfeld
2016-02-05 0:06 ` [PATCH v2] " Rasmus Villemoes
2016-02-05 13:06 ` Jason A. Donenfeld
2016-02-05 13:37 ` [PATCH] " Jason A. Donenfeld
2016-02-05 13:39 ` [PATCH v4] " Jason A. Donenfeld
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56B26BF7.8070307@iogearbox.net \
--to=daniel@iogearbox.net \
--cc=Jason@zx2c4.com \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.