- fix compilation issue
[oweals/gnunet.git] / src / mesh / gnunet-mesh.c
index 226440537bc474d00230d82dc9c0e1e49e9b2fea..669ab9a01e68f5f400934f65579ffacb9a6bb800 100644 (file)
@@ -150,8 +150,8 @@ data_ready (void *cls, size_t size, void *buf)
   GNUNET_assert (size >= total_size);
 
   msg = buf;
-  msg->size = ntohs (total_size);
-  msg->type = ntohs (GNUNET_MESSAGE_TYPE_MESH_CLI);
+  msg->size = htons (total_size);
+  msg->type = htons (GNUNET_MESSAGE_TYPE_MESH_CLI);
   memcpy (&msg[1], cls, data_size);
   listen_stdio ();
 
@@ -179,6 +179,12 @@ read_stdio (void *cls,
 
   data_size = read (0, buf, 60000);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "stdio read %u bytes\n", data_size);
+  {
+    struct GNUNET_HashCode hash;
+    GNUNET_CRYPTO_hash (buf, data_size, &hash);
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  cli SEND %p hash %s (%u)\n",
+                buf, GNUNET_h2s_full (&hash), data_size);
+  }
   if (data_size < 1)
   {
     GNUNET_SCHEDULER_shutdown();
@@ -206,6 +212,7 @@ listen_stdio (void)
                                GNUNET_TIME_UNIT_FOREVER_REL,
                                rs, NULL,
                                &read_stdio, NULL);
+  GNUNET_NETWORK_fdset_destroy (rs);
 }
 
 
@@ -254,7 +261,7 @@ static void *
 channel_incoming (void *cls,
                   struct GNUNET_MESH_Channel * channel,
                   const struct GNUNET_PeerIdentity * initiator,
-                  uint32_t port, enum MeshOption options)
+                  uint32_t port, enum GNUNET_MESH_ChannelOption options)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Incoming channel %p on port %u\n",
@@ -286,6 +293,7 @@ static void
 create_channel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct GNUNET_PeerIdentity pid;
+  enum GNUNET_MESH_ChannelOption opt;
 
   GNUNET_assert (NULL == ch);
 
@@ -301,8 +309,8 @@ create_channel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
     return;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Connecting to `%s'\n", target_id);
-  ch = GNUNET_MESH_channel_create (mh, NULL, &pid, target_port,
-                                   GNUNET_MESH_OPTION_DEFAULT);
+  opt = GNUNET_MESH_OPTION_DEFAULT | GNUNET_MESH_OPTION_RELIABLE;
+  ch = GNUNET_MESH_channel_create (mh, NULL, &pid, target_port, opt);
   listen_stdio ();
 }
 
@@ -327,12 +335,22 @@ data_callback (void *cls,
                void **channel_ctx,
                const struct GNUNET_MessageHeader *message)
 {
-  int16_t len;
+  uint16_t len;
   GNUNET_break (ch == channel);
 
   len = ntohs (message->size) - sizeof (*message);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got %u bytes\n", len);
-  FPRINTF (stdout, "%.*s", len, (char *) &message[1]);
+  write (1, (char *) &message[1], len);
+  {
+    struct GNUNET_HashCode hash;
+
+    GNUNET_CRYPTO_hash (message, ntohs (message->size), &hash);
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  api RECV %p hash %s (%u)\n",
+                message, GNUNET_h2s_full (&hash), ntohs (message->size));
+    GNUNET_CRYPTO_hash (&message[1], len, &hash);
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  cli RECV %p hash %s (%u)\n",
+                &message[1], GNUNET_h2s_full (&hash), len);
+  }
   return GNUNET_OK;
 }