Make Slirp statistics gathering and output conditional to LOG_ENABLED

Add 'info slirp' command to monitor to display statistics
Disable Slirp debugging code by default


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3451 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
blueswir1 2007-10-26 18:42:59 +00:00
parent 7d294b61ed
commit 31a60e2275
22 changed files with 203 additions and 125 deletions

View file

@ -37,7 +37,9 @@
#include "slirp.h"
#include "ip_icmp.h"
#ifdef LOG_ENABLED
struct icmpstat icmpstat;
#endif
/* The message sent when emulating PING */
/* Be nice and tell them it's just a psuedo-ping packet */
@ -83,14 +85,14 @@ icmp_input(m, hlen)
DEBUG_ARG("m = %lx", (long )m);
DEBUG_ARG("m_len = %d", m->m_len);
icmpstat.icps_received++;
STAT(icmpstat.icps_received++);
/*
* Locate icmp structure in mbuf, and check
* that its not corrupted and of at least minimum length.
*/
if (icmplen < ICMP_MINLEN) { /* min 8 bytes payload */
icmpstat.icps_tooshort++;
STAT(icmpstat.icps_tooshort++);
freeit:
m_freem(m);
goto end_error;
@ -100,7 +102,7 @@ icmp_input(m, hlen)
m->m_data += hlen;
icp = mtod(m, struct icmp *);
if (cksum(m, icmplen)) {
icmpstat.icps_checksum++;
STAT(icmpstat.icps_checksum++);
goto freeit;
}
m->m_len += hlen;
@ -170,12 +172,12 @@ icmp_input(m, hlen)
case ICMP_TSTAMP:
case ICMP_MASKREQ:
case ICMP_REDIRECT:
icmpstat.icps_notsupp++;
STAT(icmpstat.icps_notsupp++);
m_freem(m);
break;
default:
icmpstat.icps_badtype++;
STAT(icmpstat.icps_badtype++);
m_freem(m);
} /* swith */
@ -314,7 +316,7 @@ icmp_error(msrc, type, code, minsize, message)
(void ) ip_output((struct socket *)NULL, m);
icmpstat.icps_reflect++;
STAT(icmpstat.icps_reflect++);
end_error:
return;
@ -371,5 +373,5 @@ icmp_reflect(m)
(void ) ip_output((struct socket *)NULL, m);
icmpstat.icps_reflect++;
STAT(icmpstat.icps_reflect++);
}