aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2012-07-25 15:31:07 +0000
committerBart Polot <bart@net.in.tum.de>2012-07-25 15:31:07 +0000
commita79ea321245662f933dc8f9208b26d85d79cbe6c (patch)
tree29484dd39a7d9358884ea86f2fe7e50a6af6173a /src
parent5d2e17869e4d989465d1d3f4c0717745466b52a2 (diff)
downloadgnunet-a79ea321245662f933dc8f9208b26d85d79cbe6c.tar.gz
gnunet-a79ea321245662f933dc8f9208b26d85d79cbe6c.zip
Eliminate mesh priority option
Diffstat (limited to 'src')
-rw-r--r--src/dns/gnunet-service-dns.c2
-rw-r--r--src/exit/gnunet-daemon-exit.c5
-rw-r--r--src/include/gnunet_mesh_service.h4
-rw-r--r--src/mesh/mesh_api.c83
-rw-r--r--src/pt/gnunet-daemon-pt.c6
-rw-r--r--src/stream/stream_api.c12
-rw-r--r--src/vpn/gnunet-service-vpn.c2
7 files changed, 36 insertions, 78 deletions
diff --git a/src/dns/gnunet-service-dns.c b/src/dns/gnunet-service-dns.c
index 10fc00282..76ea1390f 100644
--- a/src/dns/gnunet-service-dns.c
+++ b/src/dns/gnunet-service-dns.c
@@ -1027,7 +1027,7 @@ do_dns_read (struct GNUNET_NETWORK_Handle *dnsout)
1027 if (ts->th != NULL) 1027 if (ts->th != NULL)
1028 GNUNET_MESH_notify_transmit_ready_cancel (ts->th); 1028 GNUNET_MESH_notify_transmit_ready_cancel (ts->th);
1029 ts->th = GNUNET_MESH_notify_transmit_ready (ts->tunnel, 1029 ts->th = GNUNET_MESH_notify_transmit_ready (ts->tunnel,
1030 GNUNET_NO, 0, 1030 GNUNET_NO,
1031 GNUNET_TIME_UNIT_FOREVER_REL, 1031 GNUNET_TIME_UNIT_FOREVER_REL,
1032 NULL, 1032 NULL,
1033 sizeof (struct GNUNET_MessageHeader) + r, 1033 sizeof (struct GNUNET_MessageHeader) + r,
diff --git a/src/exit/gnunet-daemon-exit.c b/src/exit/gnunet-daemon-exit.c
index 337fca481..4f583c5bd 100644
--- a/src/exit/gnunet-daemon-exit.c
+++ b/src/exit/gnunet-daemon-exit.c
@@ -535,7 +535,6 @@ send_to_peer_notify_callback (void *cls, size_t size, void *buf)
535 { 535 {
536 s->th = GNUNET_MESH_notify_transmit_ready (tunnel, 536 s->th = GNUNET_MESH_notify_transmit_ready (tunnel,
537 GNUNET_NO /* corking */, 537 GNUNET_NO /* corking */,
538 0 /* priority */,
539 GNUNET_TIME_UNIT_FOREVER_REL, 538 GNUNET_TIME_UNIT_FOREVER_REL,
540 NULL, 539 NULL,
541 tnq->len, 540 tnq->len,
@@ -553,7 +552,6 @@ send_to_peer_notify_callback (void *cls, size_t size, void *buf)
553 if (NULL != (tnq = s->head)) 552 if (NULL != (tnq = s->head))
554 s->th = GNUNET_MESH_notify_transmit_ready (tunnel, 553 s->th = GNUNET_MESH_notify_transmit_ready (tunnel,
555 GNUNET_NO /* corking */, 554 GNUNET_NO /* corking */,
556 0 /* priority */,
557 GNUNET_TIME_UNIT_FOREVER_REL, 555 GNUNET_TIME_UNIT_FOREVER_REL,
558 NULL, 556 NULL,
559 tnq->len, 557 tnq->len,
@@ -582,7 +580,8 @@ send_packet_to_mesh_tunnel (struct GNUNET_MESH_Tunnel *mesh_tunnel,
582 GNUNET_assert (NULL != s); 580 GNUNET_assert (NULL != s);
583 GNUNET_CONTAINER_DLL_insert_tail (s->head, s->tail, tnq); 581 GNUNET_CONTAINER_DLL_insert_tail (s->head, s->tail, tnq);
584 if (NULL == s->th) 582 if (NULL == s->th)
585 s->th = GNUNET_MESH_notify_transmit_ready (mesh_tunnel, GNUNET_NO /* cork */, 0 /* priority */, 583 s->th = GNUNET_MESH_notify_transmit_ready (mesh_tunnel,
584 GNUNET_NO /* cork */,
586 GNUNET_TIME_UNIT_FOREVER_REL, 585 GNUNET_TIME_UNIT_FOREVER_REL,
587 NULL, tnq->len, 586 NULL, tnq->len,
588 &send_to_peer_notify_callback, 587 &send_to_peer_notify_callback,
diff --git a/src/include/gnunet_mesh_service.h b/src/include/gnunet_mesh_service.h
index 044fe1cee..b674e5d76 100644
--- a/src/include/gnunet_mesh_service.h
+++ b/src/include/gnunet_mesh_service.h
@@ -377,10 +377,11 @@ struct GNUNET_MESH_TransmitHandle;
377/** 377/**
378 * Ask the mesh to call "notify" once it is ready to transmit the 378 * Ask the mesh to call "notify" once it is ready to transmit the
379 * given number of bytes to the specified tunnel or target. 379 * given number of bytes to the specified tunnel or target.
380 * Only one call can be active at any time, to issue another request,
381 * wait for the callback or cancel the current request.
380 * 382 *
381 * @param tunnel tunnel to use for transmission 383 * @param tunnel tunnel to use for transmission
382 * @param cork is corking allowed for this transmission? 384 * @param cork is corking allowed for this transmission?
383 * @param priority how important is the message?
384 * @param maxdelay how long can the message wait? 385 * @param maxdelay how long can the message wait?
385 * @param target destination for the message 386 * @param target destination for the message
386 * NULL for multicast to all tunnel targets 387 * NULL for multicast to all tunnel targets
@@ -396,7 +397,6 @@ struct GNUNET_MESH_TransmitHandle;
396 */ 397 */
397struct GNUNET_MESH_TransmitHandle * 398struct GNUNET_MESH_TransmitHandle *
398GNUNET_MESH_notify_transmit_ready (struct GNUNET_MESH_Tunnel *tunnel, int cork, 399GNUNET_MESH_notify_transmit_ready (struct GNUNET_MESH_Tunnel *tunnel, int cork,
399 uint32_t priority,
400 struct GNUNET_TIME_Relative maxdelay, 400 struct GNUNET_TIME_Relative maxdelay,
401 const struct GNUNET_PeerIdentity *target, 401 const struct GNUNET_PeerIdentity *target,
402 size_t notify_size, 402 size_t notify_size,
diff --git a/src/mesh/mesh_api.c b/src/mesh/mesh_api.c
index f02c17a2a..8117b9354 100644
--- a/src/mesh/mesh_api.c
+++ b/src/mesh/mesh_api.c
@@ -103,12 +103,6 @@ struct GNUNET_MESH_TransmitHandle
103 GNUNET_SCHEDULER_TaskIdentifier timeout_task; 103 GNUNET_SCHEDULER_TaskIdentifier timeout_task;
104 104
105 /** 105 /**
106 * Priority of the message. The queue is sorted by priority,
107 * control messages have the maximum priority (UINT32_MAX).
108 */
109 uint32_t priority;
110
111 /**
112 * Target of the message, 0 for multicast. This field 106 * Target of the message, 0 for multicast. This field
113 * is only valid if 'notify' is non-NULL. 107 * is only valid if 'notify' is non-NULL.
114 */ 108 */
@@ -146,9 +140,13 @@ struct GNUNET_MESH_Handle
146 const GNUNET_MESH_ApplicationType *applications; 140 const GNUNET_MESH_ApplicationType *applications;
147 141
148 /** 142 /**
149 * Double linked list of the tunnels this client is connected to. 143 * Double linked list of the tunnels this client is connected to, head.
150 */ 144 */
151 struct GNUNET_MESH_Tunnel *tunnels_head; 145 struct GNUNET_MESH_Tunnel *tunnels_head;
146
147 /**
148 * Double linked list of the tunnels this client is connected to, tail.
149 */
152 struct GNUNET_MESH_Tunnel *tunnels_tail; 150 struct GNUNET_MESH_Tunnel *tunnels_tail;
153 151
154 /** 152 /**
@@ -172,18 +170,29 @@ struct GNUNET_MESH_Handle
172 void *cls; 170 void *cls;
173 171
174 /** 172 /**
175 * Messages to send to the service 173 * Messages to send to the service, head.
176 */ 174 */
177 struct GNUNET_MESH_TransmitHandle *th_head; 175 struct GNUNET_MESH_TransmitHandle *th_head;
176
177 /**
178 * Messages to send to the service, tail.
179 */
178 struct GNUNET_MESH_TransmitHandle *th_tail; 180 struct GNUNET_MESH_TransmitHandle *th_tail;
179 181
180 /** 182 /**
181 * tid of the next tunnel to create (to avoid reusing IDs often) 183 * tid of the next tunnel to create (to avoid reusing IDs often)
182 */ 184 */
183 MESH_TunnelNumber next_tid; 185 MESH_TunnelNumber next_tid;
186
187 /**
188 * Number of handlers in the handlers array.
189 */
184 unsigned int n_handlers; 190 unsigned int n_handlers;
191
192 /**
193 * Number of applications in the applications array.
194 */
185 unsigned int n_applications; 195 unsigned int n_applications;
186 unsigned int max_queue_size;
187 196
188 /** 197 /**
189 * Have we started the task to receive messages from the service 198 * Have we started the task to receive messages from the service
@@ -191,11 +200,6 @@ struct GNUNET_MESH_Handle
191 */ 200 */
192 int in_receive; 201 int in_receive;
193 202
194 /**
195 * Number of packets queued
196 */
197 unsigned int npackets;
198
199 /** 203 /**
200 * Configuration given by the client, in case of reconnection 204 * Configuration given by the client, in case of reconnection
201 */ 205 */
@@ -587,7 +591,7 @@ add_to_queue (struct GNUNET_MESH_Handle *h,
587 struct GNUNET_MESH_TransmitHandle *p; 591 struct GNUNET_MESH_TransmitHandle *p;
588 592
589 p = h->th_head; 593 p = h->th_head;
590 while ((NULL != p) && (th->priority <= p->priority)) 594 while ((NULL != p))
591 p = p->next; 595 p = p->next;
592 if (NULL == p) 596 if (NULL == p)
593 p = h->th_tail; 597 p = h->th_tail;
@@ -1253,7 +1257,6 @@ send_callback (void *cls, size_t size, void *buf)
1253 GNUNET_SCHEDULER_cancel (th->timeout_task); 1257 GNUNET_SCHEDULER_cancel (th->timeout_task);
1254 if (NULL != th->notify) 1258 if (NULL != th->notify)
1255 { 1259 {
1256 th->tunnel->mesh->npackets--;
1257 th->tunnel->npackets--; 1260 th->tunnel->npackets--;
1258 } 1261 }
1259 GNUNET_CONTAINER_DLL_remove (h->th_head, h->th_tail, th); 1262 GNUNET_CONTAINER_DLL_remove (h->th_head, h->th_tail, th);
@@ -1302,7 +1305,6 @@ send_packet (struct GNUNET_MESH_Handle *h,
1302 1305
1303 msize = ntohs (msg->size); 1306 msize = ntohs (msg->size);
1304 th = GNUNET_malloc (sizeof (struct GNUNET_MESH_TransmitHandle) + msize); 1307 th = GNUNET_malloc (sizeof (struct GNUNET_MESH_TransmitHandle) + msize);
1305 th->priority = UINT32_MAX;
1306 th->timeout = GNUNET_TIME_UNIT_FOREVER_ABS; 1308 th->timeout = GNUNET_TIME_UNIT_FOREVER_ABS;
1307 th->size = msize; 1309 th->size = msize;
1308 th->tunnel = tunnel; 1310 th->tunnel = tunnel;
@@ -1413,7 +1415,6 @@ GNUNET_MESH_disconnect (struct GNUNET_MESH_Handle *handle)
1413 /* Make sure it is an allowed packet (everything else should have been 1415 /* Make sure it is an allowed packet (everything else should have been
1414 * already canceled). 1416 * already canceled).
1415 */ 1417 */
1416 GNUNET_break (UINT32_MAX == th->priority);
1417 GNUNET_break (NULL == th->notify); 1418 GNUNET_break (NULL == th->notify);
1418 msg = (struct GNUNET_MessageHeader *) &th[1]; 1419 msg = (struct GNUNET_MessageHeader *) &th[1];
1419 switch (ntohs(msg->type)) 1420 switch (ntohs(msg->type))
@@ -1825,15 +1826,14 @@ GNUNET_MESH_peer_unblacklist (struct GNUNET_MESH_Tunnel *tunnel,
1825 1826
1826/** 1827/**
1827 * Ask the mesh to call "notify" once it is ready to transmit the 1828 * Ask the mesh to call "notify" once it is ready to transmit the
1828 * given number of bytes to the specified "target". If we are not yet 1829 * given number of bytes to the specified tunnel or target.
1829 * connected to the specified peer, a call to this function will cause 1830 * Only one call can be active at any time, to issue another request,
1830 * us to try to establish a connection. 1831 * wait for the callback or cancel the current request.
1831 * 1832 *
1832 * @param tunnel tunnel to use for transmission 1833 * @param tunnel tunnel to use for transmission
1833 * @param cork is corking allowed for this transmission? 1834 * @param cork is corking allowed for this transmission?
1834 * @param priority how important is the message?
1835 * @param maxdelay how long can the message wait? 1835 * @param maxdelay how long can the message wait?
1836 * @param target destination for the message, 1836 * @param target destination for the message
1837 * NULL for multicast to all tunnel targets 1837 * NULL for multicast to all tunnel targets
1838 * @param notify_size how many bytes of buffer space does notify want? 1838 * @param notify_size how many bytes of buffer space does notify want?
1839 * @param notify function to call when buffer space is available; 1839 * @param notify function to call when buffer space is available;
@@ -1847,7 +1847,6 @@ GNUNET_MESH_peer_unblacklist (struct GNUNET_MESH_Tunnel *tunnel,
1847 */ 1847 */
1848struct GNUNET_MESH_TransmitHandle * 1848struct GNUNET_MESH_TransmitHandle *
1849GNUNET_MESH_notify_transmit_ready (struct GNUNET_MESH_Tunnel *tunnel, int cork, 1849GNUNET_MESH_notify_transmit_ready (struct GNUNET_MESH_Tunnel *tunnel, int cork,
1850 uint32_t priority,
1851 struct GNUNET_TIME_Relative maxdelay, 1850 struct GNUNET_TIME_Relative maxdelay,
1852 const struct GNUNET_PeerIdentity *target, 1851 const struct GNUNET_PeerIdentity *target,
1853 size_t notify_size, 1852 size_t notify_size,
@@ -1855,8 +1854,6 @@ GNUNET_MESH_notify_transmit_ready (struct GNUNET_MESH_Tunnel *tunnel, int cork,
1855 void *notify_cls) 1854 void *notify_cls)
1856{ 1855{
1857 struct GNUNET_MESH_TransmitHandle *th; 1856 struct GNUNET_MESH_TransmitHandle *th;
1858 struct GNUNET_MESH_TransmitHandle *least_priority_th;
1859 uint32_t least_priority;
1860 size_t overhead; 1857 size_t overhead;
1861 1858
1862 GNUNET_assert (NULL != tunnel); 1859 GNUNET_assert (NULL != tunnel);
@@ -1866,42 +1863,10 @@ GNUNET_MESH_notify_transmit_ready (struct GNUNET_MESH_Tunnel *tunnel, int cork,
1866 else 1863 else
1867 LOG (GNUNET_ERROR_TYPE_DEBUG, " target multicast\n"); 1864 LOG (GNUNET_ERROR_TYPE_DEBUG, " target multicast\n");
1868 GNUNET_assert (NULL != notify); 1865 GNUNET_assert (NULL != notify);
1869 if (tunnel->mesh->npackets >= tunnel->mesh->max_queue_size && 1866 GNUNET_assert (0 == tunnel->npackets);
1870 tunnel->npackets > 0)
1871 {
1872 /* queue full */
1873 if (0 == priority)
1874 return NULL;
1875 th = tunnel->mesh->th_tail;
1876 least_priority = priority;
1877 least_priority_th = NULL;
1878 while (NULL != th)
1879 {
1880 if (th->priority < least_priority && th->tunnel->npackets > 1)
1881 {
1882 least_priority_th = th;
1883 least_priority = th->priority;
1884 }
1885 th = th->prev;
1886 }
1887 if (NULL == least_priority_th)
1888 return NULL;
1889 /* Can't be a control message */
1890 GNUNET_assert (NULL != least_priority_th->notify);
1891 least_priority_th->notify (notify_cls, 0, NULL);
1892 least_priority_th->tunnel->npackets--;
1893 tunnel->mesh->npackets--;
1894 GNUNET_CONTAINER_DLL_remove (tunnel->mesh->th_head, tunnel->mesh->th_tail,
1895 least_priority_th);
1896 if (GNUNET_SCHEDULER_NO_TASK != least_priority_th->timeout_task)
1897 GNUNET_SCHEDULER_cancel (least_priority_th->timeout_task);
1898 GNUNET_free (least_priority_th);
1899 }
1900 tunnel->npackets++; 1867 tunnel->npackets++;
1901 tunnel->mesh->npackets++;
1902 th = GNUNET_malloc (sizeof (struct GNUNET_MESH_TransmitHandle)); 1868 th = GNUNET_malloc (sizeof (struct GNUNET_MESH_TransmitHandle));
1903 th->tunnel = tunnel; 1869 th->tunnel = tunnel;
1904 th->priority = priority;
1905 th->timeout = GNUNET_TIME_relative_to_absolute (maxdelay); 1870 th->timeout = GNUNET_TIME_relative_to_absolute (maxdelay);
1906 th->target = GNUNET_PEER_intern (target); 1871 th->target = GNUNET_PEER_intern (target);
1907 if (tunnel->tid >= GNUNET_MESH_LOCAL_TUNNEL_ID_SERV) 1872 if (tunnel->tid >= GNUNET_MESH_LOCAL_TUNNEL_ID_SERV)
diff --git a/src/pt/gnunet-daemon-pt.c b/src/pt/gnunet-daemon-pt.c
index 702b8a95c..2658ae165 100644
--- a/src/pt/gnunet-daemon-pt.c
+++ b/src/pt/gnunet-daemon-pt.c
@@ -550,7 +550,7 @@ transmit_dns_request_to_mesh (void *cls,
550 if (mlen > size) 550 if (mlen > size)
551 { 551 {
552 mesh_th = GNUNET_MESH_notify_transmit_ready (mesh_tunnel, 552 mesh_th = GNUNET_MESH_notify_transmit_ready (mesh_tunnel,
553 GNUNET_NO, 0, 553 GNUNET_NO,
554 TIMEOUT, 554 TIMEOUT,
555 NULL, mlen, 555 NULL, mlen,
556 &transmit_dns_request_to_mesh, 556 &transmit_dns_request_to_mesh,
@@ -569,7 +569,7 @@ transmit_dns_request_to_mesh (void *cls,
569 rc = transmit_queue_head; 569 rc = transmit_queue_head;
570 if (NULL != rc) 570 if (NULL != rc)
571 mesh_th = GNUNET_MESH_notify_transmit_ready (mesh_tunnel, 571 mesh_th = GNUNET_MESH_notify_transmit_ready (mesh_tunnel,
572 GNUNET_NO, 0, 572 GNUNET_NO,
573 TIMEOUT, 573 TIMEOUT,
574 NULL, ntohs (rc->mesh_message->size), 574 NULL, ntohs (rc->mesh_message->size),
575 &transmit_dns_request_to_mesh, 575 &transmit_dns_request_to_mesh,
@@ -668,7 +668,7 @@ dns_pre_request_handler (void *cls,
668 rc); 668 rc);
669 if (NULL == mesh_th) 669 if (NULL == mesh_th)
670 mesh_th = GNUNET_MESH_notify_transmit_ready (mesh_tunnel, 670 mesh_th = GNUNET_MESH_notify_transmit_ready (mesh_tunnel,
671 GNUNET_NO, 0, 671 GNUNET_NO,
672 TIMEOUT, 672 TIMEOUT,
673 NULL, mlen, 673 NULL, mlen,
674 &transmit_dns_request_to_mesh, 674 &transmit_dns_request_to_mesh,
diff --git a/src/stream/stream_api.c b/src/stream/stream_api.c
index 930bd63e7..49227ccec 100644
--- a/src/stream/stream_api.c
+++ b/src/stream/stream_api.c
@@ -583,8 +583,7 @@ send_message_notify (void *cls, size_t size, void *buf)
583 socket->retries); 583 socket->retries);
584 socket->transmit_handle = 584 socket->transmit_handle =
585 GNUNET_MESH_notify_transmit_ready (socket->tunnel, 585 GNUNET_MESH_notify_transmit_ready (socket->tunnel,
586 0, /* Corking */ 586 GNUNET_NO, /* Corking */
587 1, /* Priority */
588 /* FIXME: exponential backoff */ 587 /* FIXME: exponential backoff */
589 socket->retransmit_timeout, 588 socket->retransmit_timeout,
590 &socket->other_peer, 589 &socket->other_peer,
@@ -611,8 +610,7 @@ send_message_notify (void *cls, size_t size, void *buf)
611 socket->retries = 0; 610 socket->retries = 0;
612 socket->transmit_handle = 611 socket->transmit_handle =
613 GNUNET_MESH_notify_transmit_ready (socket->tunnel, 612 GNUNET_MESH_notify_transmit_ready (socket->tunnel,
614 0, /* Corking */ 613 GNUNET_NO, /* Corking */
615 1, /* Priority */
616 /* FIXME: exponential backoff */ 614 /* FIXME: exponential backoff */
617 socket->retransmit_timeout, 615 socket->retransmit_timeout,
618 &socket->other_peer, 616 &socket->other_peer,
@@ -662,8 +660,7 @@ queue_message (struct GNUNET_STREAM_Socket *socket,
662 socket->retries = 0; 660 socket->retries = 0;
663 socket->transmit_handle = 661 socket->transmit_handle =
664 GNUNET_MESH_notify_transmit_ready (socket->tunnel, 662 GNUNET_MESH_notify_transmit_ready (socket->tunnel,
665 0, /* Corking */ 663 GNUNET_NO, /* Corking */
666 1, /* Priority */
667 socket->retransmit_timeout, 664 socket->retransmit_timeout,
668 &socket->other_peer, 665 &socket->other_peer,
669 ntohs (message->header.size), 666 ntohs (message->header.size),
@@ -792,8 +789,7 @@ ack_task (void *cls,
792 /* Request MESH for sending ACK */ 789 /* Request MESH for sending ACK */
793 socket->ack_transmit_handle = 790 socket->ack_transmit_handle =
794 GNUNET_MESH_notify_transmit_ready (socket->tunnel, 791 GNUNET_MESH_notify_transmit_ready (socket->tunnel,
795 0, /* Corking */ 792 GNUNET_NO, /* Corking */
796 1, /* Priority */
797 socket->retransmit_timeout, 793 socket->retransmit_timeout,
798 &socket->other_peer, 794 &socket->other_peer,
799 ntohs (ack_msg->header.header.size), 795 ntohs (ack_msg->header.header.size),
diff --git a/src/vpn/gnunet-service-vpn.c b/src/vpn/gnunet-service-vpn.c
index b8801e5d4..6138e9c1e 100644
--- a/src/vpn/gnunet-service-vpn.c
+++ b/src/vpn/gnunet-service-vpn.c
@@ -689,7 +689,6 @@ send_to_peer_notify_callback (void *cls, size_t size, void *buf)
689 if (NULL != (tnq = ts->tmq_head)) 689 if (NULL != (tnq = ts->tmq_head))
690 ts->th = GNUNET_MESH_notify_transmit_ready (ts->tunnel, 690 ts->th = GNUNET_MESH_notify_transmit_ready (ts->tunnel,
691 GNUNET_NO /* cork */, 691 GNUNET_NO /* cork */,
692 42 /* priority */,
693 GNUNET_TIME_UNIT_FOREVER_REL, 692 GNUNET_TIME_UNIT_FOREVER_REL,
694 NULL, 693 NULL,
695 tnq->len, 694 tnq->len,
@@ -742,7 +741,6 @@ send_to_tunnel (struct TunnelMessageQueueEntry *tnq,
742 if (NULL == ts->th) 741 if (NULL == ts->th)
743 ts->th = GNUNET_MESH_notify_transmit_ready (ts->tunnel, 742 ts->th = GNUNET_MESH_notify_transmit_ready (ts->tunnel,
744 GNUNET_NO /* cork */, 743 GNUNET_NO /* cork */,
745 42 /* priority */,
746 GNUNET_TIME_UNIT_FOREVER_REL, 744 GNUNET_TIME_UNIT_FOREVER_REL,
747 NULL, 745 NULL,
748 tnq->len, 746 tnq->len,