aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-10-12 14:58:31 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-10-12 14:58:31 +0000
commitf2cfcd5b55fb441a5cd76c4508be48c85d2b93b1 (patch)
tree47b685bf218dc7838beaabafffabd85a194b616a
parenta880ba0d8eaa854c5bbff9f51e467a18c3ca6201 (diff)
fixes
-rw-r--r--src/testbed/gnunet-service-testbed.c11
-rw-r--r--src/testbed/gnunet-testbed-profiler.c7
-rw-r--r--src/testbed/testbed_api.c6
3 files changed, 16 insertions, 8 deletions
diff --git a/src/testbed/gnunet-service-testbed.c b/src/testbed/gnunet-service-testbed.c
index 44eb19e23b..d8d2661ccd 100644
--- a/src/testbed/gnunet-service-testbed.c
+++ b/src/testbed/gnunet-service-testbed.c
@@ -1479,12 +1479,15 @@ handle_add_host (void *cls, struct GNUNET_SERVER_Client *client,
msg = (const struct GNUNET_TESTBED_AddHostMessage *) message;
msize = ntohs (msg->header.size);
- username = (char *) &(msg[1]);
+ username = (char *) &msg[1];
username_length = ntohs (msg->user_name_length);
- GNUNET_assert (msize > (sizeof (struct GNUNET_TESTBED_AddHostMessage) + username_length + 1)); /* msg must contain hostname */
if (0 != username_length)
- GNUNET_assert ('\0' == username[username_length]);
- username_length = (0 == username_length) ? 0 : username_length + 1;
+ username_length++;
+ /* msg must contain hostname */
+ GNUNET_assert (msize > (sizeof (struct GNUNET_TESTBED_AddHostMessage) +
+ username_length + 1));
+ if (0 != username_length)
+ GNUNET_assert ('\0' == username[username_length - 1]);
hostname = username + username_length;
hostname_length =
msize - (sizeof (struct GNUNET_TESTBED_AddHostMessage) + username_length);
diff --git a/src/testbed/gnunet-testbed-profiler.c b/src/testbed/gnunet-testbed-profiler.c
index 4247bbebf4..0191580c43 100644
--- a/src/testbed/gnunet-testbed-profiler.c
+++ b/src/testbed/gnunet-testbed-profiler.c
@@ -252,14 +252,15 @@ register_hosts (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
static unsigned int reg_host;
- register_hosts_task = GNUNET_SCHEDULER_NO_TASK;
- if (reg_host == num_hosts)
+ register_hosts_task = GNUNET_SCHEDULER_NO_TASK;
+ if (reg_host == num_hosts - 1)
{
LOG (GNUNET_ERROR_TYPE_DEBUG,
"All hosts successfully registered\n");
/* Start peer create task */
+ return;
}
- reg_handle = GNUNET_TESTBED_register_host (mc, hosts[reg_host++],
+ reg_handle = GNUNET_TESTBED_register_host (mc, hosts[++reg_host],
host_registration_completion,
NULL);
}
diff --git a/src/testbed/testbed_api.c b/src/testbed/testbed_api.c
index 7cd536497b..053d730ffe 100644
--- a/src/testbed/testbed_api.c
+++ b/src/testbed/testbed_api.c
@@ -1780,9 +1780,13 @@ GNUNET_TESTBED_register_host (struct GNUNET_TESTBED_Controller *controller,
msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_ADDHOST);
msg->host_id = htonl (GNUNET_TESTBED_host_get_id_ (host));
msg->ssh_port = htons (GNUNET_TESTBED_host_get_ssh_port_ (host));
- msg->user_name_length = htons (user_name_length);
if (NULL != username)
+ {
+ msg->user_name_length = htons (user_name_length - 1);
memcpy (&msg[1], username, user_name_length);
+ }
+ else
+ msg->user_name_length = htons (user_name_length);
strcpy (((void *) &msg[1]) + user_name_length, hostname);
GNUNET_TESTBED_queue_message_ (controller,
(struct GNUNET_MessageHeader *) msg);