ref: 3ae7a83327799e2ba7f3358dde826749c5b728a2
dir: /udp.c/
#include <stdio.h> #include <stdint.h> #include <pcap.h> #include "common.h" int parseUdp(const u_char *pkt, Udp *udp) { int pos = 0; udp->srcport = get2(pkt + pos); pos += UDP_SRCPORT; udp->dstport = get2(pkt + pos); pos += UDP_DSTPORT; udp->len = get2(pkt + pos); pos += UDP_LEN; udp->sum = get2(pkt + pos); pos += UDP_SUM; return 1; } void printUdp(Udp udp) { printf("udp pkt:\n" "\tsrcport: %d\tdstport: %d\n" "\tlen: %d\tsum 0x%x\n", udp.srcport, udp.dstport, udp.len, udp.sum); } Parser udpParser = { .parse = parseUdp, .print = printDns, };