- implementation for mantis 0002485
[oweals/gnunet.git] / src / transport / plugin_transport_wlan.c
index d89b72ba61dd92365d0e1bbbe4644ac96f23c60d..c2565a4a8fb9f198de1c3343266d03008b54525a 100644 (file)
@@ -152,6 +152,11 @@ struct PendingMessage
  */
 struct Session
 {
+  /**
+   * To whom are we talking to (set to our identity
+   * if we are still waiting for the welcome message)
+   */
+  struct GNUNET_PeerIdentity target;
 
   /**
    * API requirement (must be first).
@@ -185,12 +190,6 @@ struct Session
    */
   struct PendingMessage *pending_message_tail;
 
-  /**
-   * To whom are we talking to (set to our identity
-   * if we are still waiting for the welcome message)
-   */
-  struct GNUNET_PeerIdentity target;
-
   /**
    * When should this session time out?
    */
@@ -872,6 +871,13 @@ free_macendpoint (struct MacEndpoint *endpoint)
   GNUNET_CONTAINER_DLL_remove (plugin->mac_head, 
                               plugin->mac_tail, 
                               endpoint);
+
+  if (NULL != endpoint->defrag)
+  {
+    GNUNET_DEFRAGMENT_context_destroy(endpoint->defrag);
+    endpoint->defrag = NULL;
+  }
+
   plugin->mac_count--;
   if (GNUNET_SCHEDULER_NO_TASK != endpoint->timeout_task)
   {
@@ -1074,7 +1080,7 @@ wlan_plugin_send (void *cls,
  * @param client pointer to the session this message belongs to
  * @param hdr start of the message
  */
-static void
+static int
 process_data (void *cls, void *client, const struct GNUNET_MessageHeader *hdr)
 {
   struct Plugin *plugin = cls;
@@ -1238,6 +1244,7 @@ process_data (void *cls, void *client, const struct GNUNET_MessageHeader *hdr)
                          (mas->endpoint == NULL) ? 0 : sizeof (struct GNUNET_TRANSPORT_WLAN_MacAddress));
     break;
   }
+  return GNUNET_OK;
 }
 #undef NUM_ATS
 
@@ -1249,7 +1256,7 @@ process_data (void *cls, void *client, const struct GNUNET_MessageHeader *hdr)
  * @param client client that send the data (not used)
  * @param hdr header of the GNUNET_MessageHeader
  */
-static void
+static int
 handle_helper_message (void *cls, void *client,
                       const struct GNUNET_MessageHeader *hdr)
 {
@@ -1351,6 +1358,7 @@ handle_helper_message (void *cls, void *client,
         ntohs (hdr->type), ntohs (hdr->size));
     break;
   }
+  return GNUNET_OK;
 }