Errors fixed
authorDavid Brodski <david@brodski.eu>
Wed, 22 Dec 2010 15:24:15 +0000 (15:24 +0000)
committerDavid Brodski <david@brodski.eu>
Wed, 22 Dec 2010 15:24:15 +0000 (15:24 +0000)
src/transport/gnunet-transport-wlan-helper.c
src/transport/test_plugin_transport_wlan_dummy.c

index 4332e9a0de477afd2a7d349c8b71a21711f4b545..48b628e944df501c033b8756b122e943a469b257 100644 (file)
@@ -392,10 +392,11 @@ int ieee80211_radiotap_iterator_next(
        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 @@ void sigfunc(int sig)
  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 @@ testmode(int argc, char *argv[])
 {
   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 @@ testmode(int argc, char *argv[])
   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 @@ testmode(int argc, char *argv[])
 
   // fork
 
+  fd[0] = STDIN_FILENO;
+  fd[1] = STDOUT_FILENO;
+
   if ((pid = fork()) < 0)
     {
       perror("FORK ERROR");
@@ -488,6 +496,10 @@ testmode(int argc, char *argv[])
     }
   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 @@ testmode(int argc, char *argv[])
           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 @@ testmode(int argc, char *argv[])
     }
   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 @@ testmode(int argc, char *argv[])
       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 @@ testmode(int argc, char *argv[])
           pos = 0;
           while (pos < rv)
             {
-              pos += write(STDOUT_FILENO, &line[pos], rv - pos);
+              pos += write(fd[1], &line[pos], rv - pos);
             }
         }
 
index 53b957ecac0db4dc0bdc071ac8d28a3ea86dc600..85ea223ab34fe99c4e0e281012605de8d6c0f7d8 100644 (file)
@@ -50,6 +50,7 @@ void sigfunc(int sig)
  else\r
   {\r
    closeprog = 1;\r
+   exit(0);\r
    }\r
 }\r
 \r
@@ -58,26 +59,27 @@ void sigfunc(int sig)
 int\r
 main(int argc, char *argv[])\r
 {\r
-  struct stat st,st2;\r
+  struct stat st;\r
+  struct stat st2;\r
   int erg;\r
   int first;\r
   FILE *fpin;\r
   FILE *fpout;\r
   pid_t pid;\r
 \r
-  signal(SIGINT,sigfunc);\r
-  signal(SIGTERM,sigfunc);\r
-  signal(SIGKILL,sigfunc);\r
+  perror("Test");\r
+\r
 \r
   //make the fifos if needed\r
   if (stat(FIFO_FILE1, &st) != 0)\r
     {\r
-      if (stat(FIFO_FILE2, &st2) != 0)\r
+      if (stat(FIFO_FILE2, &st2) == 0)\r
         {\r
-          perror("FIFO 2 exists, but FIFO 1 not");\r
+          perror("FIFO 2 exists, but FIFO 1 not, blub");\r
           exit(1);\r
         }\r
       first = 1;\r
+      perror("First");\r
       umask(0);\r
       erg = mknod(FIFO_FILE1, S_IFIFO | 0666, 0);\r
       erg = mknod(FIFO_FILE2, S_IFIFO | 0666, 0);\r
@@ -96,9 +98,10 @@ main(int argc, char *argv[])
   else\r
     {\r
       first = 0;\r
-      if (stat(FIFO_FILE2, &st2) == 0)\r
+      perror("Second");\r
+      if (stat(FIFO_FILE2, &st2) != 0)\r
         {\r
-          perror("FIFO 1 exists, but FIFO 2 not");\r
+          perror("FIFO 1 exists, but FIFO 2 not, mäh");\r
           exit(1);\r
         }\r
       if ((fpout = fopen(FIFO_FILE1, "w")) == NULL)\r
@@ -132,6 +135,10 @@ main(int argc, char *argv[])
     }\r
   else if (pid == 0) // CHILD PROCESS\r
     {\r
+    perror("Child");\r
+      signal(SIGINT, sigfunc);\r
+      signal(SIGTERM, sigfunc);\r
+      signal(SIGKILL, sigfunc);\r
       int rv = 0;\r
       int readc = 0;\r
       int pos = 0;\r
@@ -151,9 +158,9 @@ main(int argc, char *argv[])
 \r
           pos = 0;\r
 \r
-          fwrite(&line[pos], 1, sizeof(struct GNUNET_MessageHeader), fpout);\r
+          //fwrite(&line[pos], 1, sizeof(struct GNUNET_MessageHeader), fpout);\r
 \r
-          pos += sizeof(struct GNUNET_MessageHeader);\r
+          //pos += sizeof(struct GNUNET_MessageHeader);\r
 \r
           //do not send radiotap header\r
           pos += sizeof( struct RadiotapHeader);\r
@@ -170,6 +177,10 @@ main(int argc, char *argv[])
     }\r
   else // PARENT PROCESS\r
     {\r
+    perror("Parent");\r
+      signal(SIGINT, sigfunc);\r
+      signal(SIGTERM, sigfunc);\r
+      signal(SIGKILL, sigfunc);\r
       int rv = 0;\r
       ssize_t pos = 0;\r
       char line[MAXLINE];\r
@@ -186,11 +197,12 @@ main(int argc, char *argv[])
       macmsg.hdr.size = sizeof(struct Wlan_Helper_Control_Message);\r
 \r
       pos = 0;\r
+      /*\r
       while (pos < sizeof(struct Wlan_Helper_Control_Message))\r
         {\r
           pos += write(STDOUT_FILENO, &macmsg + pos, sizeof(struct Wlan_Helper_Control_Message) - pos);\r
         }\r
-\r
+      */\r
       while (closeprog == 0)\r
         {\r
           if ((rv = fread(line, 1, MAXLINE, fpin)) < 0)\r