ss: Replace pktstat struct by new sockstat struct

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
This commit is contained in:
Vadim Kochan 2015-02-13 22:13:59 +02:00 committed by Stephen Hemminger
parent 055840f27f
commit 89f634f917
1 changed files with 12 additions and 21 deletions

View File

@ -693,6 +693,8 @@ static const char *sstate_namel[] = {
struct sockstat struct sockstat
{ {
uint8_t type;
uint16_t prot;
inet_prefix local; inet_prefix local;
inet_prefix remote; inet_prefix remote;
int lport; int lport;
@ -2731,29 +2733,18 @@ static int unix_show(struct filter *f)
return 0; return 0;
} }
struct pktstat { static int packet_stats_print(struct sockstat *s, const struct filter *f)
uint8_t type;
uint16_t prot;
uint32_t iface;
int state;
uint32_t rq;
uid_t uid;
ino_t ino;
};
static int packet_stats_print(struct pktstat *s, const struct filter *f)
{ {
char *buf = NULL; char *buf = NULL;
if (f->f) { if (f->f) {
struct sockstat st; s->local.family = AF_PACKET;
st.local.family = AF_PACKET; s->remote.family = AF_PACKET;
st.remote.family = AF_PACKET; s->rport = 0;
st.rport = 0; s->lport = s->iface;
st.lport = s->iface; s->local.data[0] = s->prot;
st.local.data[0] = s->prot; s->remote.data[0] = 0;
st.remote.data[0] = 0; if (run_ssfilter(f->f, s) == 0)
if (run_ssfilter(f->f, &st) == 0)
return 1; return 1;
} }
@ -2802,7 +2793,7 @@ static int packet_show_sock(const struct sockaddr_nl *addr,
const struct filter *f = arg; const struct filter *f = arg;
struct packet_diag_msg *r = NLMSG_DATA(nlh); struct packet_diag_msg *r = NLMSG_DATA(nlh);
struct rtattr *tb[PACKET_DIAG_MAX+1]; struct rtattr *tb[PACKET_DIAG_MAX+1];
struct pktstat stat = {}; struct sockstat stat = {};
parse_rtattr(tb, PACKET_DIAG_MAX, (struct rtattr*)(r+1), parse_rtattr(tb, PACKET_DIAG_MAX, (struct rtattr*)(r+1),
nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*r))); nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*r)));
@ -2871,7 +2862,7 @@ static int packet_show_netlink(struct filter *f)
static int packet_show_line(char *buf, const struct filter *f, int fam) static int packet_show_line(char *buf, const struct filter *f, int fam)
{ {
unsigned long long sk; unsigned long long sk;
struct pktstat stat = {}; struct sockstat stat = {};
int type, prot, iface, state, rq, uid, ino; int type, prot, iface, state, rq, uid, ino;
sscanf(buf, "%llx %*d %d %x %d %d %u %u %u", sscanf(buf, "%llx %*d %d %x %d %d %u %u %u",