gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r21985 - gnunet/src/testbed


From: gnunet
Subject: [GNUnet-SVN] r21985 - gnunet/src/testbed
Date: Thu, 14 Jun 2012 10:09:26 +0200

Author: harsha
Date: 2012-06-14 10:09:25 +0200 (Thu, 14 Jun 2012)
New Revision: 21985

Modified:
   gnunet/src/testbed/Makefile.am
   gnunet/src/testbed/gnunet-service-testbed.c
Log:
handling add host

Modified: gnunet/src/testbed/Makefile.am
===================================================================
--- gnunet/src/testbed/Makefile.am      2012-06-14 08:07:52 UTC (rev 21984)
+++ gnunet/src/testbed/Makefile.am      2012-06-14 08:09:25 UTC (rev 21985)
@@ -21,6 +21,7 @@
   gnunet-service-testbed.c
 gnunet_service_testbed_LDADD = $(XLIB) \
   $(top_builddir)/src/util/libgnunetutil.la \
+ $(top_builddir)/src/testbed/libgnunettestbed.la \
   $(LTLIBINTL)
 
 dist_pkgcfg_DATA = \

Modified: gnunet/src/testbed/gnunet-service-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.c 2012-06-14 08:07:52 UTC (rev 
21984)
+++ gnunet/src/testbed/gnunet-service-testbed.c 2012-06-14 08:09:25 UTC (rev 
21985)
@@ -29,8 +29,8 @@
 #include "gnunet_server_lib.h"
 
 #include "testbed.h"
+#include "gnunet_testbed_service.h"
 
-
 #define LOG(kind,...)                           \
   GNUNET_log (kind, __VA_ARGS__)
 
@@ -98,6 +98,50 @@
 
 
 /**
+ * Message handler for GNUNET_MESSAGE_TYPE_TESTBED_ADDHOST messages
+ *
+ * @param cls NULL
+ * @param client identification of the client
+ * @param message the actual message
+ */
+static void 
+handle_addhost (void *cls,
+                struct GNUNET_SERVER_Client *client,
+                const struct GNUNET_MessageHeader *message)
+{
+  struct GNUNET_TESTBED_Host *host;
+  const struct GNUNET_TESTBED_AddHostMessage *msg;
+  char *username;
+  char *hostname;
+  uint16_t username_length;
+  uint16_t hostname_length;
+  
+  msg = (const struct GNUNET_TESTBED_AddHostMessage *) message;
+  username_length = ntohs (msg->user_name_length);
+  username_length = (0 == username_length) ? 0 : username_length + 1;
+  username = (char *) &(msg[1]);
+  hostname = username + username_length;
+  if (ntohs (message->size) <=
+      (sizeof (struct GNUNET_TESTBED_AddHostMessage) + username_length))
+  {
+    GNUNET_break (0);
+    GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
+    return;
+  }
+  hostname_length = ntohs (message->size)
+    - (sizeof (struct GNUNET_TESTBED_AddHostMessage) + username_length);
+  if (strlen (hostname) != hostname_length)
+  {
+    GNUNET_break (0);
+    GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
+    return;
+  }
+  host = GNUNET_TESTBED_host_create (hostname, username, ntohs
+                                     (msg->ssh_port));
+  /* Store host in a hashmap? But the host_id will be different */
+}
+
+/**
  * Task to clean up and shutdown nicely
  *
  * @param cls NULL
@@ -150,6 +194,7 @@
     {
       {&handle_init, NULL, GNUNET_MESSAGE_TYPE_TESTBED_INIT,
        sizeof (struct GNUNET_TESTBED_Message)},
+      {&handle_addhost, NULL, GNUNET_MESSAGE_TYPE_TESTBED_ADDHOST, 0},
       {NULL}
     };
 




reply via email to

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