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 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome