diff options
author | Christian Grothoff <christian@grothoff.org> | 2019-05-04 22:16:24 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2019-05-04 22:16:24 +0200 |
commit | 80f480c752fd8dfa1be51d78fce314d9f0650b50 (patch) | |
tree | 459c21a3fde3b5f66194ac9960632de53586c5f0 /src/transport | |
parent | 3d2a951fa12546c09809f0a4d7e789ef8e971b03 (diff) | |
download | gnunet-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.c | 3 | ||||
-rw-r--r-- | src/transport/transport.h | 4 | ||||
-rw-r--r-- | src/transport/transport_api2_core.c | 7 | ||||
-rw-r--r-- | src/transport/transport_api_core.c | 7 |
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; |