diff options
author | Gabor X Toth <*@tg-x.net> | 2016-01-26 20:37:09 +0000 |
---|---|---|
committer | Gabor X Toth <*@tg-x.net> | 2016-01-26 20:37:09 +0000 |
commit | 0841876fb932574a6c9ebaf2adbb64f1ffc06899 (patch) | |
tree | 568f136b839efc1ee71099cbab57f84c2428aed5 /src/psycutil | |
parent | 0d2019bb407ef15f2376963b43169e145a338219 (diff) | |
download | gnunet-0841876fb932574a6c9ebaf2adbb64f1ffc06899.tar.gz gnunet-0841876fb932574a6c9ebaf2adbb64f1ffc06899.zip |
psycutil: slicer callback args
Diffstat (limited to 'src/psycutil')
-rw-r--r-- | src/psycutil/psyc_message.c | 4 | ||||
-rw-r--r-- | src/psycutil/psyc_slicer.c | 30 |
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 | |||
1181 | static void | 1181 | static void |
1182 | parse_message_part_cb (void *cls, | 1182 | parse_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 | { |