gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r16612 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r16612 - gnunet/src/transport
Date: Thu, 25 Aug 2011 16:17:53 +0200

Author: wachs
Date: 2011-08-25 16:17:53 +0200 (Thu, 25 Aug 2011)
New Revision: 16612

Modified:
   gnunet/src/transport/gnunet-service-transport-new.c
Log:
transport service sends wrong message type to transport_api
transport api requests GNUNET_MESSAGE_TYPE_TRANSPORT_RECV for payload messages



Modified: gnunet/src/transport/gnunet-service-transport-new.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport-new.c 2011-08-25 13:25:57 UTC 
(rev 16611)
+++ gnunet/src/transport/gnunet-service-transport-new.c 2011-08-25 14:17:53 UTC 
(rev 16612)
@@ -156,7 +156,8 @@
 plugin_env_receive_callback (void *cls, const struct GNUNET_PeerIdentity *peer,
                              const struct GNUNET_MessageHeader *message,
                              const struct GNUNET_TRANSPORT_ATS_Information 
*ats,
-                             uint32_t ats_count, struct Session *session,
+                             uint32_t ats_count,
+                             struct Session *session,
                              const char *sender_address,
                              uint16_t sender_address_len)
 {
@@ -222,7 +223,23 @@
                                                   ntohs (message->size),
                                                   &do_forward);
       if (do_forward == GNUNET_YES)
-        GST_clients_broadcast (message, GNUNET_YES);
+      {
+        struct InboundMessage * im;
+        size_t size =
+            sizeof (struct InboundMessage) +
+            ntohs (message->size);
+
+        im = GNUNET_malloc (size);
+        im->header.size = htons (size);
+        im->header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_RECV);
+        im->ats_count = htonl (0);
+        memcpy (&(im->peer), peer, sizeof(struct GNUNET_PeerIdentity));
+        memcpy (&im[1], message, ntohs (message->size));
+
+        GST_clients_broadcast ((const struct GNUNET_MessageHeader *) im, 
GNUNET_YES);
+
+        GNUNET_free(im);
+      }
       break;
     }
   }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]