From 698e9c0699c9db5620b716f094ca47c5d69dddb9 Mon Sep 17 00:00:00 2001 From: Jamie Date: Sun, 16 Aug 2009 18:43:16 +0100 Subject: [PATCH] fix incorrect offset in decode-ethernet for PPPoE, more debug statements --- src/decode-ethernet.c | 2 +- src/decode-icmpv4.c | 3 +++ src/decode-pppoe.c | 7 ++++++- src/decode-pppoe.h | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/decode-ethernet.c b/src/decode-ethernet.c index 9d0e60841f..ecd30abe9c 100644 --- a/src/decode-ethernet.c +++ b/src/decode-ethernet.c @@ -30,7 +30,7 @@ void DecodeEthernet(ThreadVars *t, Packet *p, uint8_t *pkt, uint16_t len, Packet } else if(ntohs(ethh->eth_type) == ETHERNET_TYPE_PPPoE_SESS) { //printf("DecodeEthernet PPPoE\n"); PerfCounterIncr(COUNTER_DECODER_PPPOE, t->pca); - DecodePPPoE(t, p, pkt + PPPOE_HEADER_LEN, len - PPPOE_HEADER_LEN, pq); + DecodePPPoE(t, p, pkt + ETHERNET_HEADER_LEN, len - ETHERNET_HEADER_LEN, pq); } return; diff --git a/src/decode-icmpv4.c b/src/decode-icmpv4.c index c9d4d98311..d5518507bf 100644 --- a/src/decode-icmpv4.c +++ b/src/decode-icmpv4.c @@ -5,6 +5,9 @@ #include "decode-icmpv4.h" #include "util-unittest.h" +/** DecodeICMPV4 + * \brief Main ICMPv4 decoding function + */ void DecodeICMPV4(ThreadVars *t, Packet *p, uint8_t *pkt, uint16_t len) { p->icmpv4h = (ICMPV4Hdr *)pkt; diff --git a/src/decode-pppoe.c b/src/decode-pppoe.c index 2b17d7a09b..697fdced75 100644 --- a/src/decode-pppoe.c +++ b/src/decode-pppoe.c @@ -32,7 +32,12 @@ void DecodePPPoE(ThreadVars *t, Packet *p, uint8_t *pkt, uint16_t len, PacketQue if (p->pppoeh == NULL) return; - if (p->pppoeh->pppoe_length > 0) { +#ifdef DEBUG + printf("PPPOE VERSION %" PRIu32 " TYPE %" PRIu32 " CODE %" PRIu32 " SESSIONID %" PRIu32 " LENGTH %" PRIu32 "\n", + p->pppoeh->pppoe_version, p->pppoeh->pppoe_type, p->pppoeh->pppoe_code, ntohs(p->pppoeh->session_id), ntohs(p->pppoeh->pppoe_length)); +#endif + + if (ntohs(p->pppoeh->pppoe_length) > 0) { /* decode contained PPP packet */ PerfCounterIncr(COUNTER_DECODER_PPP, t->pca); DecodePPP(t, p, pkt + PPPOE_HEADER_LEN, len - PPPOE_HEADER_LEN, pq); diff --git a/src/decode-pppoe.h b/src/decode-pppoe.h index 2903438341..1b0f33d956 100644 --- a/src/decode-pppoe.h +++ b/src/decode-pppoe.h @@ -24,7 +24,7 @@ typedef struct _PPPoEHdr unsigned pppoe_version : 4; unsigned pppoe_type : 4; uint8_t pppoe_code; - uint16_t sessin_id; + uint16_t session_id; uint16_t pppoe_length; } PPPoEHdr;