aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/transport/gnunet-service-tng.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/transport/gnunet-service-tng.c b/src/transport/gnunet-service-tng.c
index 76d5265a8..6c3373013 100644
--- a/src/transport/gnunet-service-tng.c
+++ b/src/transport/gnunet-service-tng.c
@@ -844,6 +844,11 @@ struct PendingMessage
844 struct GNUNET_ShortHashCode msg_uuid; 844 struct GNUNET_ShortHashCode msg_uuid;
845 845
846 /** 846 /**
847 * Message ID used for this message with the queue used for transmission.
848 */
849 uint64_t mid;
850
851 /**
847 * Counter incremented per generated fragment. 852 * Counter incremented per generated fragment.
848 */ 853 */
849 uint32_t frag_uuidgen; 854 uint32_t frag_uuidgen;
@@ -2315,6 +2320,8 @@ transmit_on_queue (void *cls)
2315 struct PendingMessage *pm; 2320 struct PendingMessage *pm;
2316 struct PendingMessage *s; 2321 struct PendingMessage *s;
2317 uint32_t overhead; 2322 uint32_t overhead;
2323 struct GNUNET_TRANSPORT_SendMessageTo *smt;
2324 struct GNUNET_MQ_Envelope *env;
2318 2325
2319 queue->transmit_task = NULL; 2326 queue->transmit_task = NULL;
2320 if (NULL == (pm = n->pending_msg_head)) 2327 if (NULL == (pm = n->pending_msg_head))
@@ -2331,12 +2338,13 @@ transmit_on_queue (void *cls)
2331 s = pm; 2338 s = pm;
2332 if ( ( (0 != queue->mtu) && 2339 if ( ( (0 != queue->mtu) &&
2333 (pm->bytes_msg + overhead > queue->mtu) ) || 2340 (pm->bytes_msg + overhead > queue->mtu) ) ||
2341 (pm->bytes_msg > UINT16_MAX - sizeof (struct GNUNET_TRANSPORT_SendMessageTo)) ||
2334 (NULL != pm->head_frag /* fragments already exist, should 2342 (NULL != pm->head_frag /* fragments already exist, should
2335 respect that even if MTU is 0 for 2343 respect that even if MTU is 0 for
2336 this queue */) ) 2344 this queue */) )
2337 s = fragment_message (s, 2345 s = fragment_message (s,
2338 (0 == queue->mtu) 2346 (0 == queue->mtu)
2339 ? UINT16_MAX /* no real maximum */ 2347 ? UINT16_MAX - sizeof (struct GNUNET_TRANSPORT_SendMessageTo)
2340 : queue->mtu); 2348 : queue->mtu);
2341 if (NULL == s) 2349 if (NULL == s)
2342 { 2350 {
@@ -2352,6 +2360,17 @@ transmit_on_queue (void *cls)
2352 schedule_transmit_on_queue (queue); 2360 schedule_transmit_on_queue (queue);
2353 return; 2361 return;
2354 } 2362 }
2363
2364 // pm->mid = queue->mid_gen++;
2365 env = GNUNET_MQ_msg_extra (smt,
2366 s->bytes_msg,
2367 GNUNET_MESSAGE_TYPE_TRANSPORT_SEND_MSG);
2368 smt->qid = queue->qid;
2369 // smt->mid = pm->mid;
2370 // smt->receiver = pid;
2371 memcpy (&smt[1],
2372 &s[1],
2373 s->bytes_msg);
2355 2374
2356 // FIXME: actually give 's' to communicator for transmission here! 2375 // FIXME: actually give 's' to communicator for transmission here!
2357 2376