diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2013-09-09 12:22:31 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2013-09-09 12:22:31 +0000 |
commit | de547f838e21de9f847c0b357c41cbfa6ecbe967 (patch) | |
tree | 35da1aed63ed018249ec58941447bacd758adfff /src/testbed/testbed_api_barriers.c | |
parent | a3efd7521e99175689c589a128240f2c84c55c45 (diff) | |
download | gnunet-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.c | 38 |
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 | */ |
34 | struct GNUNET_TESTBED_Barrier | 46 | struct 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 | } |