diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2013-09-02 10:01:01 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2013-09-02 10:01:01 +0000 |
commit | 719fb81dbaf034f624abaf6cc0a51c05446191f4 (patch) | |
tree | f31237c562e3e442ad20cd9c0308bcd13db7ae2f /src/testbed/testbed_api_barriers.c | |
parent | 6c684b3367b9f21ea46b0565b6e4aac8daf85f51 (diff) | |
download | gnunet-719fb81dbaf034f624abaf6cc0a51c05446191f4.tar.gz gnunet-719fb81dbaf034f624abaf6cc0a51c05446191f4.zip |
- more barrier stuff
Diffstat (limited to 'src/testbed/testbed_api_barriers.c')
-rw-r--r-- | src/testbed/testbed_api_barriers.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/testbed/testbed_api_barriers.c b/src/testbed/testbed_api_barriers.c index 231e00600..ab468a088 100644 --- a/src/testbed/testbed_api_barriers.c +++ b/src/testbed/testbed_api_barriers.c | |||
@@ -102,7 +102,7 @@ barrier_remove (struct GNUNET_TESTBED_Barrier *barrier) | |||
102 | */ | 102 | */ |
103 | int | 103 | int |
104 | GNUNET_TESTBED_handle_barrier_status_ (struct GNUNET_TESTBED_Controller *c, | 104 | GNUNET_TESTBED_handle_barrier_status_ (struct GNUNET_TESTBED_Controller *c, |
105 | const struct GNUNET_TESTBED_BarrierStatus | 105 | const struct GNUNET_TESTBED_BarrierStatusMsg |
106 | *msg) | 106 | *msg) |
107 | { | 107 | { |
108 | struct GNUNET_TESTBED_Barrier *barrier; | 108 | struct GNUNET_TESTBED_Barrier *barrier; |
@@ -119,17 +119,17 @@ GNUNET_TESTBED_handle_barrier_status_ (struct GNUNET_TESTBED_Controller *c, | |||
119 | msize = ntohs (msg->header.size); | 119 | msize = ntohs (msg->header.size); |
120 | name = msg->data; | 120 | name = msg->data; |
121 | name_len = ntohs (msg->name_len); | 121 | name_len = ntohs (msg->name_len); |
122 | if ( (sizeof (struct GNUNET_TESTBED_BarrierStatus) + name_len + 1 > msize) | 122 | if ( (sizeof (struct GNUNET_TESTBED_BarrierStatusMsg) + name_len + 1 > msize) |
123 | || ('\0' != name[name_len]) ) | 123 | || ('\0' != name[name_len]) ) |
124 | { | 124 | { |
125 | GNUNET_break_op (0); | 125 | GNUNET_break_op (0); |
126 | return GNUNET_SYSERR; | 126 | return GNUNET_SYSERR; |
127 | } | 127 | } |
128 | status = ntohs (msg->status); | 128 | status = ntohs (msg->status); |
129 | if (0 != status) | 129 | if (BARRIER_STATUS_ERROR == status) |
130 | { | 130 | { |
131 | status = -1; | 131 | status = -1; |
132 | emsg_len = msize - (sizeof (struct GNUNET_TESTBED_BarrierStatus) + name_len | 132 | emsg_len = msize - (sizeof (struct GNUNET_TESTBED_BarrierStatusMsg) + name_len |
133 | + 1); | 133 | + 1); |
134 | if (0 == emsg_len) | 134 | if (0 == emsg_len) |
135 | { | 135 | { |
@@ -150,6 +150,8 @@ GNUNET_TESTBED_handle_barrier_status_ (struct GNUNET_TESTBED_Controller *c, | |||
150 | goto cleanup; | 150 | goto cleanup; |
151 | GNUNET_assert (NULL != barrier->cb); | 151 | GNUNET_assert (NULL != barrier->cb); |
152 | barrier->cb (barrier->cls, name, barrier, status, emsg); | 152 | barrier->cb (barrier->cls, name, barrier, status, emsg); |
153 | if (BARRIER_STATUS_INITIALISED == status) | ||
154 | return GNUNET_OK; /* just initialised; skip cleanup */ | ||
153 | 155 | ||
154 | cleanup: | 156 | cleanup: |
155 | GNUNET_free_non_null (emsg); | 157 | GNUNET_free_non_null (emsg); |
@@ -219,3 +221,5 @@ GNUNET_TESTBED_barrier_cancel (struct GNUNET_TESTBED_Barrier *barrier) | |||
219 | { | 221 | { |
220 | barrier_remove (barrier); | 222 | barrier_remove (barrier); |
221 | } | 223 | } |
224 | |||
225 | /* end of testbed_api_barriers.c */ | ||