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 ();
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();
GNUNET_TIME_UNIT_FOREVER_REL,
rs, NULL,
&read_stdio, NULL);
+ GNUNET_NETWORK_fdset_destroy (rs);
}
create_channel (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct GNUNET_PeerIdentity pid;
+ enum GNUNET_MESH_ChannelOption opt;
GNUNET_assert (NULL == ch);
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 ();
}
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;
}