Ethereal-dev: RE: [Ethereal-dev] Tethereal -z io,users,ip has stats in wrong order

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: "Visser, Martin (Sydney)" <martin.visser@xxxxxx>
Date: Mon, 19 May 2003 20:14:24 +1000
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.