aboutsummaryrefslogtreecommitdiff
path: root/example/reader_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'example/reader_util.c')
-rw-r--r--example/reader_util.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/example/reader_util.c b/example/reader_util.c
index 3853aa919..c212597ac 100644
--- a/example/reader_util.c
+++ b/example/reader_util.c
@@ -1637,9 +1637,14 @@ struct ndpi_proto ndpi_workflow_process_packet(struct ndpi_workflow * workflow,
/* Cisco PPP - 9 or 104 */
case DLT_C_HDLC:
case DLT_PPP:
- chdlc = (struct ndpi_chdlc *) &packet[eth_offset];
- ip_offset = sizeof(struct ndpi_chdlc); /* CHDLC_OFF = 4 */
- type = ntohs(chdlc->proto_code);
+ if(packet[0] == 0x0f || packet[0] == 0x8f) {
+ chdlc = (struct ndpi_chdlc *) &packet[eth_offset];
+ ip_offset = sizeof(struct ndpi_chdlc); /* CHDLC_OFF = 4 */
+ type = ntohs(chdlc->proto_code);
+ } else {
+ ip_offset = 2;
+ type = ntohs(*((u_int16_t*)&packet[eth_offset]));
+ }
break;
/* IEEE 802.3 Ethernet - 1 */