vpn: pretty-print udp
authorPhilipp Tölke <toelke@in.tum.de>
Mon, 28 Jun 2010 12:37:50 +0000 (12:37 +0000)
committerPhilipp Tölke <toelke@in.tum.de>
Mon, 28 Jun 2010 12:37:50 +0000 (12:37 +0000)
src/vpn/packet.c
src/vpn/packet.h
src/vpn/pretty-print.c
src/vpn/pretty-print.h
src/vpn/test.c

index 0e528ffff8f253e1f6564b58608b73765defde03..deda872160dba1a7ef6fd075649ed6af93569435 100644 (file)
@@ -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;
+}}}
index 643657db38c5608e4b78413574f17a1a56d00442..ac7cfcf513aa4707238851de9604f73cb0d1bca3 100644 (file)
@@ -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);
 
index 22a642728b4d86d54429fa271ad54cbd096a3b37..e8f15cad6a8384a38d2d9a49be4189f400458a64 100644 (file)
@@ -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));
+}}}
index 2ab32b9c23a4fb6f47d7aa1d1fceab6a88024811..f2aa5b7951d859ba0dd1534ec58def58a449fd0d 100644 (file)
@@ -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
index 87ad9b10d75aca0911bd0a1136c92b0f18fc3f76..959c56b231905640aee39293bc43abbe116f6028 100644 (file)
@@ -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: