All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Pavel Emelyanov <xemul@parallels.com>
Cc: Stephen Hemminger <shemminger@linux-foundation.org>,
	Linux Netdev List <netdev@vger.kernel.org>
Subject: Re: [PATCH] ss:  Show inet and unix sockets' shutdown state
Date: Fri, 17 May 2013 22:08:06 +0400	[thread overview]
Message-ID: <51967206.5020908@cogentembedded.com> (raw)
In-Reply-To: <51964669.7020503@parallels.com>

Hello.

On 05/17/2013 07:02 PM, Pavel Emelyanov wrote:

> When extended info is requested (-e option) one will be able to observe
> arrows in the output, like this:
>
> ESTAB 0 0  127.0.0.1:41705  127.0.0.1:12345  ino:143321 sk:ffff88003a8cea00 -->
> ESTAB 0 0  127.0.0.1:46925  127.0.0.1:12346  ino:143322 sk:ffff88003a8ce4c0 <--
> ESTAB 0 0  127.0.0.1:51678  127.0.0.1:12347  ino:143323 sk:ffff88003a8cdf80 ---
> ESTAB 0 0  127.0.0.1:46911  127.0.0.1:12348  ino:143324 sk:ffff88003b7f05c0 <->
>
> for SHUT_RD, SHUT_WR, SHUT_RDWR and non-shutdown sockets respectively.
>
> The respective nlattrs in *_diag messages has appeared in Linux v3.7 and
> are already present in ss's headers.
>
> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
>
> ---
>
> diff --git a/misc/ss.c b/misc/ss.c
> index 5493630..c32574c 100644
> --- a/misc/ss.c
> +++ b/misc/ss.c
> @@ -1350,15 +1350,12 @@ static void print_skmeminfo(struct rtattr *tb[], int attrtype)
>   	printf(")");
>   }
>   
> -static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r)
> +static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
> +		struct rtattr *tb[])

     Should be aligned under the next char after (.

> @@ -1443,9 +1440,13 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r)
>   
>   static int inet_show_sock(struct nlmsghdr *nlh, struct filter *f)
>   {
> +	struct rtattr * tb[INET_DIAG_MAX+1];
>   	struct inet_diag_msg *r = NLMSG_DATA(nlh);
>   	struct tcpstat s;
>   
> +	parse_rtattr(tb, INET_DIAG_MAX, (struct rtattr*)(r+1),
> +		     nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*r)));
> +
>   	s.state = r->idiag_state;
>   	s.local.family = s.remote.family = r->idiag_family;
>   	s.lport = ntohs(r->id.idiag_sport);
> @@ -1494,10 +1495,15 @@ static int inet_show_sock(struct nlmsghdr *nlh, struct filter *f)
>   		if (r->id.idiag_cookie[1] != 0)
>   			printf("%08x", r->id.idiag_cookie[1]);
>    		printf("%08x", r->id.idiag_cookie[0]);
> +		if (tb[INET_DIAG_SHUTDOWN]) {
> +			unsigned char mask;

    Empty line wouldn't hurt here, after declaration.

> +			mask = *(__u8 *)RTA_DATA(tb[INET_DIAG_SHUTDOWN]);
> +			printf(" %c-%c", mask & 1 ? '-' : '<', mask & 2 ? '-' : '>');
> +		}
>   	}
>   	if (show_mem || show_tcpinfo) {
>   		printf("\n\t");
> -		tcp_show_info(nlh, r);
> +		tcp_show_info(nlh, r, tb);
>   	}
>   
>   	printf("\n");
> @@ -2203,6 +2209,14 @@ static int unix_show_sock(struct nlmsghdr *nlh, struct filter *f)
>   		print_skmeminfo(tb, UNIX_DIAG_MEMINFO);
>   	}
>   
> +	if (show_details) {
> +		if (tb[UNIX_DIAG_SHUTDOWN]) {
> +			unsigned char mask;

     Here too.

> +			mask = *(__u8 *)RTA_DATA(tb[UNIX_DIAG_SHUTDOWN]);
> +			printf(" %c-%c", mask & 1 ? '-' : '<', mask & 2 ? '-' : '>');
> +		}
> +	}
> +
>

WBR, Sergei

      reply	other threads:[~2013-05-17 18:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-17 15:02 [PATCH] ss: Show inet and unix sockets' shutdown state Pavel Emelyanov
2013-05-17 18:08 ` Sergei Shtylyov [this message]

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=51967206.5020908@cogentembedded.com \
    --to=sergei.shtylyov@cogentembedded.com \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@linux-foundation.org \
    --cc=xemul@parallels.com \
    /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.