gnunet-svn
[Top][All Lists]
Advanced

[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);
   }




reply via email to

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