aboutsummaryrefslogtreecommitdiff
path: root/src/vpn/packet.c
diff options
context:
space:
mode:
authorPhilipp Tölke <toelke@in.tum.de>2010-06-28 12:37:43 +0000
committerPhilipp Tölke <toelke@in.tum.de>2010-06-28 12:37:43 +0000
commit7a2378763af1b240ac943a3d499f792bde48d02a (patch)
tree3df258ebddc68120950234399d28d284bc159ecf /src/vpn/packet.c
parent0bf6a2223e06988b5c84bb110aff12150b54ed93 (diff)
downloadgnunet-7a2378763af1b240ac943a3d499f792bde48d02a.tar.gz
gnunet-7a2378763af1b240ac943a3d499f792bde48d02a.zip
vpn: tcp-natting in one direction
untested and most likly unworking code
Diffstat (limited to 'src/vpn/packet.c')
-rw-r--r--src/vpn/packet.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/vpn/packet.c b/src/vpn/packet.c
index 37ce44863..2d52dbc81 100644
--- a/src/vpn/packet.c
+++ b/src/vpn/packet.c
@@ -9,12 +9,12 @@
9#include "debug.h" 9#include "debug.h"
10#include "packet.h" 10#include "packet.h"
11 11
12long payload(struct ip6_pkt* pkt) {{{ 12long payload(struct ip6_hdr* hdr) {{{
13 return (pkt->hdr.paylgth[0] << 8) + pkt->hdr.paylgth[1]; 13 return (hdr->paylgth[0] << 8) + hdr->paylgth[1];
14}}} 14}}}
15 15
16void send_pkt(int fd, struct ip6_pkt* pkt) {{{ 16void send_pkt(int fd, struct ip6_pkt* pkt) {{{
17 int sz = payload(pkt); 17 int sz = payload(&(pkt->hdr));
18 int w = 0; 18 int w = 0;
19 char* buf = (char*)malloc(sz+40); 19 char* buf = (char*)malloc(sz+40);
20 20
@@ -120,8 +120,8 @@ struct ip6_pkt* parse_ip6(struct pkt_tun* pkt) {{{
120 pkt6->hdr.dadr[w] = pkt->data[24+w]; 120 pkt6->hdr.dadr[w] = pkt->data[24+w];
121 } 121 }
122 122
123 pkt6->data = (unsigned char*)malloc(payload(pkt6)); 123 pkt6->data = (unsigned char*)malloc(payload(&(pkt6->hdr)));
124 memcpy(pkt6->data, pkt->data+40, payload(pkt6)); 124 memcpy(pkt6->data, pkt->data+40, payload(&(pkt6->hdr)));
125 125
126 return pkt6; 126 return pkt6;
127}}} 127}}}
@@ -150,8 +150,8 @@ struct ip6_tcp* parse_ip6_tcp(struct ip6_pkt* pkt) {{{
150 res->data.opt = (unsigned char*) malloc((res->data.off - 5)*4); 150 res->data.opt = (unsigned char*) malloc((res->data.off - 5)*4);
151 memcpy(res->data.opt, pkt->data+20, (res->data.off - 5)*4); 151 memcpy(res->data.opt, pkt->data+20, (res->data.off - 5)*4);
152 152
153 res->data.data = (unsigned char*) malloc(payload(pkt) - 4*(res->data.off)); 153 res->data.data = (unsigned char*) malloc(payload(&(pkt->hdr)) - 4*(res->data.off));
154 memcpy(res->data.data, pkt->data+4*(res->data.off), payload(pkt) - 4*(res->data.off)); 154 memcpy(res->data.data, pkt->data+4*(res->data.off), payload(&(pkt->hdr)) - 4*(res->data.off));
155 155
156 return res; 156 return res;
157}}} 157}}}