From: Philipp Tölke Date: Mon, 28 Jun 2010 12:37:50 +0000 (+0000) Subject: vpn: pretty-print udp X-Git-Tag: initial-import-from-subversion-38251~21143 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=0f0fcfbcb3100c8f4fb64168b1ece492d16a1cf6;p=oweals%2Fgnunet.git vpn: pretty-print udp --- diff --git a/src/vpn/packet.c b/src/vpn/packet.c index 0e528ffff..deda87216 100644 --- a/src/vpn/packet.c +++ b/src/vpn/packet.c @@ -80,3 +80,9 @@ struct ip6_tcp* parse_ip6_tcp(struct ip6_pkt* pkt) {{{ return res; }}} + +struct ip6_udp* parse_ip6_udp(struct ip6_pkt* pkt) {{{ + struct ip6_udp* res = (struct ip6_udp*) pkt; + + return res; +}}} diff --git a/src/vpn/packet.h b/src/vpn/packet.h index 643657db3..ac7cfcf51 100644 --- a/src/vpn/packet.h +++ b/src/vpn/packet.h @@ -85,6 +85,7 @@ extern int recv_pkt(int fd, struct pkt_tun** pkt); extern struct ip6_pkt* parse_ip6(struct pkt_tun* pkt); extern struct ip6_tcp* parse_ip6_tcp(struct ip6_pkt*); +extern struct ip6_udp* parse_ip6_udp(struct ip6_pkt*); extern short payload(struct ip6_hdr* pkt); diff --git a/src/vpn/pretty-print.c b/src/vpn/pretty-print.c index 22a642728..e8f15cad6 100644 --- a/src/vpn/pretty-print.c +++ b/src/vpn/pretty-print.c @@ -98,6 +98,9 @@ void pp_write_header(char* dest, struct ip6_pkt* pkt) {{{ case 0x06: memcpy(dest, "TCP)", 4); break; + case 0x11: + memcpy(dest, "UDP)", 4); + break; default: memcpy(dest, "unknown)", 8); break; @@ -164,3 +167,10 @@ void pkt_printf_ip6tcp(struct ip6_tcp* pkt) {{{ pkt->data.flg & 0x01 ? 'F' : '.' ); }}} + +void pkt_printf_ip6udp(struct ip6_udp* pkt) {{{ + printf("spt: %u\n", ntohs(pkt->data.spt)); + printf("dpt: %u\n", ntohs(pkt->data.dpt)); + printf("len: %u\n", ntohs(pkt->data.len)); + printf("crc: 0x%x\n", ntohs(pkt->data.crc)); +}}} diff --git a/src/vpn/pretty-print.h b/src/vpn/pretty-print.h index 2ab32b9c2..f2aa5b795 100644 --- a/src/vpn/pretty-print.h +++ b/src/vpn/pretty-print.h @@ -8,5 +8,6 @@ extern void pp_write_header(char* dest, struct ip6_pkt* pkt); extern void pkt_printf(struct ip6_pkt* pkt); void pkt_printf_ip6tcp(struct ip6_tcp* pkt); +void pkt_printf_ip6udp(struct ip6_udp* pkt); #endif diff --git a/src/vpn/test.c b/src/vpn/test.c index 87ad9b10d..959c56b23 100644 --- a/src/vpn/test.c +++ b/src/vpn/test.c @@ -30,12 +30,17 @@ int main(int c, char** v) { struct ip6_pkt* pkt6 = parse_ip6(pkt); pkt_printf(pkt6); struct ip6_tcp* pkt6_tcp; + struct ip6_udp* pkt6_udp; switch(pkt6->hdr.nxthdr) { case 0x06: pkt6_tcp = parse_ip6_tcp(pkt6); pkt_printf_ip6tcp(pkt6_tcp); handle_tcp(pkt6_tcp); break; + case 0x11: + pkt6_udp = parse_ip6_udp(pkt6); + pkt_printf_ip6udp(pkt6_udp); + break; } break; default: