[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r14027 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r14027 - gnunet/src/transport |
Date: |
Wed, 22 Dec 2010 16:24:15 +0100 |
Author: brodski
Date: 2010-12-22 16:24:15 +0100 (Wed, 22 Dec 2010)
New Revision: 14027
Modified:
gnunet/src/transport/gnunet-transport-wlan-helper.c
gnunet/src/transport/test_plugin_transport_wlan_dummy.c
Log:
Errors fixed
Modified: gnunet/src/transport/gnunet-transport-wlan-helper.c
===================================================================
--- gnunet/src/transport/gnunet-transport-wlan-helper.c 2010-12-22 14:29:46 UTC
(rev 14026)
+++ gnunet/src/transport/gnunet-transport-wlan-helper.c 2010-12-22 15:24:15 UTC
(rev 14027)
@@ -392,10 +392,11 @@
return -ENOENT;
}
-#define FIFO_FILE1 "MYFIFOin"
-#define FIFO_FILE2 "MYFIFOout"
+#define FIFO_FILE1 "/tmp/MYFIFOin"
+#define FIFO_FILE2 "/tmp/MYFIFOout"
#define MAXLINE 5000
+int first;
int closeprog = 0;
void sigfunc(int sig)
@@ -404,9 +405,14 @@
if(sig != SIGINT || sig != SIGTERM || sig != SIGKILL)
return;
else
- {
- closeprog = 1;
- }
+ {
+ closeprog = 1;
+ if (first == 1)
+ {
+ unlink(FIFO_FILE1);
+ unlink(FIFO_FILE2);
+ }
+ }
}
@@ -416,19 +422,18 @@
{
struct stat st;
int erg;
- int first;
+
+ int fd[2];
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)
+ if (stat(FIFO_FILE2, &st) == 0)
{
perror("FIFO 2 exists, but FIFO 1 not");
exit(1);
@@ -452,7 +457,7 @@
else
{
first = 0;
- if (stat(FIFO_FILE2, &st) == 0)
+ if (stat(FIFO_FILE2, &st) != 0)
{
perror("FIFO 1 exists, but FIFO 2 not");
exit(1);
@@ -472,6 +477,9 @@
// fork
+ fd[0] = STDIN_FILENO;
+ fd[1] = STDOUT_FILENO;
+
if ((pid = fork()) < 0)
{
perror("FORK ERROR");
@@ -488,6 +496,10 @@
}
else if (pid == 0) // CHILD PROCESS
{
+
+ signal(SIGINT, sigfunc);
+ signal(SIGTERM, sigfunc);
+ signal(SIGKILL, sigfunc);
int rv = 0;
int readc = 0;
int pos = 0;
@@ -498,7 +510,7 @@
readc = 0;
while (readc < sizeof( struct RadiotapHeader) + sizeof(struct
GNUNET_MessageHeader)){
- if ((rv = read(STDIN_FILENO, line, MAXLINE)) < 0)
+ if ((rv = read(fd[0], line, MAXLINE)) < 0)
{
perror("READ ERROR FROM STDIN");
}
@@ -526,12 +538,14 @@
}
else // PARENT PROCESS
{
+ signal(SIGINT, sigfunc);
+ signal(SIGTERM, sigfunc);
+ signal(SIGKILL, sigfunc);
int rv = 0;
ssize_t pos = 0;
char line[MAXLINE];
struct Wlan_Helper_Control_Message macmsg;
-
//Send random mac address
macmsg.mac.mac[0] = 0x13;
macmsg.mac.mac[1] = 0x22;
@@ -544,7 +558,7 @@
pos = 0;
while (pos < sizeof(struct Wlan_Helper_Control_Message))
{
- pos += write(STDOUT_FILENO, &macmsg + pos, sizeof(struct
Wlan_Helper_Control_Message) - pos);
+ pos += write(fd[1], &macmsg + pos, sizeof(struct
Wlan_Helper_Control_Message) - pos);
}
while (closeprog == 0)
@@ -557,7 +571,7 @@
pos = 0;
while (pos < rv)
{
- pos += write(STDOUT_FILENO, &line[pos], rv - pos);
+ pos += write(fd[1], &line[pos], rv - pos);
}
}
Modified: gnunet/src/transport/test_plugin_transport_wlan_dummy.c
===================================================================
--- gnunet/src/transport/test_plugin_transport_wlan_dummy.c 2010-12-22
14:29:46 UTC (rev 14026)
+++ gnunet/src/transport/test_plugin_transport_wlan_dummy.c 2010-12-22
15:24:15 UTC (rev 14027)
@@ -50,6 +50,7 @@
else
{
closeprog = 1;
+ exit(0);
}
}
@@ -58,26 +59,27 @@
int
main(int argc, char *argv[])
{
- struct stat st,st2;
+ struct stat st;
+ struct stat st2;
int erg;
int first;
FILE *fpin;
FILE *fpout;
pid_t pid;
- signal(SIGINT,sigfunc);
- signal(SIGTERM,sigfunc);
- signal(SIGKILL,sigfunc);
+ perror("Test");
+
//make the fifos if needed
if (stat(FIFO_FILE1, &st) != 0)
{
- if (stat(FIFO_FILE2, &st2) != 0)
+ if (stat(FIFO_FILE2, &st2) == 0)
{
- perror("FIFO 2 exists, but FIFO 1 not");
+ perror("FIFO 2 exists, but FIFO 1 not, blub");
exit(1);
}
first = 1;
+ perror("First");
umask(0);
erg = mknod(FIFO_FILE1, S_IFIFO | 0666, 0);
erg = mknod(FIFO_FILE2, S_IFIFO | 0666, 0);
@@ -96,9 +98,10 @@
else
{
first = 0;
- if (stat(FIFO_FILE2, &st2) == 0)
+ perror("Second");
+ if (stat(FIFO_FILE2, &st2) != 0)
{
- perror("FIFO 1 exists, but FIFO 2 not");
+ perror("FIFO 1 exists, but FIFO 2 not, mäh");
exit(1);
}
if ((fpout = fopen(FIFO_FILE1, "w")) == NULL)
@@ -132,6 +135,10 @@
}
else if (pid == 0) // CHILD PROCESS
{
+ perror("Child");
+ signal(SIGINT, sigfunc);
+ signal(SIGTERM, sigfunc);
+ signal(SIGKILL, sigfunc);
int rv = 0;
int readc = 0;
int pos = 0;
@@ -151,9 +158,9 @@
pos = 0;
- fwrite(&line[pos], 1, sizeof(struct GNUNET_MessageHeader), fpout);
+ //fwrite(&line[pos], 1, sizeof(struct GNUNET_MessageHeader), fpout);
- pos += sizeof(struct GNUNET_MessageHeader);
+ //pos += sizeof(struct GNUNET_MessageHeader);
//do not send radiotap header
pos += sizeof( struct RadiotapHeader);
@@ -170,6 +177,10 @@
}
else // PARENT PROCESS
{
+ perror("Parent");
+ signal(SIGINT, sigfunc);
+ signal(SIGTERM, sigfunc);
+ signal(SIGKILL, sigfunc);
int rv = 0;
ssize_t pos = 0;
char line[MAXLINE];
@@ -186,11 +197,12 @@
macmsg.hdr.size = sizeof(struct Wlan_Helper_Control_Message);
pos = 0;
+ /*
while (pos < sizeof(struct Wlan_Helper_Control_Message))
{
pos += write(STDOUT_FILENO, &macmsg + pos, sizeof(struct
Wlan_Helper_Control_Message) - pos);
}
-
+ */
while (closeprog == 0)
{
if ((rv = fread(line, 1, MAXLINE, fpin)) < 0)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r14027 - gnunet/src/transport,
gnunet <=