Good one!
Actually, changing it to
if(!memcmp(&iph->ip_dst,iui->addr1,4)){
iui->frames1++;
iui->bytes1+=pinfo->fd->pkt_len;
} else {
iui->frames2++;
iui->bytes2+=pinfo->fd->pkt_len;
}
Would probably align it better aesthetically (and algorithmically) with
the "eth" and"tr" subroutines.
Martin
Martin Visser ,CISSP
Network and Security Consultant
Technology & Infrastructure - Consulting & Integration
HP Services
3 Richardson Place
North Ryde, Sydney NSW 2113, Australia
Phone *: +61-2-9022-1670 Mobile *: +61-411-254-513
Fax 7: +61-2-9022-1800 E-mail * : martin.visser@xxxxxx
-----Original Message-----
From: martin.regner@xxxxxxxxx [mailto:martin.regner@xxxxxxxxx]
Sent: Monday, 19 May 2003 8:02 PM
To: Visser, Martin (Sydney); ethereal-dev@xxxxxxxxxxxx
Subject: Re: [Ethereal-dev] Tethereal -z io,users,ip has stats in wrong
order
Martin Visser worte:
>
> I had a quick look at the code in "tap-iousers.c", but I can't confirm
> where it is going wrong. I noticed some swapping/ordering going on
> that looks a bit suss???
>
> if(iph->ip_src>iph->ip_dst){
> addr1=iph->ip_src;
> addr2=iph->ip_dst;
> } else {
> addr2=iph->ip_src;
> addr1=iph->ip_dst;
> }
>
>
>
I think that:
if(!memcmp(&iph->ip_src,iui->addr1,4)){
iui->frames1++;
iui->bytes1+=pinfo->fd->pkt_len;
} else {
iui->frames2++;
iui->bytes2+=pinfo->fd->pkt_len;
}
should be changed to:
if(memcmp(&iph->ip_src,iui->addr1,4)){
iui->frames1++;
iui->bytes1+=pinfo->fd->pkt_len;
} else {
iui->frames2++;
iui->bytes2+=pinfo->fd->pkt_len;
}
when ip_src is NOT equal to addr1 then frames1 should be stepped it
seems from the udpip and tcpip (direction=1 in the udpip scenario).
memcmp returns 0 if they are equal.