[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r28284 - gnunet/src/consensus
From: |
gnunet |
Subject: |
[GNUnet-SVN] r28284 - gnunet/src/consensus |
Date: |
Tue, 23 Jul 2013 23:27:17 +0200 |
Author: dold
Date: 2013-07-23 23:27:17 +0200 (Tue, 23 Jul 2013)
New Revision: 28284
Modified:
gnunet/src/consensus/gnunet-service-consensus.c
Log:
-send elements to client
Modified: gnunet/src/consensus/gnunet-service-consensus.c
===================================================================
--- gnunet/src/consensus/gnunet-service-consensus.c 2013-07-23 20:29:40 UTC
(rev 28283)
+++ gnunet/src/consensus/gnunet-service-consensus.c 2013-07-23 21:27:17 UTC
(rev 28284)
@@ -302,7 +302,36 @@
}
+
/**
+ * Iterator for set elements.
+ *
+ * @param cls closure
+ * @param element the current element, NULL if all elements have been
+ * iterated over
+ * @return GNUNET_YES to continue iterating, GNUNET_NO to stop.
+ */
+static int
+send_to_client_iter (void *cls,
+ const struct GNUNET_SET_Element *element)
+{
+ struct ConsensusSession *session = cls;
+
+ if (NULL != element)
+ {
+ struct GNUNET_MQ_Envelope *ev;
+ struct GNUNET_CONSENSUS_ElementMessage *m;
+
+ ev = GNUNET_MQ_msg (m,
GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_RECEIVED_ELEMENT);
+ m->element_type = htons (element->type);
+ memcpy (&m[1], element->data, element->size);
+ GNUNET_MQ_send (session->client_mq, ev);
+ }
+ return GNUNET_YES;
+}
+
+
+/**
* Start the next round.
* This function can be invoked as a timeout task, or called manually (tc will
be NULL then).
*
@@ -336,8 +365,10 @@
subround_over (session, NULL);
break;
case CONSENSUS_ROUND_EXCHANGE:
- /* FIXME: send all elements to client */
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO, "P%d: finished, sending elements to
client\n",
+ session->local_peer_idx);
session->current_round = CONSENSUS_ROUND_FINISH;
+ GNUNET_SET_iterate (session->element_set, send_to_client_iter, session);
default:
GNUNET_assert (0);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r28284 - gnunet/src/consensus,
gnunet <=