[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r12024 - gnunet/src/vpn
From: |
gnunet |
Subject: |
[GNUnet-SVN] r12024 - gnunet/src/vpn |
Date: |
Mon, 28 Jun 2010 14:37:39 +0200 |
Author: toelke
Date: 2010-06-28 14:37:39 +0200 (Mon, 28 Jun 2010)
New Revision: 12024
Modified:
gnunet/src/vpn/packet.c
gnunet/src/vpn/packet.h
gnunet/src/vpn/test.c
Log:
vpn: prepared to implement tcp
Modified: gnunet/src/vpn/packet.c
===================================================================
--- gnunet/src/vpn/packet.c 2010-06-28 12:37:38 UTC (rev 12023)
+++ gnunet/src/vpn/packet.c 2010-06-28 12:37:39 UTC (rev 12024)
@@ -18,18 +18,18 @@
int w = 0;
char* buf = (char*)malloc(sz+40);
- buf[0] = (6 << 4) | (pkt->tclass >> 4);
- buf[1] = (pkt->tclass << 4) | (pkt->flowlbl[0] >> 4);
- buf[2] = pkt->flowlbl[1];
- buf[3] = pkt->flowlbl[2];
- buf[4] = pkt->paylgth[0];
- buf[5] = pkt->paylgth[1];
- buf[6] = pkt->nxthdr;
- buf[7] = pkt->hoplmt;
+ buf[0] = (6 << 4) | (pkt->hdr.tclass >> 4);
+ buf[1] = (pkt->hdr.tclass << 4) | (pkt->hdr.flowlbl[0] >> 4);
+ buf[2] = pkt->hdr.flowlbl[1];
+ buf[3] = pkt->hdr.flowlbl[2];
+ buf[4] = pkt->hdr.paylgth[0];
+ buf[5] = pkt->hdr.paylgth[1];
+ buf[6] = pkt->hdr.nxthdr;
+ buf[7] = pkt->hdr.hoplmt;
for (w = 0; w < 16; w++) {
- buf[8+w] = pkt->sadr[w];
- buf[24+w] = pkt->dadr[w];
+ buf[8+w] = pkt->hdr.sadr[w];
+ buf[24+w] = pkt->hdr.dadr[w];
}
memcpy(buf+40, pkt->data, sz);
@@ -104,20 +104,20 @@
struct ip6_pkt* parse_ip6(struct pkt_tun* pkt) {{{
struct ip6_pkt* pkt6 = (struct ip6_pkt*)malloc(sizeof(struct ip6_pkt));
- pkt6->tclass = pkt->data[0] << 4 | pkt->data[1] >> 4;
- pkt6->flowlbl[0] = pkt->data[1]>>4;
- pkt6->flowlbl[1] = pkt->data[2];
- pkt6->flowlbl[2] = pkt->data[3];
+ pkt6->hdr.tclass = pkt->data[0] << 4 | pkt->data[1] >> 4;
+ pkt6->hdr.flowlbl[0] = pkt->data[1]>>4;
+ pkt6->hdr.flowlbl[1] = pkt->data[2];
+ pkt6->hdr.flowlbl[2] = pkt->data[3];
- pkt6->paylgth[0] = pkt->data[4];
- pkt6->paylgth[1] = pkt->data[5];
+ pkt6->hdr.paylgth[0] = pkt->data[4];
+ pkt6->hdr.paylgth[1] = pkt->data[5];
- pkt6->nxthdr = pkt->data[6];
- pkt6->hoplmt = pkt->data[7];
+ pkt6->hdr.nxthdr = pkt->data[6];
+ pkt6->hdr.hoplmt = pkt->data[7];
for (int w = 0; w < 16; w++) {
- pkt6->sadr[w] = pkt->data[8+w];
- pkt6->dadr[w] = pkt->data[24+w];
+ pkt6->hdr.sadr[w] = pkt->data[8+w];
+ pkt6->hdr.dadr[w] = pkt->data[24+w];
}
pkt6->data = (unsigned char*)malloc(payload(pkt6));
Modified: gnunet/src/vpn/packet.h
===================================================================
--- gnunet/src/vpn/packet.h 2010-06-28 12:37:38 UTC (rev 12023)
+++ gnunet/src/vpn/packet.h 2010-06-28 12:37:39 UTC (rev 12024)
@@ -8,7 +8,7 @@
unsigned char* data;
};
-struct ip6_pkt {
+struct ip6_hdr {
unsigned char tclass;
unsigned char flowlbl[3];
unsigned char paylgth[2];
@@ -16,10 +16,16 @@
unsigned char hoplmt;
unsigned char sadr[16];
unsigned char dadr[16];
+};
+struct ip6_pkt {
+ struct ip6_hdr hdr;
unsigned char* data;
};
+ unsigned char* data;
+};
+
extern void send_pkt(int fd, struct ip6_pkt* pkt);
extern int recv_ipv6pkt(int fd, struct pkt_tun** pkt, unsigned char*);
extern int recv_pkt(int fd, struct pkt_tun** pkt);
Modified: gnunet/src/vpn/test.c
===================================================================
--- gnunet/src/vpn/test.c 2010-06-28 12:37:38 UTC (rev 12023)
+++ gnunet/src/vpn/test.c 2010-06-28 12:37:39 UTC (rev 12024)
@@ -18,8 +18,16 @@
struct pkt_tun* pkt;
for(;;) {
- printf("read %d bytes from socket, now to parse'em\n",
recv_pkt(fd, &pkt));
- struct ip6_pkt* pkt6 = parse_ip6(pkt);
- pkt_printf(pkt6);
+ printf("read %d bytes from socket, ", recv_pkt(fd, &pkt));
+ switch (pkt->type[0] << 8 | pkt->type[1]) {
+ case 0x86dd:
+ printf("parsing ipv6:\n");
+ struct ip6_pkt* pkt6 = parse_ip6(pkt);
+ pkt_printf(pkt6);
+ break;
+ default:
+ printf("unknown/unimplemented packet-type\n");
+ break;
+ }
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r12024 - gnunet/src/vpn,
gnunet <=