wm: dnsparser

ref: eea3e7f97185f0c6ac097bad8009f23eee9b7b20
dir: /udp.c/

View raw version
#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,
};