On Thu, Sep 03, 2015 at 04:36:18PM +0200, Tobias Klauser wrote:
> On 2015-09-02 at 01:31:16 +0200, Vadim Kochan <vadi...@gmail.com> wrote:
> > From: Vadim Kochan <vadi...@gmail.com>
> > 
> > Show human readable time since flow was created by Linux
> > 
> > Signed-off-by: Vadim Kochan <vadi...@gmail.com>
> > ---
> >  flowtop.c | 38 ++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 38 insertions(+)
> > 
> > diff --git a/flowtop.c b/flowtop.c
> > index d988590..d073715 100644
> > --- a/flowtop.c
> > +++ b/flowtop.c
> > @@ -41,6 +41,10 @@
> >  #include "proc.h"
> >  #include "sysctl.h"
> >  
> > +#ifndef NSEC_PER_SEC
> > +#define NSEC_PER_SEC 1000000000L
> > +#endif
> > +
> >  struct flow_entry {
> >     uint32_t flow_id, use, status;
> >     uint8_t  l3_proto, l4_proto;
> > @@ -750,6 +754,37 @@ static void presenter_print_counters(uint64_t bytes, 
> > uint64_t pkts, int color)
> >     printw(")");
> >  }
> >  
> > +static void presenter_print_flow_entry_time(struct flow_entry *n)
> > +{
> > +   int secs = n->timestamp_start / NSEC_PER_SEC;
> > +   int mns_sub, sec_sub;
> > +   int mns, hrs;
> > +   time_t now;
> > +
> > +   time(&now);
> > +   sec_sub = secs = now - secs;
> > +
> > +   if (secs <= 0)
> > +           return;
> > +
> > +   mns_sub = mns = secs / 60;
> > +   hrs = secs / 3600;
> > +
> > +   if (secs > 60)
> > +           sec_sub = secs - mns * 60;
> > +   if (mns > 60)
> > +           mns_sub = mns - hrs * 60;
> > +
> > +   printw(" [ time");
> > +   if (hrs > 0)
> > +           printw(" %dh", hrs);
> > +   if (mns_sub > 0)
> > +           printw(" %dm", mns_sub);
> > +   if (sec_sub > 0)
> > +           printw(" %ds", sec_sub);
> > +   printw(" ]");
> > +}
> 
> This could be done a bit easier, using less variables and more straight
> forward to read:
> 
> static void presenter_print_flow_entry_time(struct flow_entry *n)
> {
>       int h, m, s;
>       time_t now;
> 
>       time(&now);
> 
>       s = now - (n->timestamp_start / NSEC_PER_SEC);
>       if (s <= 0)
>               return;
> 
>       h = s / 3600;
>       s -= h * 3600;
>       m = s / 60;
>       s -= m * 60;
> 
>       printw(" [ time");
>       if (h > 0)
>               printw(" %dh", h);
>       if (m > 0)
>               printw(" %dm", m);
>       if (s > 0)
>               printw(" %ds", s);
>       printw(" ]");
> }
> 
> I applied the patch with this version instead.

What do you think if it is better to show time duration only by '-t' option ?
Is it possible that time duration counting for each flow might stress someone ?

Regards,

-- 
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 netsniff-ng+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to