diff options
Diffstat (limited to 'src/transport/gnunet-service-transport-new.c')
-rw-r--r-- | src/transport/gnunet-service-transport-new.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/transport/gnunet-service-transport-new.c b/src/transport/gnunet-service-transport-new.c index 95f181835..54af9cade 100644 --- a/src/transport/gnunet-service-transport-new.c +++ b/src/transport/gnunet-service-transport-new.c | |||
@@ -156,7 +156,8 @@ static struct GNUNET_TIME_Relative | |||
156 | plugin_env_receive_callback (void *cls, const struct GNUNET_PeerIdentity *peer, | 156 | plugin_env_receive_callback (void *cls, const struct GNUNET_PeerIdentity *peer, |
157 | const struct GNUNET_MessageHeader *message, | 157 | const struct GNUNET_MessageHeader *message, |
158 | const struct GNUNET_TRANSPORT_ATS_Information *ats, | 158 | const struct GNUNET_TRANSPORT_ATS_Information *ats, |
159 | uint32_t ats_count, struct Session *session, | 159 | uint32_t ats_count, |
160 | struct Session *session, | ||
160 | const char *sender_address, | 161 | const char *sender_address, |
161 | uint16_t sender_address_len) | 162 | uint16_t sender_address_len) |
162 | { | 163 | { |
@@ -222,7 +223,23 @@ plugin_env_receive_callback (void *cls, const struct GNUNET_PeerIdentity *peer, | |||
222 | ntohs (message->size), | 223 | ntohs (message->size), |
223 | &do_forward); | 224 | &do_forward); |
224 | if (do_forward == GNUNET_YES) | 225 | if (do_forward == GNUNET_YES) |
225 | GST_clients_broadcast (message, GNUNET_YES); | 226 | { |
227 | struct InboundMessage * im; | ||
228 | size_t size = | ||
229 | sizeof (struct InboundMessage) + | ||
230 | ntohs (message->size); | ||
231 | |||
232 | im = GNUNET_malloc (size); | ||
233 | im->header.size = htons (size); | ||
234 | im->header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_RECV); | ||
235 | im->ats_count = htonl (0); | ||
236 | memcpy (&(im->peer), peer, sizeof(struct GNUNET_PeerIdentity)); | ||
237 | memcpy (&im[1], message, ntohs (message->size)); | ||
238 | |||
239 | GST_clients_broadcast ((const struct GNUNET_MessageHeader *) im, GNUNET_YES); | ||
240 | |||
241 | GNUNET_free(im); | ||
242 | } | ||
226 | break; | 243 | break; |
227 | } | 244 | } |
228 | } | 245 | } |