aboutsummaryrefslogtreecommitdiff
path: root/src/consensus/consensus_api.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-10-05 15:09:28 +0200
committerChristian Grothoff <christian@grothoff.org>2019-10-05 15:09:28 +0200
commitc4e9ba925ffd758aaa3feee2ccfc0b76f26fe207 (patch)
treecac3ce030d77b4cbe7c7dc62ed58cfe6d24f73e1 /src/consensus/consensus_api.c
parentfbb71d527c7d6babf269a8fefce1db291b9f7068 (diff)
downloadgnunet-c4e9ba925ffd758aaa3feee2ccfc0b76f26fe207.tar.gz
gnunet-c4e9ba925ffd758aaa3feee2ccfc0b76f26fe207.zip
global reindent, now with uncrustify hook enabled
Diffstat (limited to 'src/consensus/consensus_api.c')
-rw-r--r--src/consensus/consensus_api.c183
1 files changed, 93 insertions, 90 deletions
diff --git a/src/consensus/consensus_api.c b/src/consensus/consensus_api.c
index 2da145932..c4350adaf 100644
--- a/src/consensus/consensus_api.c
+++ b/src/consensus/consensus_api.c
@@ -31,13 +31,14 @@
31#include "consensus.h" 31#include "consensus.h"
32 32
33 33
34#define LOG(kind, ...) GNUNET_log_from(kind, "consensus-api", __VA_ARGS__) 34#define LOG(kind, ...) GNUNET_log_from (kind, "consensus-api", __VA_ARGS__)
35 35
36 36
37/** 37/**
38 * Handle for the service. 38 * Handle for the service.
39 */ 39 */
40struct GNUNET_CONSENSUS_Handle { 40struct GNUNET_CONSENSUS_Handle
41{
41 /** 42 /**
42 * Configuration to use. 43 * Configuration to use.
43 */ 44 */
@@ -89,7 +90,8 @@ struct GNUNET_CONSENSUS_Handle {
89 * FIXME: this should not bee necessary when the API 90 * FIXME: this should not bee necessary when the API
90 * issue has been fixed 91 * issue has been fixed
91 */ 92 */
92struct InsertDoneInfo { 93struct InsertDoneInfo
94{
93 GNUNET_CONSENSUS_InsertDoneCallback idc; 95 GNUNET_CONSENSUS_InsertDoneCallback idc;
94 void *cls; 96 void *cls;
95}; 97};
@@ -102,8 +104,8 @@ struct InsertDoneInfo {
102 * @param msg element message 104 * @param msg element message
103 */ 105 */
104static int 106static int
105check_new_element(void *cls, 107check_new_element (void *cls,
106 const struct GNUNET_CONSENSUS_ElementMessage *msg) 108 const struct GNUNET_CONSENSUS_ElementMessage *msg)
107{ 109{
108 /* any size is fine, elements are variable-size */ 110 /* any size is fine, elements are variable-size */
109 return GNUNET_OK; 111 return GNUNET_OK;
@@ -117,19 +119,20 @@ check_new_element(void *cls,
117 * @param msg element message 119 * @param msg element message
118 */ 120 */
119static void 121static void
120handle_new_element(void *cls, 122handle_new_element (void *cls,
121 const struct GNUNET_CONSENSUS_ElementMessage *msg) 123 const struct GNUNET_CONSENSUS_ElementMessage *msg)
122{ 124{
123 struct GNUNET_CONSENSUS_Handle *consensus = cls; 125 struct GNUNET_CONSENSUS_Handle *consensus = cls;
124 struct GNUNET_SET_Element element; 126 struct GNUNET_SET_Element element;
125 127
126 LOG(GNUNET_ERROR_TYPE_DEBUG, 128 LOG (GNUNET_ERROR_TYPE_DEBUG,
127 "received new element\n"); 129 "received new element\n");
128 element.element_type = msg->element_type; 130 element.element_type = msg->element_type;
129 element.size = ntohs(msg->header.size) - sizeof(struct GNUNET_CONSENSUS_ElementMessage); 131 element.size = ntohs (msg->header.size) - sizeof(struct
132 GNUNET_CONSENSUS_ElementMessage);
130 element.data = &msg[1]; 133 element.data = &msg[1];
131 consensus->new_element_cb(consensus->new_element_cls, 134 consensus->new_element_cb (consensus->new_element_cls,
132 &element); 135 &element);
133} 136}
134 137
135 138
@@ -141,17 +144,17 @@ handle_new_element(void *cls,
141 * @param msg conclude done message 144 * @param msg conclude done message
142 */ 145 */
143static void 146static void
144handle_conclude_done(void *cls, 147handle_conclude_done (void *cls,
145 const struct GNUNET_MessageHeader *msg) 148 const struct GNUNET_MessageHeader *msg)
146{ 149{
147 struct GNUNET_CONSENSUS_Handle *consensus = cls; 150 struct GNUNET_CONSENSUS_Handle *consensus = cls;
148 GNUNET_CONSENSUS_ConcludeCallback cc; 151 GNUNET_CONSENSUS_ConcludeCallback cc;
149 152
150 GNUNET_MQ_destroy(consensus->mq); 153 GNUNET_MQ_destroy (consensus->mq);
151 consensus->mq = NULL; 154 consensus->mq = NULL;
152 GNUNET_assert(NULL != (cc = consensus->conclude_cb)); 155 GNUNET_assert (NULL != (cc = consensus->conclude_cb));
153 consensus->conclude_cb = NULL; 156 consensus->conclude_cb = NULL;
154 cc(consensus->conclude_cls); 157 cc (consensus->conclude_cls);
155} 158}
156 159
157 160
@@ -165,11 +168,11 @@ handle_conclude_done(void *cls,
165 * @param error error code 168 * @param error error code
166 */ 169 */
167static void 170static void
168mq_error_handler(void *cls, 171mq_error_handler (void *cls,
169 enum GNUNET_MQ_Error error) 172 enum GNUNET_MQ_Error error)
170{ 173{
171 LOG(GNUNET_ERROR_TYPE_WARNING, 174 LOG (GNUNET_ERROR_TYPE_WARNING,
172 "consensus service disconnected us\n"); 175 "consensus service disconnected us\n");
173} 176}
174 177
175 178
@@ -191,27 +194,27 @@ mq_error_handler(void *cls,
191 * @return handle to use, NULL on error 194 * @return handle to use, NULL on error
192 */ 195 */
193struct GNUNET_CONSENSUS_Handle * 196struct GNUNET_CONSENSUS_Handle *
194GNUNET_CONSENSUS_create(const struct GNUNET_CONFIGURATION_Handle *cfg, 197GNUNET_CONSENSUS_create (const struct GNUNET_CONFIGURATION_Handle *cfg,
195 unsigned int num_peers, 198 unsigned int num_peers,
196 const struct GNUNET_PeerIdentity *peers, 199 const struct GNUNET_PeerIdentity *peers,
197 const struct GNUNET_HashCode *session_id, 200 const struct GNUNET_HashCode *session_id,
198 struct GNUNET_TIME_Absolute start, 201 struct GNUNET_TIME_Absolute start,
199 struct GNUNET_TIME_Absolute deadline, 202 struct GNUNET_TIME_Absolute deadline,
200 GNUNET_CONSENSUS_ElementCallback new_element_cb, 203 GNUNET_CONSENSUS_ElementCallback new_element_cb,
201 void *new_element_cls) 204 void *new_element_cls)
202{ 205{
203 struct GNUNET_CONSENSUS_Handle *consensus 206 struct GNUNET_CONSENSUS_Handle *consensus
204 = GNUNET_new(struct GNUNET_CONSENSUS_Handle); 207 = GNUNET_new (struct GNUNET_CONSENSUS_Handle);
205 struct GNUNET_MQ_MessageHandler mq_handlers[] = { 208 struct GNUNET_MQ_MessageHandler mq_handlers[] = {
206 GNUNET_MQ_hd_var_size(new_element, 209 GNUNET_MQ_hd_var_size (new_element,
207 GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_RECEIVED_ELEMENT, 210 GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_RECEIVED_ELEMENT,
208 struct GNUNET_CONSENSUS_ElementMessage, 211 struct GNUNET_CONSENSUS_ElementMessage,
209 consensus), 212 consensus),
210 GNUNET_MQ_hd_fixed_size(conclude_done, 213 GNUNET_MQ_hd_fixed_size (conclude_done,
211 GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE_DONE, 214 GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE_DONE,
212 struct GNUNET_MessageHeader, 215 struct GNUNET_MessageHeader,
213 consensus), 216 consensus),
214 GNUNET_MQ_handler_end() 217 GNUNET_MQ_handler_end ()
215 }; 218 };
216 struct GNUNET_CONSENSUS_JoinMessage *join_msg; 219 struct GNUNET_CONSENSUS_JoinMessage *join_msg;
217 struct GNUNET_MQ_Envelope *ev; 220 struct GNUNET_MQ_Envelope *ev;
@@ -220,40 +223,40 @@ GNUNET_CONSENSUS_create(const struct GNUNET_CONFIGURATION_Handle *cfg,
220 consensus->new_element_cb = new_element_cb; 223 consensus->new_element_cb = new_element_cb;
221 consensus->new_element_cls = new_element_cls; 224 consensus->new_element_cls = new_element_cls;
222 consensus->session_id = *session_id; 225 consensus->session_id = *session_id;
223 consensus->mq = GNUNET_CLIENT_connect(cfg, 226 consensus->mq = GNUNET_CLIENT_connect (cfg,
224 "consensus", 227 "consensus",
225 mq_handlers, 228 mq_handlers,
226 &mq_error_handler, 229 &mq_error_handler,
227 consensus); 230 consensus);
228 if (NULL == consensus->mq) 231 if (NULL == consensus->mq)
229 { 232 {
230 GNUNET_free(consensus); 233 GNUNET_free (consensus);
231 return NULL; 234 return NULL;
232 } 235 }
233 ev = GNUNET_MQ_msg_extra(join_msg, 236 ev = GNUNET_MQ_msg_extra (join_msg,
234 (num_peers * sizeof(struct GNUNET_PeerIdentity)), 237 (num_peers * sizeof(struct GNUNET_PeerIdentity)),
235 GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_JOIN); 238 GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_JOIN);
236 239
237 join_msg->session_id = consensus->session_id; 240 join_msg->session_id = consensus->session_id;
238 join_msg->start = GNUNET_TIME_absolute_hton(start); 241 join_msg->start = GNUNET_TIME_absolute_hton (start);
239 join_msg->deadline = GNUNET_TIME_absolute_hton(deadline); 242 join_msg->deadline = GNUNET_TIME_absolute_hton (deadline);
240 join_msg->num_peers = htonl(num_peers); 243 join_msg->num_peers = htonl (num_peers);
241 GNUNET_memcpy(&join_msg[1], 244 GNUNET_memcpy (&join_msg[1],
242 peers, 245 peers,
243 num_peers * sizeof(struct GNUNET_PeerIdentity)); 246 num_peers * sizeof(struct GNUNET_PeerIdentity));
244 247
245 GNUNET_MQ_send(consensus->mq, ev); 248 GNUNET_MQ_send (consensus->mq, ev);
246 return consensus; 249 return consensus;
247} 250}
248 251
249 252
250static void 253static void
251idc_adapter(void *cls) 254idc_adapter (void *cls)
252{ 255{
253 struct InsertDoneInfo *i = cls; 256 struct InsertDoneInfo *i = cls;
254 257
255 i->idc(i->cls, GNUNET_OK); 258 i->idc (i->cls, GNUNET_OK);
256 GNUNET_free(i); 259 GNUNET_free (i);
257} 260}
258 261
259/** 262/**
@@ -267,30 +270,30 @@ idc_adapter(void *cls)
267 * @param idc_cls closure for 'idc' 270 * @param idc_cls closure for 'idc'
268 */ 271 */
269void 272void
270GNUNET_CONSENSUS_insert(struct GNUNET_CONSENSUS_Handle *consensus, 273GNUNET_CONSENSUS_insert (struct GNUNET_CONSENSUS_Handle *consensus,
271 const struct GNUNET_SET_Element *element, 274 const struct GNUNET_SET_Element *element,
272 GNUNET_CONSENSUS_InsertDoneCallback idc, 275 GNUNET_CONSENSUS_InsertDoneCallback idc,
273 void *idc_cls) 276 void *idc_cls)
274{ 277{
275 struct GNUNET_CONSENSUS_ElementMessage *element_msg; 278 struct GNUNET_CONSENSUS_ElementMessage *element_msg;
276 struct GNUNET_MQ_Envelope *ev; 279 struct GNUNET_MQ_Envelope *ev;
277 struct InsertDoneInfo *i; 280 struct InsertDoneInfo *i;
278 281
279 LOG(GNUNET_ERROR_TYPE_DEBUG, "inserting, size=%llu\n", element->size); 282 LOG (GNUNET_ERROR_TYPE_DEBUG, "inserting, size=%llu\n", element->size);
280 283
281 ev = GNUNET_MQ_msg_extra(element_msg, element->size, 284 ev = GNUNET_MQ_msg_extra (element_msg, element->size,
282 GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_INSERT); 285 GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_INSERT);
283 286
284 GNUNET_memcpy(&element_msg[1], element->data, element->size); 287 GNUNET_memcpy (&element_msg[1], element->data, element->size);
285 288
286 if (NULL != idc) 289 if (NULL != idc)
287 { 290 {
288 i = GNUNET_new(struct InsertDoneInfo); 291 i = GNUNET_new (struct InsertDoneInfo);
289 i->idc = idc; 292 i->idc = idc;
290 i->cls = idc_cls; 293 i->cls = idc_cls;
291 GNUNET_MQ_notify_sent(ev, idc_adapter, i); 294 GNUNET_MQ_notify_sent (ev, idc_adapter, i);
292 } 295 }
293 GNUNET_MQ_send(consensus->mq, ev); 296 GNUNET_MQ_send (consensus->mq, ev);
294} 297}
295 298
296 299
@@ -307,20 +310,20 @@ GNUNET_CONSENSUS_insert(struct GNUNET_CONSENSUS_Handle *consensus,
307 * @param conclude_cls closure for the conclude callback 310 * @param conclude_cls closure for the conclude callback
308 */ 311 */
309void 312void
310GNUNET_CONSENSUS_conclude(struct GNUNET_CONSENSUS_Handle *consensus, 313GNUNET_CONSENSUS_conclude (struct GNUNET_CONSENSUS_Handle *consensus,
311 GNUNET_CONSENSUS_ConcludeCallback conclude, 314 GNUNET_CONSENSUS_ConcludeCallback conclude,
312 void *conclude_cls) 315 void *conclude_cls)
313{ 316{
314 struct GNUNET_MQ_Envelope *ev; 317 struct GNUNET_MQ_Envelope *ev;
315 318
316 GNUNET_assert(NULL != conclude); 319 GNUNET_assert (NULL != conclude);
317 GNUNET_assert(NULL == consensus->conclude_cb); 320 GNUNET_assert (NULL == consensus->conclude_cb);
318 321
319 consensus->conclude_cls = conclude_cls; 322 consensus->conclude_cls = conclude_cls;
320 consensus->conclude_cb = conclude; 323 consensus->conclude_cb = conclude;
321 324
322 ev = GNUNET_MQ_msg_header(GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE); 325 ev = GNUNET_MQ_msg_header (GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE);
323 GNUNET_MQ_send(consensus->mq, ev); 326 GNUNET_MQ_send (consensus->mq, ev);
324} 327}
325 328
326 329
@@ -331,14 +334,14 @@ GNUNET_CONSENSUS_conclude(struct GNUNET_CONSENSUS_Handle *consensus,
331 * @param consensus handle to destroy 334 * @param consensus handle to destroy
332 */ 335 */
333void 336void
334GNUNET_CONSENSUS_destroy(struct GNUNET_CONSENSUS_Handle *consensus) 337GNUNET_CONSENSUS_destroy (struct GNUNET_CONSENSUS_Handle *consensus)
335{ 338{
336 if (NULL != consensus->mq) 339 if (NULL != consensus->mq)
337 { 340 {
338 GNUNET_MQ_destroy(consensus->mq); 341 GNUNET_MQ_destroy (consensus->mq);
339 consensus->mq = NULL; 342 consensus->mq = NULL;
340 } 343 }
341 GNUNET_free(consensus); 344 GNUNET_free (consensus);
342} 345}
343 346
344/* end of consensus_api.c */ 347/* end of consensus_api.c */