From: Philipp Tölke Date: Tue, 20 Jul 2010 08:17:12 +0000 (+0000) Subject: Rename files to fit into the convention X-Git-Tag: initial-import-from-subversion-38251~20917 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a6e1023d634f732e986176fcfa304c65239e0e50;p=oweals%2Fgnunet.git Rename files to fit into the convention --- diff --git a/src/vpn/gnunet-vpn-packet.c b/src/vpn/gnunet-vpn-packet.c new file mode 100644 index 000000000..deda87216 --- /dev/null +++ b/src/vpn/gnunet-vpn-packet.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include + +#include + +#include "debug.h" +#include "packet.h" +#include "arpa/inet.h" + +short payload(struct ip6_hdr* hdr) {{{ + return ntohs(hdr->paylgth); +}}} + +void send_pkt(int fd, struct ip6_pkt* pkt) {{{ + int sz = payload(&(pkt->hdr)); + int w = 0; + char* buf = (char*)pkt; + + w = 0; + while ( w > 0) { + int t = write(fd, buf+w, (sz + 40) - w); + if (t < 0) + debug(1, 0, "packet: write : %s\n", strerror(errno)); + else + w+=t; + } + + free(buf); +}}} + +int recv_pkt(int fd, struct pkt_tun** pkt) {{{ + int size = 1504; + unsigned char data[size]; + + debug(1, 0, "beginning to read...\n"); + + int r = read(fd, data, size); + debug(1, 0, "read %d bytes\n", r); + + *pkt = (struct pkt_tun*)malloc(r); + + memcpy(*pkt, data, r); + struct pkt_tun *_pkt = *pkt; + + debug(1, 0, "read the flags: %04x\n", ntohs(_pkt->flags)); + debug(1, 0, "read the type: %04x\n", ntohs(_pkt->type)); + + switch(ntohs(_pkt->type)) { + case 0x86dd: + debug(1, 0, "reading an ipv6-packet\n"); + struct ip6_pkt * pkt6 = (struct ip6_pkt*) *pkt; + size = payload(&(pkt6->hdr)); + // TODO: size might be greater than r! + debug(1, 0, "read the size: %d\n", size); + return size; + break; + case 0x0800: + debug(1, 0, "unknown pkt-type: IPv4\n"); + //IPv4 TODO + break; + default: + debug(1, 0, "unknown pkt-type: 0x%02x\n", 0x800); + //Whatever TODO + break; + } + return -1; +}}} + +struct ip6_pkt* parse_ip6(struct pkt_tun* pkt) {{{ + struct ip6_pkt* pkt6 = (struct ip6_pkt*)pkt; + + return pkt6; +}}} + +struct ip6_tcp* parse_ip6_tcp(struct ip6_pkt* pkt) {{{ + struct ip6_tcp* res = (struct ip6_tcp*) 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/gnunet-vpn-packet.h b/src/vpn/gnunet-vpn-packet.h new file mode 100644 index 000000000..c19e7a101 --- /dev/null +++ b/src/vpn/gnunet-vpn-packet.h @@ -0,0 +1,114 @@ +#ifndef _GNTUN_PACKET_H_ +#define _GNTUN_PACKET_H_ + +struct pkt_tun { + unsigned flags:16; + unsigned type:16; +}; + +struct ip6_hdr { + unsigned version:4; + unsigned tclass:8; + unsigned flowlbl:20; + unsigned paylgth:16; + unsigned nxthdr:8; + unsigned hoplmt:8; + unsigned char sadr[16]; + unsigned char dadr[16]; +}; + +struct tcp_pkt { + unsigned spt:16; + unsigned dpt:16; + unsigned seq:32; + unsigned ack:32; + unsigned off:4; + unsigned rsv:4; + unsigned flg:8; + unsigned wsz:16; + unsigned crc:16; + unsigned urg:16; + unsigned char data[1]; +}; + +struct udp_pkt { + unsigned spt:16; + unsigned dpt:16; + unsigned len:16; + unsigned crc:16; +}; + +struct dns_pkt { + unsigned short id; + + unsigned rd:1; // recursion desired (client -> server) + unsigned tc:1; // message is truncated + unsigned aa:1; // authoritative answer + unsigned op:4; // query:0, inverse q.:1, status: 2 + unsigned qr:1; // query:0, response:1 + + unsigned rcode:4; // 0 No error + // 1 Format error + // 2 Server failure + // 3 Name Error + // 4 Not Implemented + // 5 Refused + unsigned z:3; // reserved + unsigned ra:1; // recursion available (server -> client) + + unsigned short qdcount; // number of questions + unsigned short ancount; // number of answers + unsigned short nscount; // number of authority-records + unsigned short arcount; // number of additional records + unsigned char data[1]; +}; + +struct dns_query { + unsigned char* name; + unsigned short qtype; + unsigned short qclass; +}; + +struct dns_record { + unsigned char* name; + unsigned short type; + unsigned short class; + unsigned int ttl; + unsigned short data_len; + unsigned char* data; +}; + +struct ip6_pkt { + struct pkt_tun tun; + struct ip6_hdr hdr; + unsigned char data[1]; +}; + +struct ip6_tcp { + struct pkt_tun tun; + struct ip6_hdr hdr; + struct tcp_pkt data; +}; + +struct ip6_udp { + struct pkt_tun tun; + struct ip6_hdr hdr; + struct udp_pkt data; +}; + +void send_pkt(int fd, struct ip6_pkt* pkt); +int recv_ipv6pkt(int fd, struct pkt_tun** pkt); +int recv_pkt(int fd, struct pkt_tun** pkt); +struct ip6_pkt* parse_ip6(struct pkt_tun* pkt); + +struct ip6_udp_dns { + struct ip6_udp hdr; + struct dns_pkt data; +}; + +struct ip6_tcp* parse_ip6_tcp(struct ip6_pkt*); +struct ip6_udp* parse_ip6_udp(struct ip6_pkt*); + +short payload(struct ip6_hdr* pkt); + +#endif diff --git a/src/vpn/packet.c b/src/vpn/packet.c deleted file mode 100644 index deda87216..000000000 --- a/src/vpn/packet.c +++ /dev/null @@ -1,88 +0,0 @@ -#include -#include -#include -#include -#include - -#include - -#include "debug.h" -#include "packet.h" -#include "arpa/inet.h" - -short payload(struct ip6_hdr* hdr) {{{ - return ntohs(hdr->paylgth); -}}} - -void send_pkt(int fd, struct ip6_pkt* pkt) {{{ - int sz = payload(&(pkt->hdr)); - int w = 0; - char* buf = (char*)pkt; - - w = 0; - while ( w > 0) { - int t = write(fd, buf+w, (sz + 40) - w); - if (t < 0) - debug(1, 0, "packet: write : %s\n", strerror(errno)); - else - w+=t; - } - - free(buf); -}}} - -int recv_pkt(int fd, struct pkt_tun** pkt) {{{ - int size = 1504; - unsigned char data[size]; - - debug(1, 0, "beginning to read...\n"); - - int r = read(fd, data, size); - debug(1, 0, "read %d bytes\n", r); - - *pkt = (struct pkt_tun*)malloc(r); - - memcpy(*pkt, data, r); - struct pkt_tun *_pkt = *pkt; - - debug(1, 0, "read the flags: %04x\n", ntohs(_pkt->flags)); - debug(1, 0, "read the type: %04x\n", ntohs(_pkt->type)); - - switch(ntohs(_pkt->type)) { - case 0x86dd: - debug(1, 0, "reading an ipv6-packet\n"); - struct ip6_pkt * pkt6 = (struct ip6_pkt*) *pkt; - size = payload(&(pkt6->hdr)); - // TODO: size might be greater than r! - debug(1, 0, "read the size: %d\n", size); - return size; - break; - case 0x0800: - debug(1, 0, "unknown pkt-type: IPv4\n"); - //IPv4 TODO - break; - default: - debug(1, 0, "unknown pkt-type: 0x%02x\n", 0x800); - //Whatever TODO - break; - } - return -1; -}}} - -struct ip6_pkt* parse_ip6(struct pkt_tun* pkt) {{{ - struct ip6_pkt* pkt6 = (struct ip6_pkt*)pkt; - - return pkt6; -}}} - -struct ip6_tcp* parse_ip6_tcp(struct ip6_pkt* pkt) {{{ - struct ip6_tcp* res = (struct ip6_tcp*) 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 deleted file mode 100644 index c19e7a101..000000000 --- a/src/vpn/packet.h +++ /dev/null @@ -1,114 +0,0 @@ -#ifndef _GNTUN_PACKET_H_ -#define _GNTUN_PACKET_H_ - -struct pkt_tun { - unsigned flags:16; - unsigned type:16; -}; - -struct ip6_hdr { - unsigned version:4; - unsigned tclass:8; - unsigned flowlbl:20; - unsigned paylgth:16; - unsigned nxthdr:8; - unsigned hoplmt:8; - unsigned char sadr[16]; - unsigned char dadr[16]; -}; - -struct tcp_pkt { - unsigned spt:16; - unsigned dpt:16; - unsigned seq:32; - unsigned ack:32; - unsigned off:4; - unsigned rsv:4; - unsigned flg:8; - unsigned wsz:16; - unsigned crc:16; - unsigned urg:16; - unsigned char data[1]; -}; - -struct udp_pkt { - unsigned spt:16; - unsigned dpt:16; - unsigned len:16; - unsigned crc:16; -}; - -struct dns_pkt { - unsigned short id; - - unsigned rd:1; // recursion desired (client -> server) - unsigned tc:1; // message is truncated - unsigned aa:1; // authoritative answer - unsigned op:4; // query:0, inverse q.:1, status: 2 - unsigned qr:1; // query:0, response:1 - - unsigned rcode:4; // 0 No error - // 1 Format error - // 2 Server failure - // 3 Name Error - // 4 Not Implemented - // 5 Refused - unsigned z:3; // reserved - unsigned ra:1; // recursion available (server -> client) - - unsigned short qdcount; // number of questions - unsigned short ancount; // number of answers - unsigned short nscount; // number of authority-records - unsigned short arcount; // number of additional records - unsigned char data[1]; -}; - -struct dns_query { - unsigned char* name; - unsigned short qtype; - unsigned short qclass; -}; - -struct dns_record { - unsigned char* name; - unsigned short type; - unsigned short class; - unsigned int ttl; - unsigned short data_len; - unsigned char* data; -}; - -struct ip6_pkt { - struct pkt_tun tun; - struct ip6_hdr hdr; - unsigned char data[1]; -}; - -struct ip6_tcp { - struct pkt_tun tun; - struct ip6_hdr hdr; - struct tcp_pkt data; -}; - -struct ip6_udp { - struct pkt_tun tun; - struct ip6_hdr hdr; - struct udp_pkt data; -}; - -void send_pkt(int fd, struct ip6_pkt* pkt); -int recv_ipv6pkt(int fd, struct pkt_tun** pkt); -int recv_pkt(int fd, struct pkt_tun** pkt); -struct ip6_pkt* parse_ip6(struct pkt_tun* pkt); - -struct ip6_udp_dns { - struct ip6_udp hdr; - struct dns_pkt data; -}; - -struct ip6_tcp* parse_ip6_tcp(struct ip6_pkt*); -struct ip6_udp* parse_ip6_udp(struct ip6_pkt*); - -short payload(struct ip6_hdr* pkt); - -#endif