switch to IP that is in 192.0.2.0/24 range which is specifically reserved to be never...
[oweals/gnunet.git] / src / vpn / test.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <sys/socket.h>
4 #include <string.h>
5
6 #include <linux/if.h>
7
8 #include "packet.h"
9 #include "tun.h"
10 #include "debug.h"
11 #include "pretty-print.h"
12 #include "tcp.h"
13 #include <arpa/inet.h>
14
15
16 int main(int c, char** v) {
17         char dev[IFNAMSIZ];
18         memset(dev, 0, IFNAMSIZ);
19         int fd = init_tun(dev);
20
21         debug(1, 0, "Initialized the interface %s.\n", dev);
22
23         struct pkt_tun* pkt;
24
25         for(;;) {
26                 printf("read %d bytes from socket, ", recv_pkt(fd, &pkt));
27                 switch (ntohs(pkt->type)) {
28                         case 0x86dd:
29                                 printf("parsing ipv6:\n");
30                                 struct ip6_pkt* pkt6 = parse_ip6(pkt);
31                                 pkt_printf(pkt6);
32                                 struct ip6_tcp* pkt6_tcp;
33                                 struct ip6_udp* pkt6_udp;
34                                 switch(pkt6->hdr.nxthdr) {
35                                         case 0x06:
36                                                 pkt6_tcp = parse_ip6_tcp(pkt6);
37                                                 pkt_printf_ip6tcp(pkt6_tcp);
38                                                 handle_tcp(pkt6_tcp);
39                                                 break;
40                                         case 0x11:
41                                                 pkt6_udp = parse_ip6_udp(pkt6);
42                                                 pkt_printf_ip6udp(pkt6_udp);
43                                                 break;
44                                 }
45                                 break;
46                         default:
47                                 printf("unknown/unimplemented packet-type\n");
48                                 break;
49                 }
50         }
51 }