[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r12301 - in gnunet/src: include vpn
From: |
gnunet |
Subject: |
[GNUnet-SVN] r12301 - in gnunet/src: include vpn |
Date: |
Wed, 21 Jul 2010 00:21:59 +0200 |
Author: toelke
Date: 2010-07-21 00:21:59 +0200 (Wed, 21 Jul 2010)
New Revision: 12301
Modified:
gnunet/src/include/gnunet_protocols.h
gnunet/src/vpn/gnunet-daemon-vpn.c
gnunet/src/vpn/gnunet-vpn-helper-p.h
gnunet/src/vpn/gnunet-vpn-helper.c
gnunet/src/vpn/gnunet-vpn-packet.h
Log:
Changed the communication between the vpn-helper and the daemon to use
GNUNET_MessageHeaders
Modified: gnunet/src/include/gnunet_protocols.h
===================================================================
--- gnunet/src/include/gnunet_protocols.h 2010-07-20 22:21:57 UTC (rev
12300)
+++ gnunet/src/include/gnunet_protocols.h 2010-07-20 22:21:59 UTC (rev
12301)
@@ -611,6 +611,11 @@
/**
+ * Type of messages between the gnunet-vpn-helper and the daemon
+ */
+#define GNUNET_MESSAGE_TYPE_VPN_HELPER 185
+
+/**
* Type used to match 'all' message types.
*/
#define GNUNET_MESSAGE_TYPE_ALL 65535
Modified: gnunet/src/vpn/gnunet-daemon-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-daemon-vpn.c 2010-07-20 22:21:57 UTC (rev 12300)
+++ gnunet/src/vpn/gnunet-daemon-vpn.c 2010-07-20 22:21:59 UTC (rev 12301)
@@ -30,6 +30,8 @@
#include "gnunet-vpn-helper-p.h"
#include "gnunet-vpn-packet.h"
#include "gnunet-vpn-pretty-print.h"
+#include "gnunet_common.h"
+#include "gnunet_protocols.h"
/* #include "gnunet_template_service.h" */
/**
@@ -86,15 +88,15 @@
static void helper_read(void* cls, const struct GNUNET_SCHEDULER_TaskContext*
tsdkctx) {
struct vpn_cls* mycls = (struct vpn_cls*) cls;
- struct suid_packet_header hdr = { .size = 0 };
+ struct GNUNET_MessageHeader hdr = { .size = 0, .type = 0 };
int r = 0;
if (tsdkctx->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)
return;
- while (r < sizeof(struct suid_packet_header)) {
- int t = GNUNET_DISK_file_read(mycls->fh_from_helper, &hdr,
sizeof(struct suid_packet_header));
+ while (r < sizeof(struct GNUNET_MessageHeader)) {
+ int t = GNUNET_DISK_file_read(mycls->fh_from_helper, &hdr,
sizeof(struct GNUNET_MessageHeader));
if (t<=0) {
fprintf(stderr, "Read error for header: %m\n");
GNUNET_SCHEDULER_add_now(mycls->sched, restart_helper,
cls);
@@ -103,12 +105,12 @@
r += t;
}
- struct suid_packet *pkt = (struct suid_packet*)
GNUNET_malloc(ntohl(hdr.size));
+ struct suid_packet *pkt = (struct suid_packet*)
GNUNET_malloc(ntohs(hdr.size));
- memcpy(pkt, &hdr, sizeof(struct suid_packet_header));
+ memcpy(pkt, &hdr, sizeof(struct GNUNET_MessageHeader));
- while (r < ntohl(pkt->hdr.size)) {
- int t = GNUNET_DISK_file_read(mycls->fh_from_helper, (unsigned
char*)pkt + r, ntohl(pkt->hdr.size) - r);
+ while (r < ntohs(pkt->hdr.size)) {
+ int t = GNUNET_DISK_file_read(mycls->fh_from_helper, (unsigned
char*)pkt + r, ntohs(pkt->hdr.size) - r);
if (t<=0) {
fprintf(stderr, "Read error for data: %m\n");
GNUNET_SCHEDULER_add_now(mycls->sched, restart_helper,
cls);
Modified: gnunet/src/vpn/gnunet-vpn-helper-p.h
===================================================================
--- gnunet/src/vpn/gnunet-vpn-helper-p.h 2010-07-20 22:21:57 UTC (rev
12300)
+++ gnunet/src/vpn/gnunet-vpn-helper-p.h 2010-07-20 22:21:59 UTC (rev
12301)
@@ -1,12 +1,10 @@
#ifndef GN_VPN_HELPER_P_H
#define GN_VPN_HELPER_P_H
-struct suid_packet_header {
- uint32_t size;
-};
+#include "gnunet_common.h"
struct suid_packet {
- struct suid_packet_header hdr;
+ struct GNUNET_MessageHeader hdr;
unsigned char data[1];
};
Modified: gnunet/src/vpn/gnunet-vpn-helper.c
===================================================================
--- gnunet/src/vpn/gnunet-vpn-helper.c 2010-07-20 22:21:57 UTC (rev 12300)
+++ gnunet/src/vpn/gnunet-vpn-helper.c 2010-07-20 22:21:59 UTC (rev 12301)
@@ -40,8 +40,10 @@
#include <stdio.h>
#include <unistd.h>
+#include "gnunet-vpn-tun.h"
+#include "gnunet_common.h"
+#include "gnunet_protocols.h"
#include "gnunet-vpn-helper-p.h"
-#include "gnunet-vpn-tun.h"
#ifndef _LINUX_IN6_H
// This is in linux/include/net/ipv6.h.
@@ -168,7 +170,7 @@
if (FD_ISSET(0, &fds_r) && write_fd_possible) {
write_fd_possible = 0;
struct suid_packet *pkt = (struct suid_packet*)
buf;
- r = read(0, buf, sizeof(struct
suid_packet_header));
+ r = read(0, buf, sizeof(struct
GNUNET_MessageHeader));
if (r <= 0) {
fprintf(stderr, "read-error: %m\n");
shutdown(fd_tun, SHUT_WR);
@@ -176,8 +178,8 @@
wri=0;
goto outer;
}
- while (r < ntohl(pkt->hdr.size)) {
- int t = read(0, buf + r,
ntohl(pkt->hdr.size) - r);
+ while (r < ntohs(pkt->hdr.size)) {
+ int t = read(0, buf + r,
ntohs(pkt->hdr.size) - r);
if (r < 0) {
fprintf(stderr, "read-error:
%m\n");
shutdown(fd_tun, SHUT_WR);
@@ -188,8 +190,8 @@
r += t;
}
r = 0;
- while (r < ntohl(pkt->hdr.size) - sizeof(struct
suid_packet_header)) {
- int t = write(fd_tun, pkt->data,
ntohl(pkt->hdr.size) - sizeof(struct suid_packet_header) - r);
+ while (r < ntohs(pkt->hdr.size) - sizeof(struct
GNUNET_MessageHeader)) {
+ int t = write(fd_tun, pkt->data,
ntohs(pkt->hdr.size) - sizeof(struct GNUNET_MessageHeader) - r);
if (t < 0) {
fprintf(stderr, "write-error 3:
%m\n");
shutdown(fd_tun, SHUT_WR);
@@ -209,10 +211,10 @@
rea = 0;
goto outer;
}
- struct suid_packet_header hdr = { .size =
htonl(r + sizeof(struct suid_packet_header))};
+ struct GNUNET_MessageHeader hdr = { .size =
htons(r + sizeof(struct GNUNET_MessageHeader)), .type =
htons(GNUNET_MESSAGE_TYPE_VPN_HELPER) };
r = 0;
- while(r < sizeof(struct suid_packet_header)) {
- int t = write(1, &hdr, sizeof(struct
suid_packet_header) - r);
+ while(r < sizeof(struct GNUNET_MessageHeader)) {
+ int t = write(1, &hdr, sizeof(struct
GNUNET_MessageHeader) - r);
if (t < 0) {
fprintf(stderr, "write-error 2:
%m\n");
shutdown(fd_tun, SHUT_RD);
@@ -222,10 +224,10 @@
}
r += t;
}
- while(r < ntohl(hdr.size)) {
- int t = write(1, buf, ntohl(hdr.size) -
r);
+ while(r < ntohs(hdr.size)) {
+ int t = write(1, buf, ntohs(hdr.size) -
r);
if (t < 0) {
- fprintf(stderr, "write-error 1:
%m, written %d/%d\n", r, ntohl(hdr.size));
+ fprintf(stderr, "write-error 1:
%m, written %d/%d\n", r, ntohs(hdr.size));
shutdown(fd_tun, SHUT_RD);
shutdown(1, SHUT_WR);
rea = 0;
Modified: gnunet/src/vpn/gnunet-vpn-packet.h
===================================================================
--- gnunet/src/vpn/gnunet-vpn-packet.h 2010-07-20 22:21:57 UTC (rev 12300)
+++ gnunet/src/vpn/gnunet-vpn-packet.h 2010-07-20 22:21:59 UTC (rev 12301)
@@ -2,6 +2,7 @@
#define _GNTUN_PACKET_H_
#include "gnunet-vpn-helper-p.h"
+#include "gnunet_common.h"
// Headers
struct pkt_tun {
@@ -83,14 +84,14 @@
// Complete Packets
struct ip6_pkt {
- struct suid_packet_header shdr;
+ struct GNUNET_MessageHeader shdr;
struct pkt_tun tun;
struct ip6_hdr ip6_hdr;
unsigned char data[1];
};
struct ip6_tcp {
- struct suid_packet_header shdr;
+ struct GNUNET_MessageHeader shdr;
struct pkt_tun tun;
struct ip6_hdr ip6_hdr;
struct tcp_pkt tcp_hdr;
@@ -98,7 +99,7 @@
};
struct ip6_udp {
- struct suid_packet_header shdr;
+ struct GNUNET_MessageHeader shdr;
struct pkt_tun tun;
struct ip6_hdr ip6_hdr;
struct udp_pkt udp_hdr;
@@ -106,7 +107,7 @@
};
struct ip6_udp_dns {
- struct suid_packet_header shdr;
+ struct GNUNET_MessageHeader shdr;
struct pkt_tun tun;
struct ip6_hdr ip6_hdr;
struct udp_pkt udp_hdr;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r12301 - in gnunet/src: include vpn,
gnunet <=