aboutsummaryrefslogtreecommitdiff
path: root/src/testbed
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-07-24 11:31:47 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-07-24 11:31:47 +0000
commit9e5d8202485538de57cd04dcef30b5fe36ecd6a8 (patch)
treea9d927bb96faf3bd046f74aa539704c8f0a019c3 /src/testbed
parenta6f6e3422767655790228f5b686a9cf99ed51205 (diff)
downloadgnunet-9e5d8202485538de57cd04dcef30b5fe36ecd6a8.tar.gz
gnunet-9e5d8202485538de57cd04dcef30b5fe36ecd6a8.zip
message checks at client receive side
Diffstat (limited to 'src/testbed')
-rw-r--r--src/testbed/testbed_api.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/testbed/testbed_api.c b/src/testbed/testbed_api.c
index 466e19339..175c08404 100644
--- a/src/testbed/testbed_api.c
+++ b/src/testbed/testbed_api.c
@@ -491,8 +491,9 @@ handle_peer_config (struct GNUNET_TESTBED_Controller *c,
491static void 491static void
492message_handler (void *cls, const struct GNUNET_MessageHeader *msg) 492message_handler (void *cls, const struct GNUNET_MessageHeader *msg)
493{ 493{
494 struct GNUNET_TESTBED_Controller *c = cls; 494 struct GNUNET_TESTBED_Controller *c = cls;
495 int status; 495 int status;
496 uint16_t msize;
496 497
497 c->in_receive = GNUNET_NO; 498 c->in_receive = GNUNET_NO;
498 /* FIXME: Add checks for message integrity */ 499 /* FIXME: Add checks for message integrity */
@@ -502,29 +503,39 @@ message_handler (void *cls, const struct GNUNET_MessageHeader *msg)
502 return; 503 return;
503 } 504 }
504 status = GNUNET_OK; 505 status = GNUNET_OK;
506 msize = ntohs (msg->size);
505 switch (ntohs (msg->type)) 507 switch (ntohs (msg->type))
506 { 508 {
507 case GNUNET_MESSAGE_TYPE_TESTBED_ADDHOSTCONFIRM: 509 case GNUNET_MESSAGE_TYPE_TESTBED_ADDHOSTCONFIRM:
510 GNUNET_assert (msize >= sizeof (struct
511 GNUNET_TESTBED_HostConfirmedMessage));
508 status = 512 status =
509 handle_addhostconfirm (c, (const struct 513 handle_addhostconfirm (c, (const struct GNUNET_TESTBED_HostConfirmedMessage *) msg);
510 GNUNET_TESTBED_HostConfirmedMessage *) msg);
511 break; 514 break;
512 case GNUNET_MESSAGE_TYPE_TESTBED_GENERICOPSUCCESS: 515 case GNUNET_MESSAGE_TYPE_TESTBED_GENERICOPSUCCESS:
516 GNUNET_assert
517 (msize == sizeof (struct GNUNET_TESTBED_GenericOperationSuccessEventMessage));
513 status = 518 status =
514 handle_opsuccess (c, (const struct 519 handle_opsuccess (c, (const struct
515 GNUNET_TESTBED_GenericOperationSuccessEventMessage 520 GNUNET_TESTBED_GenericOperationSuccessEventMessage
516 *) msg); 521 *) msg);
517 break; 522 break;
518 case GNUNET_MESSAGE_TYPE_TESTBED_PEERCREATESUCCESS: 523 case GNUNET_MESSAGE_TYPE_TESTBED_PEERCREATESUCCESS:
524 GNUNET_assert (msize ==
525 sizeof (struct GNUNET_TESTBED_PeerCreateSuccessEventMessage));
519 status = 526 status =
520 handle_peer_create_success 527 handle_peer_create_success
521 (c, (const struct GNUNET_TESTBED_PeerCreateSuccessEventMessage *)msg); 528 (c, (const struct GNUNET_TESTBED_PeerCreateSuccessEventMessage *)msg);
522 break; 529 break;
523 case GNUNET_MESSAGE_TYPE_TESTBED_PEEREVENT: 530 case GNUNET_MESSAGE_TYPE_TESTBED_PEEREVENT:
531 GNUNET_assert (msize == sizeof (struct GNUNET_TESTBED_PeerEventMessage));
524 status = 532 status =
525 handle_peer_event (c, (const struct GNUNET_TESTBED_PeerEventMessage *) msg); 533 handle_peer_event (c, (const struct GNUNET_TESTBED_PeerEventMessage *) msg);
534
526 break; 535 break;
527 case GNUNET_MESSAGE_TYPE_TESTBED_PEERCONFIG: 536 case GNUNET_MESSAGE_TYPE_TESTBED_PEERCONFIG:
537 GNUNET_assert (msize >=
538 sizeof (struct GNUNET_TESTBED_PeerConfigurationInformationMessage));
528 status = 539 status =
529 handle_peer_config 540 handle_peer_config
530 (c, (const struct GNUNET_TESTBED_PeerConfigurationInformationMessage *) msg); 541 (c, (const struct GNUNET_TESTBED_PeerConfigurationInformationMessage *) msg);