aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-05-04 22:16:24 +0200
committerChristian Grothoff <christian@grothoff.org>2019-05-04 22:16:24 +0200
commit80f480c752fd8dfa1be51d78fce314d9f0650b50 (patch)
tree459c21a3fde3b5f66194ac9960632de53586c5f0 /src/transport
parent3d2a951fa12546c09809f0a4d7e789ef8e971b03 (diff)
downloadgnunet-80f480c752fd8dfa1be51d78fce314d9f0650b50.tar.gz
gnunet-80f480c752fd8dfa1be51d78fce314d9f0650b50.zip
simplify MQ logic to always carry the same kinds of flags, and extend transport API to pass them to (TNG) service
Diffstat (limited to 'src/transport')
-rw-r--r--src/transport/gnunet-service-tng.c3
-rw-r--r--src/transport/transport.h4
-rw-r--r--src/transport/transport_api2_core.c7
-rw-r--r--src/transport/transport_api_core.c7
4 files changed, 17 insertions, 4 deletions
diff --git a/src/transport/gnunet-service-tng.c b/src/transport/gnunet-service-tng.c
index 95ea102df..b217c8aa9 100644
--- a/src/transport/gnunet-service-tng.c
+++ b/src/transport/gnunet-service-tng.c
@@ -3743,10 +3743,13 @@ handle_client_send (void *cls, const struct OutboundMessage *obm)
3743 size_t payload_size; 3743 size_t payload_size;
3744 struct TransportDVBoxMessage *dvb; 3744 struct TransportDVBoxMessage *dvb;
3745 struct VirtualLink *vl; 3745 struct VirtualLink *vl;
3746 enum GNUNET_MQ_PriorityPreferences pp;
3746 3747
3747 GNUNET_assert (CT_CORE == tc->type); 3748 GNUNET_assert (CT_CORE == tc->type);
3748 obmm = (const struct GNUNET_MessageHeader *) &obm[1]; 3749 obmm = (const struct GNUNET_MessageHeader *) &obm[1];
3749 bytes_msg = ntohs (obmm->size); 3750 bytes_msg = ntohs (obmm->size);
3751 pp = (enum GNUNET_MQ_PriorityPreferences) ntohl (obm->priority);
3752 /* FIXME: actually make use of pp */ (void) pp;
3750 vl = GNUNET_CONTAINER_multipeermap_get (links, &obm->peer); 3753 vl = GNUNET_CONTAINER_multipeermap_get (links, &obm->peer);
3751 if (NULL == vl) 3754 if (NULL == vl)
3752 { 3755 {
diff --git a/src/transport/transport.h b/src/transport/transport.h
index 4ba628112..7fe869fa8 100644
--- a/src/transport/transport.h
+++ b/src/transport/transport.h
@@ -302,9 +302,9 @@ struct OutboundMessage
302 struct GNUNET_MessageHeader header; 302 struct GNUNET_MessageHeader header;
303 303
304 /** 304 /**
305 * Always zero. 305 * An `enum GNUNET_MQ_PriorityPreferences` in NBO.
306 */ 306 */
307 uint32_t reserved GNUNET_PACKED; 307 uint32_t priority GNUNET_PACKED;
308 308
309#if ! (defined(GNUNET_TRANSPORT_COMMUNICATION_VERSION) || \ 309#if ! (defined(GNUNET_TRANSPORT_COMMUNICATION_VERSION) || \
310 defined(GNUNET_TRANSPORT_CORE_VERSION)) 310 defined(GNUNET_TRANSPORT_CORE_VERSION))
diff --git a/src/transport/transport_api2_core.c b/src/transport/transport_api2_core.c
index a3c49e94f..20bbf2994 100644
--- a/src/transport/transport_api2_core.c
+++ b/src/transport/transport_api2_core.c
@@ -329,7 +329,12 @@ mq_send_impl (struct GNUNET_MQ_Handle *mq,
329 n->env = 329 n->env =
330 GNUNET_MQ_msg_nested_mh (obm, GNUNET_MESSAGE_TYPE_TRANSPORT_SEND, msg); 330 GNUNET_MQ_msg_nested_mh (obm, GNUNET_MESSAGE_TYPE_TRANSPORT_SEND, msg);
331 n->env_size = ntohs (msg->size); 331 n->env_size = ntohs (msg->size);
332 obm->reserved = htonl (0); 332 {
333 struct GNUNET_MQ_Envelope *env;
334
335 env = GNUNET_MQ_get_current_envelope (mq);
336 obm->priority = htonl ((uint32_t) GNUNET_MQ_env_get_options (env));
337 }
333 obm->peer = n->id; 338 obm->peer = n->id;
334 if (0 == n->ready_window) 339 if (0 == n->ready_window)
335 { 340 {
diff --git a/src/transport/transport_api_core.c b/src/transport/transport_api_core.c
index a163d7ccf..54dc7f4c3 100644
--- a/src/transport/transport_api_core.c
+++ b/src/transport/transport_api_core.c
@@ -418,7 +418,12 @@ mq_send_impl (struct GNUNET_MQ_Handle *mq,
418 GNUNET_assert (NULL == n->env); 418 GNUNET_assert (NULL == n->env);
419 n->env = 419 n->env =
420 GNUNET_MQ_msg_nested_mh (obm, GNUNET_MESSAGE_TYPE_TRANSPORT_SEND, msg); 420 GNUNET_MQ_msg_nested_mh (obm, GNUNET_MESSAGE_TYPE_TRANSPORT_SEND, msg);
421 obm->reserved = htonl (0); 421 {
422 struct GNUNET_MQ_Envelope *env;
423
424 env = GNUNET_MQ_get_current_envelope (mq);
425 obm->priority = htonl ((uint32_t) GNUNET_MQ_env_get_options (env));
426 }
422 obm->timeout = GNUNET_TIME_relative_hton ( 427 obm->timeout = GNUNET_TIME_relative_hton (
423 GNUNET_TIME_UNIT_MINUTES); /* FIXME: to be removed */ 428 GNUNET_TIME_UNIT_MINUTES); /* FIXME: to be removed */
424 obm->peer = n->id; 429 obm->peer = n->id;