commit fa4a75ba2ddcf893cb7ee45c4b5f8b88af5dd344
parent 4d16dd35e67216b69a7d49d967ccdebcd1238344
Author: Florian Dold <florian.dold@gmail.com>
Date: Tue, 23 Jul 2013 21:45:32 +0000
- extract context msg correctly
Diffstat:
3 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/src/set/gnunet-service-set.c b/src/set/gnunet-service-set.c
@@ -381,7 +381,8 @@ incoming_suggest (struct Incoming *incoming, struct Listener *listener)
mqm = GNUNET_MQ_msg_nested_mh (cmsg, GNUNET_MESSAGE_TYPE_SET_REQUEST,
incoming->spec->context_msg);
GNUNET_assert (NULL != mqm);
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "suggesting request with accept id %u\n", incoming->suggest_id);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "suggesting request with accept id %u\n",
+ incoming->suggest_id);
cmsg->accept_id = htonl (incoming->suggest_id);
cmsg->peer_id = incoming->spec->peer;
GNUNET_MQ_send (listener->client_mq, mqm);
@@ -678,6 +679,9 @@ handle_client_evaluate (void *cls,
spec->peer = msg->target_peer;
spec->set = set;
spec->client_request_id = ntohl (msg->request_id);
+ spec->context_msg = GNUNET_MQ_extract_nested_mh (msg);
+ if (NULL != spec->context_msg)
+ spec->context_msg = GNUNET_copy_message (spec->context_msg);
tunnel = GNUNET_MESH_tunnel_create (mesh, tc, &msg->target_peer,
GNUNET_APPLICATION_TYPE_SET,
@@ -940,8 +944,8 @@ dispatch_p2p_message (void *cls,
ntohs (message->type));
ret = tc->vt->msg_handler (tc->op, message);
GNUNET_MESH_receive_done (tunnel);
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "handled mesh message\n");
-
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "handled mesh message (type: %u)\n",
+ ntohs (message->type));
return ret;
}
diff --git a/src/set/gnunet-service-set_union.c b/src/set/gnunet-service-set_union.c
@@ -499,12 +499,16 @@ send_operation_request (struct OperationState *eo)
GNUNET_MQ_send (eo->mq, ev);
if (NULL != eo->spec->context_msg)
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "sent op request with context message\n");
+ else
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "sent op request without context message\n");
+
+ if (NULL != eo->spec->context_msg)
{
GNUNET_free (eo->spec->context_msg);
eo->spec->context_msg = NULL;
}
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "sent op request\n");
}
diff --git a/src/set/test_set_api.c b/src/set/test_set_api.c
@@ -91,6 +91,10 @@ listen_cb (void *cls,
{
struct GNUNET_SET_OperationHandle *oh;
+ GNUNET_assert (NULL != context_msg);
+
+ GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_TEST);
+
GNUNET_log (GNUNET_ERROR_TYPE_INFO, "listen cb called\n");
GNUNET_SET_listen_cancel (listen_handle);
@@ -108,10 +112,14 @@ static void
start (void *cls)
{
struct GNUNET_SET_OperationHandle *oh;
+ struct GNUNET_MessageHeader context_msg;
+
+ context_msg.size = htons (sizeof context_msg);
+ context_msg.type = htons (GNUNET_MESSAGE_TYPE_TEST);
listen_handle = GNUNET_SET_listen (config, GNUNET_SET_OPERATION_UNION,
&app_id, listen_cb, NULL);
- oh = GNUNET_SET_prepare (&local_id, &app_id, NULL, 42,
+ oh = GNUNET_SET_prepare (&local_id, &app_id, &context_msg, 42,
GNUNET_SET_RESULT_ADDED,
result_cb_set1, NULL);
GNUNET_SET_commit (oh, set1);