[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r22755 - gnunet/src/testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r22755 - gnunet/src/testbed |
Date: |
Wed, 18 Jul 2012 17:25:26 +0200 |
Author: harsha
Date: 2012-07-18 17:25:26 +0200 (Wed, 18 Jul 2012)
New Revision: 22755
Modified:
gnunet/src/testbed/test_testbed_api_2peers.c
gnunet/src/testbed/testbed_api.c
gnunet/src/testbed/testbed_api.h
gnunet/src/testbed/testbed_api_peers.c
Log:
testbed api peer start
Modified: gnunet/src/testbed/test_testbed_api_2peers.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_2peers.c 2012-07-18 15:06:13 UTC
(rev 22754)
+++ gnunet/src/testbed/test_testbed_api_2peers.c 2012-07-18 15:25:26 UTC
(rev 22755)
@@ -19,8 +19,9 @@
*/
/**
- * @file testbed/test_testbed_api.c
- * @brief testcases for the testbed api
+ * @file testbed/test_testbed_api_2peers.c
+ * @brief testcases for the testbed api: 2 peers are configured, started and
+ * connected together
* @author Sree Harsha Totakura
*/
Modified: gnunet/src/testbed/testbed_api.c
===================================================================
--- gnunet/src/testbed/testbed_api.c 2012-07-18 15:06:13 UTC (rev 22754)
+++ gnunet/src/testbed/testbed_api.c 2012-07-18 15:25:26 UTC (rev 22755)
@@ -286,6 +286,51 @@
/**
+ * Handler for GNUNET_MESSAGE_TYPE_TESTBED_PEERCREATESUCCESS message from
+ * controller (testbed service)
+ *
+ * @param c the controller handler
+ * @param msg message received
+ * @return GNUNET_YES if we can continue receiving from service; GNUNET_NO if
+ * not
+ */
+static int
+handle_peer_create_success (struct GNUNET_TESTBED_Controller *c,
+ const struct
+ GNUNET_TESTBED_PeerCreateSuccessEventMessage *msg)
+{
+ struct GNUNET_TESTBED_Operation *op;
+ struct GNUNET_TESTBED_Peer *peer;
+ uint64_t op_id;
+
+ GNUNET_assert (sizeof (struct GNUNET_TESTBED_PeerCreateSuccessEventMessage)
+ == ntohs (msg->header.size));
+ op_id = GNUNET_ntohll (msg->operation_id);
+ for (op = c->op_head; NULL != op; op = op->next)
+ {
+ if (op->operation_id == op_id)
+ break;
+ }
+ GNUNET_assert (NULL != op);
+ peer = op->data;
+ GNUNET_assert (NULL != peer);
+ GNUNET_assert (peer->unique_id == ntohl (msg->peer_id));
+ if (0 != (c->event_mask & (1L << GNUNET_TESTBED_ET_PEER_START)))
+ {
+ struct GNUNET_TESTBED_EventInformation info;
+
+ info.details.peer_start.host = peer->host;
+ info.details.peer_start.peer = peer;
+ if (NULL != c->cc)
+ c->cc (c->cc_cls, &info);
+ }
+ GNUNET_CONTAINER_DLL_remove (c->op_head, c->op_tail, op);
+ GNUNET_free (op);
+ return GNUNET_YES;
+}
+
+
+/**
* Handler for messages from controller (testbed service)
*
* @param cls the controller handler
@@ -318,6 +363,11 @@
GNUNET_TESTBED_GenericOperationSuccessEventMessage
*) msg);
break;
+ case GNUNET_MESSAGE_TYPE_TESTBED_PEERCREATESUCCESS:
+ status =
+ handle_peer_create_success
+ (c, (const struct GNUNET_TESTBED_PeerCreateSuccessEventMessage *)msg);
+ break;
default:
GNUNET_break (0);
}
Modified: gnunet/src/testbed/testbed_api.h
===================================================================
--- gnunet/src/testbed/testbed_api.h 2012-07-18 15:06:13 UTC (rev 22754)
+++ gnunet/src/testbed/testbed_api.h 2012-07-18 15:25:26 UTC (rev 22755)
@@ -34,6 +34,11 @@
enum OperationType
{
/**
+ * Peer start operation
+ */
+ OP_PEER_START,
+
+ /**
* Peer destroy operation
*/
OP_PEER_DESTROY
Modified: gnunet/src/testbed/testbed_api_peers.c
===================================================================
--- gnunet/src/testbed/testbed_api_peers.c 2012-07-18 15:06:13 UTC (rev
22754)
+++ gnunet/src/testbed/testbed_api_peers.c 2012-07-18 15:25:26 UTC (rev
22755)
@@ -158,8 +158,22 @@
struct GNUNET_TESTBED_Operation *
GNUNET_TESTBED_peer_start (struct GNUNET_TESTBED_Peer *peer)
{
- // FIXME: start locally or delegate...
- GNUNET_break (0);
+ struct GNUNET_TESTBED_Operation *op;
+ struct GNUNET_TESTBED_PeerStartMessage *msg;
+
+ op = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_Operation));
+ op->operation_id = peer->controller->operation_counter++;
+ op->type = OP_PEER_START;
+ op->data = peer;
+ msg = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_PeerStartMessage));
+ msg->header.size = htons (sizeof (struct GNUNET_TESTBED_PeerStartMessage));
+ msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_STARTPEER);
+ msg->peer_id = htonl (peer->unique_id);
+ msg->operation_id = GNUNET_htonll (op->operation_id);
+ GNUNET_CONTAINER_DLL_insert_tail (peer->controller->op_head,
+ peer->controller->op_tail, op);
+ GNUNET_TESTBED_queue_message_ (peer->controller,
+ (struct GNUNET_MessageHeader *) msg);
return NULL;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r22755 - gnunet/src/testbed,
gnunet <=