Check that you are not present in trail twice
[oweals/gnunet.git] / src / core / gnunet-service-core_sessions.c
index 09bb3d6c444a38e5f95d331352cc26a1f1a20034..551c5f2c5c2521eca27b0c83776258393f60ab50 100644 (file)
 #include "core.h"
 
 
-/**
- * How often do we transmit our typemap?
- */
-#define TYPEMAP_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5)
-
-/**
- * How often do we transmit our typemap on first attempt?
- */
-#define TYPEMAP_FREQUENCY_FIRST GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
-
-
 /**
  * Message ready for encryption.  This struct is followed by the
  * actual content of the message.
@@ -340,7 +329,8 @@ GSC_SESSIONS_create (const struct GNUNET_PeerIdentity *peer,
                          GNUNET_CONTAINER_multipeermap_size (sessions),
                          GNUNET_NO);
   GSC_CLIENTS_notify_clients_about_neighbour (peer,
-                                              NULL, session->tmap);
+                                              NULL,
+                                              session->tmap);
   start_typemap_task (session);
 }
 
@@ -433,7 +423,8 @@ notify_client_about_session (void *cls,
   struct GSC_Client *client = cls;
   struct Session *session = value;
 
-  GSC_CLIENTS_notify_client_about_neighbour (client, &session->peer,
+  GSC_CLIENTS_notify_client_about_neighbour (client,
+                                             &session->peer,
                                              NULL,      /* old TMAP: none */
                                              session->tmap);
   return GNUNET_OK;
@@ -511,16 +502,17 @@ GSC_SESSIONS_queue_request (struct GSC_ClientActiveRequest *car)
 void
 GSC_SESSIONS_dequeue_request (struct GSC_ClientActiveRequest *car)
 {
-  struct Session *s;
+  struct Session *session;
 
   if (0 ==
       memcmp (&car->target, &GSC_my_identity,
               sizeof (struct GNUNET_PeerIdentity)))
     return;
-  s = find_session (&car->target);
-  GNUNET_assert (NULL != s);
-  GNUNET_CONTAINER_DLL_remove (s->active_client_request_head,
-                               s->active_client_request_tail, car);
+  session = find_session (&car->target);
+  GNUNET_assert (NULL != session);
+  GNUNET_CONTAINER_DLL_remove (session->active_client_request_head,
+                               session->active_client_request_tail,
+                               car);
 }
 
 
@@ -682,7 +674,12 @@ try_transmission (struct Session *session)
       return;
     }
   }
-
+  else
+  {
+    /* never solicit more, we have critical messages to process */
+    excess = GNUNET_NO;
+    maxpc = GNUNET_CORE_PRIO_BACKGROUND;
+  }
   now = GNUNET_TIME_absolute_get ();
   if ( ( (GNUNET_YES == excess) ||
          (maxpc >= GNUNET_CORE_PRIO_BEST_EFFORT) ) &&