aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/testbed_api_barriers.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2013-09-09 12:22:31 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2013-09-09 12:22:31 +0000
commitde547f838e21de9f847c0b357c41cbfa6ecbe967 (patch)
tree35da1aed63ed018249ec58941447bacd758adfff /src/testbed/testbed_api_barriers.c
parenta3efd7521e99175689c589a128240f2c84c55c45 (diff)
downloadgnunet-de547f838e21de9f847c0b357c41cbfa6ecbe967.tar.gz
gnunet-de547f838e21de9f847c0b357c41cbfa6ecbe967.zip
- barriers test case; more fixes
Diffstat (limited to 'src/testbed/testbed_api_barriers.c')
-rw-r--r--src/testbed/testbed_api_barriers.c38
1 files changed, 35 insertions, 3 deletions
diff --git a/src/testbed/testbed_api_barriers.c b/src/testbed/testbed_api_barriers.c
index dee6bd704..96fd3be66 100644
--- a/src/testbed/testbed_api_barriers.c
+++ b/src/testbed/testbed_api_barriers.c
@@ -29,6 +29,18 @@
29#include "testbed_api.h" 29#include "testbed_api.h"
30 30
31/** 31/**
32 * Logging shorthand
33 */
34#define LOG(type, ...) \
35 GNUNET_log_from (type, "testbed-api-barriers", __VA_ARGS__);
36
37/**
38 * Debug logging shorthand
39 */
40#define LOG_DEBUG(...) \
41 LOG (GNUNET_ERROR_TYPE_DEBUG, __VA_ARGS__);
42
43/**
32 * Handle for barrier 44 * Handle for barrier
33 */ 45 */
34struct GNUNET_TESTBED_Barrier 46struct GNUNET_TESTBED_Barrier
@@ -119,8 +131,13 @@ GNUNET_TESTBED_handle_barrier_status_ (struct GNUNET_TESTBED_Controller *c,
119 msize = ntohs (msg->header.size); 131 msize = ntohs (msg->header.size);
120 name = msg->data; 132 name = msg->data;
121 name_len = ntohs (msg->name_len); 133 name_len = ntohs (msg->name_len);
122 if ( (sizeof (struct GNUNET_TESTBED_BarrierStatusMsg) + name_len + 1 > msize) 134 LOG_DEBUG ("Received BARRIER_STATUS msg\n");
123 || ('\0' != name[name_len]) ) 135 if (sizeof (struct GNUNET_TESTBED_BarrierStatusMsg) + name_len + 1 > msize)
136 {
137 GNUNET_break_op (0);
138 return GNUNET_SYSERR;
139 }
140 if ('\0' != name[name_len])
124 { 141 {
125 GNUNET_break_op (0); 142 GNUNET_break_op (0);
126 return GNUNET_SYSERR; 143 return GNUNET_SYSERR;
@@ -143,11 +160,17 @@ GNUNET_TESTBED_handle_barrier_status_ (struct GNUNET_TESTBED_Controller *c,
143 (void) memcpy (emsg, msg->data + name_len + 1, emsg_len); 160 (void) memcpy (emsg, msg->data + name_len + 1, emsg_len);
144 } 161 }
145 if (NULL == barrier_map) 162 if (NULL == barrier_map)
163 {
164 GNUNET_break_op (0);
146 goto cleanup; 165 goto cleanup;
166 }
147 GNUNET_CRYPTO_hash (name, name_len, &key); 167 GNUNET_CRYPTO_hash (name, name_len, &key);
148 barrier = GNUNET_CONTAINER_multihashmap_get (barrier_map, &key); 168 barrier = GNUNET_CONTAINER_multihashmap_get (barrier_map, &key);
149 if (NULL == barrier) 169 if (NULL == barrier)
170 {
171 GNUNET_break_op (0);
150 goto cleanup; 172 goto cleanup;
173 }
151 GNUNET_assert (NULL != barrier->cb); 174 GNUNET_assert (NULL != barrier->cb);
152 barrier->cb (barrier->cls, name, barrier, status, emsg); 175 barrier->cb (barrier->cls, name, barrier, status, emsg);
153 if (BARRIER_STATUS_INITIALISED == status) 176 if (BARRIER_STATUS_INITIALISED == status)
@@ -200,6 +223,7 @@ GNUNET_TESTBED_barrier_init (struct GNUNET_TESTBED_Controller *controller,
200 GNUNET_break (0); 223 GNUNET_break (0);
201 return NULL; 224 return NULL;
202 } 225 }
226 LOG_DEBUG ("Initialising barrier `%s'\n", name);
203 barrier = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_Barrier)); 227 barrier = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_Barrier));
204 barrier->c = controller; 228 barrier->c = controller;
205 barrier->name = GNUNET_strdup (name); 229 barrier->name = GNUNET_strdup (name);
@@ -340,6 +364,8 @@ receive_handler (void *cls, const struct GNUNET_MessageHeader *message)
340 case BARRIER_STATUS_CROSSED: 364 case BARRIER_STATUS_CROSSED:
341 h->cb (h->cls, h->name, GNUNET_OK); 365 h->cb (h->cls, h->name, GNUNET_OK);
342 goto destroy; 366 goto destroy;
367 default:
368 GNUNET_break_op (0);
343 } 369 }
344 370
345 fail: 371 fail:
@@ -410,10 +436,15 @@ GNUNET_TESTBED_barrier_wait (const char *name,
410 GNUNET_assert (NULL != name); 436 GNUNET_assert (NULL != name);
411 cfg_filename = getenv (ENV_TESTBED_CONFIG); 437 cfg_filename = getenv (ENV_TESTBED_CONFIG);
412 if (NULL == cfg_filename) 438 if (NULL == cfg_filename)
439 {
440 LOG (GNUNET_ERROR_TYPE_ERROR, "Are you running under testbed?\n");
413 return NULL; 441 return NULL;
442 }
414 cfg = GNUNET_CONFIGURATION_create (); 443 cfg = GNUNET_CONFIGURATION_create ();
415 if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg, cfg_filename)); 444 if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg, cfg_filename))
416 { 445 {
446 LOG (GNUNET_ERROR_TYPE_ERROR, "Unable to load configuration from file `%s'\n",
447 cfg_filename);
417 GNUNET_CONFIGURATION_destroy (cfg); 448 GNUNET_CONFIGURATION_destroy (cfg);
418 return NULL; 449 return NULL;
419 } 450 }
@@ -425,6 +456,7 @@ GNUNET_TESTBED_barrier_wait (const char *name,
425 h->cls = cls; 456 h->cls = cls;
426 if (NULL == h->conn) 457 if (NULL == h->conn)
427 { 458 {
459 LOG (GNUNET_ERROR_TYPE_ERROR, "Unable to connect to local testbed-barrier service\n");
428 destroy_handle (h); 460 destroy_handle (h);
429 return NULL; 461 return NULL;
430 } 462 }