On 10/16/19 6:47 PM, Alessio Vanni wrote: > I have a client which can send arbitrary data to a service. This data > can be of any size and in particular I expect it to generally be larger > than `GNUNET_MAX_MESSAGE_SIZE'. The service can also do something > similar over CADET (sending large data to another peer), under different > circumstances.
Hint: GNUNET_MAX_MESSAGE_SIZE is the maximum message size for the MQ-API ever, but individual services may even impose lower limits. Still, that's not the issue here ;-). > I tried segmenting the message in a fairly simple way, but the service > seems to receive only the very first segment and I can't tell what the > problem is. Is it because the service does not call > `GNUNET_SERVICE_client_continue' fast enough? Segmenting is the right answer. As for 'fast enough', there is usually no requirement on how fast you call those APIs. However, for a CADET channel, the receiver must call "GNUNET_CADET_receive_done" after each message. Until you call that function, you won't get another one. So the most likely problem is that you failed to call this function after receiving the first segment. > I can only think of that > as the possible culprit. I haven't checked what happens over CADET yet. > > What could be the real problem and how can I send large data properly? Segmentation is the answer. I hope this helps! Happy hacking! Christian
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Help-gnunet mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-gnunet
