gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r3440 - GNUnet/src/applications/vpn


From: grothoff
Subject: [GNUnet-SVN] r3440 - GNUnet/src/applications/vpn
Date: Tue, 3 Oct 2006 11:30:11 -0700 (PDT)

Author: grothoff
Date: 2006-10-03 11:30:10 -0700 (Tue, 03 Oct 2006)
New Revision: 3440

Modified:
   GNUnet/src/applications/vpn/gnunet-vpn.c
Log:
towards compiling vpn

Modified: GNUnet/src/applications/vpn/gnunet-vpn.c
===================================================================
--- GNUnet/src/applications/vpn/gnunet-vpn.c    2006-10-03 18:25:29 UTC (rev 
3439)
+++ GNUnet/src/applications/vpn/gnunet-vpn.c    2006-10-03 18:30:10 UTC (rev 
3440)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2001, 2002, 2004 Christian Grothoff (and other contributing authors)
+     (C) 2001, 2002, 2004, 2006 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
@@ -25,18 +25,19 @@
  */
 
 #include "gnunet_util.h"
+#include "gnunet_util_network_client.h"
 #include "gnunet_protocols.h"
 #include "platform.h"
 
 #define TEMPLATE_VERSION "2006072900"
 
-#define buf ((CS_MESSAGE_HEADER*)&buffer)
+#define buf ((MESSAGE_HEADER*)&buffer)
 
 
-static Semaphore * doneSem;
-static Semaphore * cmdAck;
-static Semaphore * exitCheck;
-static Mutex lock;
+static struct SEMAPHORE * doneSem;
+static struct SEMAPHORE * cmdAck;
+static struct SEMAPHORE * exitCheck;
+static struct MUTEX * lock;
 static int wantExit;
 static int silent = NO;
 
@@ -106,9 +107,9 @@
 
 static void * receiveThread(struct ClientServerConnection * sock) {
   /* printf("Welcome to the VPN console: (Ctrl-D to exit)\n"); */
-  /* CS_MESSAGE_HEADER *buffer; */
+  /* MESSAGE_HEADER *buffer; */
   char buffer[MAX_BUFFER_SIZE];
-  CS_MESSAGE_HEADER* bufp = buf;
+  MESSAGE_HEADER* bufp = buf;
       
   /* buffer = MALLOC(MAX_BUFFER_SIZE); */
   while (OK == connection_read(sock, &bufp)) {
@@ -122,31 +123,31 @@
                case CS_PROTO_VPN_REALISE:
                case CS_PROTO_VPN_ADD:
                case CS_PROTO_VPN_TRUST:
-                       if (ntohs(buf->size) > sizeof(CS_MESSAGE_HEADER)) {
-                       fwrite( buffer+sizeof(CS_MESSAGE_HEADER),
+                       if (ntohs(buf->size) > sizeof(MESSAGE_HEADER)) {
+                       fwrite( buffer+sizeof(MESSAGE_HEADER),
                                sizeof(char),
-                               ntohs(buf->size)-sizeof(CS_MESSAGE_HEADER),
+                               ntohs(buf->size)-sizeof(MESSAGE_HEADER),
                                stdout);
                        }
 
                        SEMAPHORE_UP(cmdAck);
-                       SEMAPHORE_DOWN(exitCheck);
-                       MUTEX_LOCK(&lock);
+                       SEMAPHORE_DOWN(exitCheck, YES);
+                       MUTEX_LOCK(lock);
                        if (wantExit == YES) {
-                               MUTEX_UNLOCK(&lock);
+                               MUTEX_UNLOCK(lock);
                                SEMAPHORE_UP(doneSem);
                                return NULL;
                        }
-                       MUTEX_UNLOCK(&lock);
+                       MUTEX_UNLOCK(lock);
                break;;
                case CS_PROTO_VPN_MSG:
                        if (silent == YES) break;;
                case CS_PROTO_VPN_REPLY:
                
-               if (ntohs(buf->size) > sizeof(CS_MESSAGE_HEADER)) {
-                       fwrite( buffer+sizeof(CS_MESSAGE_HEADER),
+               if (ntohs(buf->size) > sizeof(MESSAGE_HEADER)) {
+                       fwrite( buffer+sizeof(MESSAGE_HEADER),
                                sizeof(char),
-                               ntohs(buf->size)-sizeof(CS_MESSAGE_HEADER),
+                               ntohs(buf->size)-sizeof(MESSAGE_HEADER),
                                stdout);
                }
                break;;
@@ -164,26 +165,29 @@
  */
 int main(int argc, char ** argv) {
   struct ClientServerConnection * sock;
-  PTHREAD_T messageReceiveThread;
+  struct PTHREAD * messageReceiveThread;
   void * unused;
-  char buffer[sizeof(CS_MESSAGE_HEADER) + 1024];
+  char buffer[sizeof(MESSAGE_HEADER) + 1024];
   int rancommand = 0;
 
-  doneSem = SEMAPHORE_NEW(0);
-  cmdAck = SEMAPHORE_NEW(0);
-  exitCheck = SEMAPHORE_NEW(0);
-  MUTEX_CREATE(&lock);
   if (SYSERR == initUtil(argc, argv, &parseOptions))
     return 0; /* parse error, --help, etc. */
 
 
+  doneSem = SEMAPHORE_CREATE(0);
+  cmdAck = SEMAPHORE_CREATE(0);
+  exitCheck = SEMAPHORE_CREATE(0);
+  lock = MUTEX_CREATE(NO);
   sock = getClientSocket();
   wantExit = NO;
 
-  if (0 != PTHREAD_CREATE(&messageReceiveThread,
-                         (PThreadMain) &receiveThread,
-                         sock,
-                         128 * 1024)) DIE_STRERROR("pthread_create");
+  messageReceiveThread = PTHREAD_CREATE((PThreadMain) &receiveThread,
+                                       sock,
+                                       128 * 1024);
+  if (messageReceiveThread == NULL)
+    GE_DIE_STRERROR(ectx,
+                   GE_FATAL | GE_ADMIN | GE_USER | GE_IMMEDIATE,
+                   "pthread_create");
 
 
   /* accept keystrokes from user and send to gnunetd */
@@ -193,63 +197,63 @@
                SEMAPHORE_UP(exitCheck);
        }
        if (strncmp(buffer, "debug0", 6) == 0) {
-               ((CS_MESSAGE_HEADER*)&buffer)->type = 
htons(CS_PROTO_VPN_DEBUGOFF);
-               ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER));
-               if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+               ((MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_DEBUGOFF);
+               ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER));
+               if (SYSERR == connection_write(sock, (MESSAGE_HEADER*)&buffer)) 
return -1;
                rancommand = 1;
-               SEMAPHORE_DOWN(cmdAck);
+               SEMAPHORE_DOWN(cmdAck, YES);
        } else if (strncmp(buffer, "debug1", 6) == 0) {
-               ((CS_MESSAGE_HEADER*)&buffer)->type = 
htons(CS_PROTO_VPN_DEBUGON);
-               ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER));
-               if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+               ((MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_DEBUGON);
+               ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER));
+               if (SYSERR == connection_write(sock, (MESSAGE_HEADER*)&buffer)) 
return -1;
                rancommand = 1;
-               SEMAPHORE_DOWN(cmdAck);
+               SEMAPHORE_DOWN(cmdAck, YES);
        } else if (strncmp(buffer, "tunnels", 7) == 0) {
-               ((CS_MESSAGE_HEADER*)&buffer)->type = 
htons(CS_PROTO_VPN_TUNNELS);
-               ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER));
-               if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+               ((MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_TUNNELS);
+               ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER));
+               if (SYSERR == connection_write(sock, (MESSAGE_HEADER*)&buffer)) 
return -1;
                rancommand = 1;
-               SEMAPHORE_DOWN(cmdAck);
+               SEMAPHORE_DOWN(cmdAck, YES);
        } else if (strncmp(buffer, "route", 5) == 0) {
-               ((CS_MESSAGE_HEADER*)&buffer)->type = 
htons(CS_PROTO_VPN_ROUTES);
-               ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER));
-               if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+               ((MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_ROUTES);
+               ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER));
+               if (SYSERR == connection_write(sock, (MESSAGE_HEADER*)&buffer)) 
return -1;
                rancommand = 1;
-               SEMAPHORE_DOWN(cmdAck);
+               SEMAPHORE_DOWN(cmdAck, YES);
        } else if (strncmp(buffer, "realised", 8) == 0) {
-               ((CS_MESSAGE_HEADER*)&buffer)->type = 
htons(CS_PROTO_VPN_REALISED);
-               ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER));
-               if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+               ((MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_REALISED);
+               ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER));
+               if (SYSERR == connection_write(sock, (MESSAGE_HEADER*)&buffer)) 
return -1;
                rancommand = 1;
-               SEMAPHORE_DOWN(cmdAck);
+               SEMAPHORE_DOWN(cmdAck, YES);
        } else if (strncmp(buffer, "reset", 5) == 0) {
-               ((CS_MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_RESET);
-               ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER));
-               if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+               ((MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_RESET);
+               ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER));
+               if (SYSERR == connection_write(sock, (MESSAGE_HEADER*)&buffer)) 
return -1;
                rancommand = 1;
-               SEMAPHORE_DOWN(cmdAck);
+               SEMAPHORE_DOWN(cmdAck, YES);
        } else if (strncmp(buffer, "realise", 7) == 0) {
-               ((CS_MESSAGE_HEADER*)&buffer)->type = 
htons(CS_PROTO_VPN_REALISE);
-               ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER));
-               if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+               ((MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_REALISE);
+               ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER));
+               if (SYSERR == connection_write(sock, (MESSAGE_HEADER*)&buffer)) 
return -1;
                rancommand = 1;
-               SEMAPHORE_DOWN(cmdAck);
+               SEMAPHORE_DOWN(cmdAck, YES);
        } else if (strncmp(buffer, "trust", 5) == 0) {
-               ((CS_MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_TRUST);
-               ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER));
-               if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+               ((MESSAGE_HEADER*)&buffer)->type = htons(CS_PROTO_VPN_TRUST);
+               ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER));
+               if (SYSERR == connection_write(sock, (MESSAGE_HEADER*)&buffer)) 
return -1;
                rancommand = 1;
-               SEMAPHORE_DOWN(cmdAck);
+               SEMAPHORE_DOWN(cmdAck, YES);
        } else if (strncmp(buffer, "add ", 4) == 0) {
                /* message header is 4 bytes long, we overwrite "add " with it
                 * also don't include \r or \n in the message
                 */
                if (strlen(&buffer[4]) > 1) {
-                       ((CS_MESSAGE_HEADER*)&buffer)->type = 
htons(CS_PROTO_VPN_ADD);
-                       ((CS_MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(CS_MESSAGE_HEADER) + strlen(&buffer[5]));
-                       if (SYSERR == connection_write(sock, 
(CS_MESSAGE_HEADER*)&buffer)) return -1;
+                       ((MESSAGE_HEADER*)&buffer)->type = 
htons(CS_PROTO_VPN_ADD);
+                       ((MESSAGE_HEADER*)&buffer)->size = 
htons(sizeof(MESSAGE_HEADER) + strlen(&buffer[5]));
+                       if (SYSERR == connection_write(sock, 
(MESSAGE_HEADER*)&buffer)) return -1;
                        rancommand = 1;
-                       SEMAPHORE_DOWN(cmdAck);
+                       SEMAPHORE_DOWN(cmdAck, YES);
                } else {
                        printf("add requires hash as a parameter!\n");
                }
@@ -259,25 +263,24 @@
   }
   /* wait for shutdown... */
   if (rancommand) {
-    MUTEX_LOCK(&lock);
+    MUTEX_LOCK(lock);
     wantExit = YES;
-    MUTEX_UNLOCK(&lock);
+    MUTEX_UNLOCK(lock);
     SEMAPHORE_UP(exitCheck);
   }
 
   /* we can't guarantee that this can be called while the other thread is 
waiting for read */
   closeSocketTemporarily(sock);
-  SEMAPHORE_DOWN(doneSem);
+  SEMAPHORE_DOWN(doneSem, YES);
 
-  SEMAPHORE_FREE(doneSem);
-  SEMAPHORE_FREE(cmdAck);
-  SEMAPHORE_FREE(exitCheck);
-  MUTEX_DESTROY(&lock);
-  PTHREAD_JOIN(&messageReceiveThread, &unused);
+  SEMAPHORE_DESTROY(doneSem);
+  SEMAPHORE_DESTROY(cmdAck);
+  SEMAPHORE_DESTROY(exitCheck);
+  MUTEX_DESTROY(lock);
+  PTHREAD_JOIN(messageReceiveThread, &unused);
   connection_destroy(sock);
 
-  doneUtil();
   return 0;
 }
 
-/* end of gnunet-template.c */
+/* end of gnunet-vpn.c */





reply via email to

[Prev in Thread] Current Thread [Next in Thread]