[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r13954 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r13954 - gnunet/src/transport |
Date: |
Tue, 21 Dec 2010 13:09:15 +0100 |
Author: brodski
Date: 2010-12-21 13:09:15 +0100 (Tue, 21 Dec 2010)
New Revision: 13954
Modified:
gnunet/src/transport/Makefile.am
gnunet/src/transport/gnunet-transport-wlan-helper.c
gnunet/src/transport/plugin_transport_wlan.h
gnunet/src/transport/test_plugin_transport_wlan_dummy.c
Log:
Dummy for testing
Modified: gnunet/src/transport/Makefile.am
===================================================================
--- gnunet/src/transport/Makefile.am 2010-12-21 09:49:47 UTC (rev 13953)
+++ gnunet/src/transport/Makefile.am 2010-12-21 12:09:15 UTC (rev 13954)
@@ -77,10 +77,14 @@
gnunet_nat_server_SOURCES = \
$(NATSERVER)
+
gnunet_transport_wlan_helper_SOURCES = \
- gnunet-transport-wlan-helper.c
+ gnunet-transport-wlan-helper.c
gnunet_transport_wlan_helper_LDADD = \
-lpcap
+
+test_plugin_transport_wlan_SOURCES = \
+ test_plugin_transport_wlan_dummy.c
gnunet_nat_client_SOURCES = \
$(NATCLIENT)
@@ -215,7 +219,8 @@
test_quota_compliance_udp \
test_quota_compliance_udp_asymmetric_recv_constant \
$(HTTP_QUOTA_TEST) \
- $(HTTPS_QUOTA_TEST)
+ $(HTTPS_QUOTA_TEST) \
+ test_plugin_transport_wlan
# TODO: add tests for nat, etc.
if !DISABLE_TEST_RUN
Modified: gnunet/src/transport/gnunet-transport-wlan-helper.c
===================================================================
--- gnunet/src/transport/gnunet-transport-wlan-helper.c 2010-12-21 09:49:47 UTC
(rev 13953)
+++ gnunet/src/transport/gnunet-transport-wlan-helper.c 2010-12-21 12:09:15 UTC
(rev 13954)
@@ -33,6 +33,8 @@
#include <pcap.h>
+
+
//#include "radiotap.h"
// mac of this node
@@ -643,3 +645,4 @@
return (0);
}
+
Modified: gnunet/src/transport/plugin_transport_wlan.h
===================================================================
--- gnunet/src/transport/plugin_transport_wlan.h 2010-12-21 09:49:47 UTC
(rev 13953)
+++ gnunet/src/transport/plugin_transport_wlan.h 2010-12-21 12:09:15 UTC
(rev 13954)
@@ -24,6 +24,9 @@
* @author David Brodski
*/
+#ifndef PLUGIN_TRANSPORT_WLAN
+#define PLUGIN_TRANSPORT_WLAN
+
#include "gnunet_common.h"
typedef unsigned int uint32_t;
@@ -163,3 +166,4 @@
uint8_t antenna;
};
+#endif
Modified: gnunet/src/transport/test_plugin_transport_wlan_dummy.c
===================================================================
--- gnunet/src/transport/test_plugin_transport_wlan_dummy.c 2010-12-21
09:49:47 UTC (rev 13953)
+++ gnunet/src/transport/test_plugin_transport_wlan_dummy.c 2010-12-21
12:09:15 UTC (rev 13954)
@@ -1,99 +1,197 @@
/*
- This file is part of GNUnet.
- (C) 2010 Christian Grothoff (and other contributing authors)
-
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
-
- GNUnet is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-/**
- * @file transport/test_transport_wlan_dummy.c
- * @brief helper for the testcase for plugin_transport_wlan.c
- * @author David Brodski
- */
-
-#include "platform.h"
-#include "gnunet_constants.h"
-#include "gnunet_os_lib.h"
-#include "gnunet_transport_plugin.h"
-#include "transport.h"
-#include "plugin_transport_wlan.h"
-#include "gnunet_common.h"
-#include "gnunet-transport-wlan-helper.h"
-#include "plugin_transport_wlan.h"
-
+ This file is part of GNUnet.
+ (C) 2010 Christian Grothoff (and other contributing authors)
+
+ GNUnet is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3, or (at your
+ option) any later version.
+
+ GNUnet is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNUnet; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+ */
+/**
+ * @file transport/test_transport_wlan_dummy.c
+ * @brief helper for the testcase for plugin_transport_wlan.c
+ * @author David Brodski
+ */
+
+#include "platform.h"
+#include "gnunet_constants.h"
+#include "gnunet_os_lib.h"
+#include "gnunet_transport_plugin.h"
+#include "transport.h"
+#include "plugin_transport_wlan.h"
+#include "gnunet_common.h"
+#include "gnunet-transport-wlan-helper.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#define FIFO_FILE1 "MYFIFOin"
-#define FIFO_FILE2 "MYFIFOout"
-
-int
-main(int argc, char *argv[])
-{
- struct stat st;
- int erg;
- int first;
- FILE *fpin;
- FILE *fpout;
- //make the fifos if needed
- if(stat(FIFO_FILE1,&st) != 0){
- if(stat(FIFO_FILE2,&st) != 0){
- perror("FIFO 2 exists, but FIFO 1 not");
- exit(1);
- }
- first = 1;
- umask(0);
- erg = mknod(FIFO_FILE1, S_IFIFO|0666, 0);
- erg = mknod(FIFO_FILE2, S_IFIFO|0666, 0);
-
- if((fpin = fopen(FIFO_FILE1, "r")) == NULL) {
- perror("fopen");
- exit(1);
- }
- if((fpout = fopen(FIFO_FILE2, "w")) == NULL) {
- perror("fopen");
- exit(1);
- }
- } else {
- first = 0;
- if(stat(FIFO_FILE2,&st) == 0){
- perror("FIFO 1 exists, but FIFO 2 not");
- exit(1);
- }
- if((fpout = fopen(FIFO_FILE1, "w")) == NULL) {
- perror("fopen");
- exit(1);
- }
- if((fpin = fopen(FIFO_FILE2, "r")) == NULL) {
- perror("fopen");
- exit(1);
- }
-
- }
- // Write the input to the output
+#define FIFO_FILE2 "MYFIFOout"
+#define MAXLINE 5000
- //clean up
- if (first == 1){
- unlink(FIFO_FILE1);
- unlink(FIFO_FILE2);
- }
+int closeprog = 0;
+void sigfunc(int sig)
+{
- fclose(fpin);
- fclose(fpout);
- return(0);
+ if(sig != SIGINT || sig != SIGTERM || sig != SIGKILL)
+ return;
+ else
+ {
+ closeprog = 1;
+ }
}
-
+
+
+
+int
+main(int argc, char *argv[])
+{
+ struct stat st;
+ int erg;
+ int first;
+ FILE *fpin;
+ FILE *fpout;
+ pid_t pid;
+
+ signal(SIGINT,sigfunc);
+ signal(SIGTERM,sigfunc);
+ signal(SIGKILL,sigfunc);
+
+ //make the fifos if needed
+ if (stat(FIFO_FILE1, &st) != 0)
+ {
+ if (stat(FIFO_FILE2, &st) != 0)
+ {
+ perror("FIFO 2 exists, but FIFO 1 not");
+ exit(1);
+ }
+ first = 1;
+ umask(0);
+ erg = mknod(FIFO_FILE1, S_IFIFO | 0666, 0);
+ erg = mknod(FIFO_FILE2, S_IFIFO | 0666, 0);
+
+ if ((fpin = fopen(FIFO_FILE1, "r")) == NULL)
+ {
+ perror("fopen");
+ exit(1);
+ }
+ if ((fpout = fopen(FIFO_FILE2, "w")) == NULL)
+ {
+ perror("fopen");
+ exit(1);
+ }
+ }
+ else
+ {
+ first = 0;
+ if (stat(FIFO_FILE2, &st) == 0)
+ {
+ perror("FIFO 1 exists, but FIFO 2 not");
+ exit(1);
+ }
+ if ((fpout = fopen(FIFO_FILE1, "w")) == NULL)
+ {
+ perror("fopen");
+ exit(1);
+ }
+ if ((fpin = fopen(FIFO_FILE2, "r")) == NULL)
+ {
+ perror("fopen");
+ exit(1);
+ }
+
+ }
+
+ // fork
+
+ if ((pid = fork()) < 0)
+ {
+ perror("FORK ERROR");
+ return -3;
+ }
+ else if (pid == 0) // CHILD PROCESS
+ {
+ int rv = 0;
+ int read = 0;
+ int pos = 0;
+ char line[MAXLINE];
+
+ while (closeprog == 0)
+ {
+ read = 0;
+
+ while (read < sizeof( struct RadiotapHeader) + sizeof(struct
GNUNET_MessageHeader)){
+ if ((rv = read(STDIN_FILENO, line, MAXLINE)) < 0)
+ {
+ perror("READ ERROR FROM STDIN");
+ }
+ read += rv;
+ }
+
+ pos = 0;
+
+ fwrite(&line[pos], 1, sizeof(struct GNUNET_MessageHeader), fpout);
+
+ pos += sizeof(struct GNUNET_MessageHeader);
+
+ //do not send radiotap header
+ pos += sizeof( struct RadiotapHeader);
+
+ while (pos < read)
+ {
+ pos += fwrite(&line[pos], 1, read - pos, fpout);
+ }
+ }
+
+
+ //clean up
+ fclose(fpout);
+ }
+ else // PARENT PROCESS
+ {
+ int rv = 0;
+ ssize_t pos = 0;
+ char line[MAXLINE];
+
+ while (closeprog == 0)
+ {
+ if ((rv = fread(line, 1, MAXLINE, fpin)) < 0)
+ {
+ perror("READ ERROR FROM STDIN");
+ }
+
+ pos = 0;
+ while (pos < rv)
+ {
+ pos += write(STDOUT_FILENO, &line[pos], rv - pos);
+ }
+ }
+
+
+ //clean up
+ fclose(fpin);
+
+ if (first == 1)
+ {
+ unlink(FIFO_FILE1);
+ unlink(FIFO_FILE2);
+ }
+ }
+
+ // Write the input to the output
+
+ return (0);
+}
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r13954 - gnunet/src/transport,
gnunet <=