aboutsummaryrefslogtreecommitdiff
path: root/src/psycutil
diff options
context:
space:
mode:
authorGabor X Toth <*@tg-x.net>2016-01-26 20:37:09 +0000
committerGabor X Toth <*@tg-x.net>2016-01-26 20:37:09 +0000
commit0841876fb932574a6c9ebaf2adbb64f1ffc06899 (patch)
tree568f136b839efc1ee71099cbab57f84c2428aed5 /src/psycutil
parent0d2019bb407ef15f2376963b43169e145a338219 (diff)
downloadgnunet-0841876fb932574a6c9ebaf2adbb64f1ffc06899.tar.gz
gnunet-0841876fb932574a6c9ebaf2adbb64f1ffc06899.zip
psycutil: slicer callback args
Diffstat (limited to 'src/psycutil')
-rw-r--r--src/psycutil/psyc_message.c4
-rw-r--r--src/psycutil/psyc_slicer.c30
2 files changed, 26 insertions, 8 deletions
diff --git a/src/psycutil/psyc_message.c b/src/psycutil/psyc_message.c
index 62a5b8f14..f75a809ef 100644
--- a/src/psycutil/psyc_message.c
+++ b/src/psycutil/psyc_message.c
@@ -1101,7 +1101,7 @@ GNUNET_PSYC_receive_message (struct GNUNET_PSYC_ReceiveHandle *recv,
1101 if (NULL != recv->message_part_cb) 1101 if (NULL != recv->message_part_cb)
1102 recv->message_part_cb (recv->cb_cls, &recv->slave_pub_key, 1102 recv->message_part_cb (recv->cb_cls, &recv->slave_pub_key,
1103 recv->message_id, recv->flags, 1103 recv->message_id, recv->flags,
1104 0, // FIXME: data_offset 1104 GNUNET_ntohll (msg->fragment_offset),
1105 pmsg); 1105 pmsg);
1106 1106
1107 switch (ptype) 1107 switch (ptype)
@@ -1181,7 +1181,7 @@ struct ParseMessageClosure
1181static void 1181static void
1182parse_message_part_cb (void *cls, 1182parse_message_part_cb (void *cls,
1183 const struct GNUNET_CRYPTO_EcdsaPublicKey *slave_pub_key, 1183 const struct GNUNET_CRYPTO_EcdsaPublicKey *slave_pub_key,
1184 uint64_t message_id, uint32_t flags, uint64_t data_offset, 1184 uint64_t message_id, uint32_t flags, uint64_t fragment_offset,
1185 const struct GNUNET_MessageHeader *msg) 1185 const struct GNUNET_MessageHeader *msg)
1186{ 1186{
1187 struct ParseMessageClosure *pmc = cls; 1187 struct ParseMessageClosure *pmc = cls;
diff --git a/src/psycutil/psyc_slicer.c b/src/psycutil/psyc_slicer.c
index 7586b3970..735eb1511 100644
--- a/src/psycutil/psyc_slicer.c
+++ b/src/psycutil/psyc_slicer.c
@@ -65,6 +65,16 @@ struct GNUNET_PSYC_Slicer
65 uint64_t message_id; 65 uint64_t message_id;
66 66
67 /** 67 /**
68 * Fragment offset of currently being received message.
69 */
70 uint64_t fragment_offset;
71
72 /**
73 * Flags of currently being received message.
74 */
75 uint32_t flags;
76
77 /**
68 * Method name of currently being received message. 78 * Method name of currently being received message.
69 */ 79 */
70 char *method_name; 80 char *method_name;
@@ -174,6 +184,7 @@ slicer_method_handler_notify (void *cls, const struct GNUNET_HashCode *key,
174 struct GNUNET_PSYC_MessageMethod * 184 struct GNUNET_PSYC_MessageMethod *
175 meth = (struct GNUNET_PSYC_MessageMethod *) msg; 185 meth = (struct GNUNET_PSYC_MessageMethod *) msg;
176 cbs->method_cb (cbs->cls, meth, slicer->message_id, 186 cbs->method_cb (cbs->cls, meth, slicer->message_id,
187 slicer->flags, slicer->fragment_offset,
177 ntohl (meth->flags), 188 ntohl (meth->flags),
178 &slicer->nym_pub_key, 189 &slicer->nym_pub_key,
179 slicer->method_name); 190 slicer->method_name);
@@ -187,6 +198,7 @@ slicer_method_handler_notify (void *cls, const struct GNUNET_HashCode *key,
187 struct GNUNET_PSYC_MessageModifier * 198 struct GNUNET_PSYC_MessageModifier *
188 mod = (struct GNUNET_PSYC_MessageModifier *) msg; 199 mod = (struct GNUNET_PSYC_MessageModifier *) msg;
189 cbs->modifier_cb (cbs->cls, &mod->header, slicer->message_id, 200 cbs->modifier_cb (cbs->cls, &mod->header, slicer->message_id,
201 slicer->flags, slicer->fragment_offset,
190 mod->oper, (const char *) &mod[1], 202 mod->oper, (const char *) &mod[1],
191 (const void *) &mod[1] + ntohs (mod->name_size), 203 (const void *) &mod[1] + ntohs (mod->name_size),
192 ntohs (mod->header.size) - sizeof (*mod) - ntohs (mod->name_size), 204 ntohs (mod->header.size) - sizeof (*mod) - ntohs (mod->name_size),
@@ -199,6 +211,7 @@ slicer_method_handler_notify (void *cls, const struct GNUNET_HashCode *key,
199 if (NULL == cbs->modifier_cb) 211 if (NULL == cbs->modifier_cb)
200 break; 212 break;
201 cbs->modifier_cb (cbs->cls, msg, slicer->message_id, 213 cbs->modifier_cb (cbs->cls, msg, slicer->message_id,
214 slicer->flags, slicer->fragment_offset,
202 slicer->mod_oper, slicer->mod_name, &msg[1], 215 slicer->mod_oper, slicer->mod_name, &msg[1],
203 ntohs (msg->size) - sizeof (*msg), 216 ntohs (msg->size) - sizeof (*msg),
204 slicer->mod_full_value_size); 217 slicer->mod_full_value_size);
@@ -209,22 +222,24 @@ slicer_method_handler_notify (void *cls, const struct GNUNET_HashCode *key,
209 { 222 {
210 if (NULL == cbs->data_cb) 223 if (NULL == cbs->data_cb)
211 break; 224 break;
212 uint64_t data_offset = 0; // FIXME
213 cbs->data_cb (cbs->cls, msg, slicer->message_id, 225 cbs->data_cb (cbs->cls, msg, slicer->message_id,
214 data_offset, &msg[1], ntohs (msg->size) - sizeof (*msg)); 226 slicer->flags, slicer->fragment_offset,
227 &msg[1], ntohs (msg->size) - sizeof (*msg));
215 break; 228 break;
216 } 229 }
217 230
218 case GNUNET_MESSAGE_TYPE_PSYC_MESSAGE_END: 231 case GNUNET_MESSAGE_TYPE_PSYC_MESSAGE_END:
219 if (NULL == cbs->eom_cb) 232 if (NULL == cbs->eom_cb)
220 break; 233 break;
221 cbs->eom_cb (cbs->cls, msg, slicer->message_id, GNUNET_NO); 234 cbs->eom_cb (cbs->cls, msg, slicer->message_id,
235 slicer->flags, slicer->fragment_offset, GNUNET_NO);
222 break; 236 break;
223 237
224 case GNUNET_MESSAGE_TYPE_PSYC_MESSAGE_CANCEL: 238 case GNUNET_MESSAGE_TYPE_PSYC_MESSAGE_CANCEL:
225 if (NULL == cbs->eom_cb) 239 if (NULL == cbs->eom_cb)
226 break; 240 break;
227 cbs->eom_cb (cbs->cls, msg, slicer->message_id, GNUNET_YES); 241 cbs->eom_cb (cbs->cls, msg, slicer->message_id,
242 slicer->flags, slicer->fragment_offset, GNUNET_YES);
228 break; 243 break;
229 } 244 }
230 return GNUNET_YES; 245 return GNUNET_YES;
@@ -241,8 +256,9 @@ slicer_modifier_handler_notify (void *cls, const struct GNUNET_HashCode *key,
241 struct GNUNET_PSYC_Slicer *slicer = cls; 256 struct GNUNET_PSYC_Slicer *slicer = cls;
242 struct SlicerModifierCallbacks *cbs = value; 257 struct SlicerModifierCallbacks *cbs = value;
243 258
244 cbs->modifier_cb (cbs->cls, slicer->msg, slicer->message_id, slicer->mod_oper, 259 cbs->modifier_cb (cbs->cls, slicer->msg,
245 slicer->mod_name, slicer->mod_value, 260 slicer->message_id, slicer->flags, slicer->fragment_offset,
261 slicer->mod_oper, slicer->mod_name, slicer->mod_value,
246 slicer->mod_value_size, slicer->mod_full_value_size); 262 slicer->mod_value_size, slicer->mod_full_value_size);
247 return GNUNET_YES; 263 return GNUNET_YES;
248} 264}
@@ -296,6 +312,8 @@ GNUNET_PSYC_slicer_message_part (struct GNUNET_PSYC_Slicer *slicer,
296 slicer->method_name = GNUNET_malloc (slicer->method_name_size); 312 slicer->method_name = GNUNET_malloc (slicer->method_name_size);
297 memcpy (slicer->method_name, &meth[1], slicer->method_name_size); 313 memcpy (slicer->method_name, &meth[1], slicer->method_name_size);
298 slicer->message_id = message_id; 314 slicer->message_id = message_id;
315 slicer->flags = flags;
316 slicer->fragment_offset = fragment_offset;
299 } 317 }
300 else 318 else
301 { 319 {