On Thu, Jul 23, 2015 at 12:13:12AM +0300, Vadim Kochan wrote: > From: Vadim Kochan <[email protected]> > > It might be a case that local host is a dst peer > and the process might be found by dst port. > > Signed-off-by: Vadim Kochan <[email protected]> > --- > flowtop.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/flowtop.c b/flowtop.c > index 59da529..cdf1018 100644 > --- a/flowtop.c > +++ b/flowtop.c > @@ -431,7 +431,7 @@ static void walk_processes(struct flow_entry *n) > closedir(dir); > } > > -static int get_port_inode(uint16_t port, int proto, int is_ip6) > +static int get_port_inode(uint16_t sp, uint16_t dp, int proto, int is_ip6) > { > int ret = -ENOENT; > char path[128], buff[1024]; > @@ -454,7 +454,7 @@ static int get_port_inode(uint16_t port, int proto, int > is_ip6) > buff[sizeof(buff) - 1] = 0; > if (sscanf(buff, "%*u: %*X:%X %*X:%*X %*X %*X:%*X %*X:%*X " > "%*X %*u %*u %u", &lport, &inode) == 2) { > - if ((uint16_t) lport == port) { > + if ((uint16_t) lport == sp || (uint16_t) lport == dp) { > ret = inode; > break; > } > @@ -675,7 +675,7 @@ static void flow_entry_get_extended(struct flow_entry *n) > flow_entry_get_extended_geo(n, flow_entry_dst); > > /* Lookup application */ > - n->inode = get_port_inode(n->port_src, n->l4_proto, > + n->inode = get_port_inode(n->port_src, n->port_dst, n->l4_proto, > n->l3_proto == AF_INET6); > if (n->inode > 0) > walk_processes(n); > -- > 2.4.2 >
Sorry this might be buggy if dst port from #1 connection will be the same as src port from connectoin #2, so it needs to do checking separately for src & dst in case if src lookup was failed. -- You received this message because you are subscribed to the Google Groups "netsniff-ng" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
