Discard large metadata items first
[oweals/gnunet.git] / src / integration-tests / connection_watchdog.c
index 00da55eeef5c7d86414e1a75af0aa29425a61ca4..0998a367e697dc2d8f197417be41c0877162669c 100644 (file)
@@ -121,7 +121,7 @@ struct TransportPlugin *ptail;
 
 static int 
 map_check_it (void *cls,
-             const GNUNET_HashCode * key,
+             const struct GNUNET_HashCode * key,
              void *value)
 {
   int *fail = cls;
@@ -142,7 +142,7 @@ map_check_it (void *cls,
 
 static int 
 map_cleanup_it (void *cls,
-               const GNUNET_HashCode * key,
+               const struct GNUNET_HashCode * key,
                void *value)
 {
   struct PeerContainer *pc = value;
@@ -451,7 +451,7 @@ return mlen;
 
 
 int map_ping_it (void *cls,
-                  const GNUNET_HashCode * key,
+                  const struct GNUNET_HashCode * key,
                   void *value)
 {
   struct PeerContainer *pc = value;
@@ -461,14 +461,14 @@ int map_ping_it (void *cls,
     if ((GNUNET_YES == pc->transport_connected) && (NULL == pc->th_ping))
       pc->th_ping = GNUNET_TRANSPORT_notify_transmit_ready(th, &pc->id,
           sizeof (struct PING), UINT_MAX,
-          GNUNET_TIME_relative_get_forever(), &send_transport_ping_cb, pc);
+          GNUNET_TIME_UNIT_FOREVER_REL, &send_transport_ping_cb, pc);
     else
       GNUNET_break(0);
 
     if ((GNUNET_YES == pc->core_connected) && (NULL == pc->ch_ping))
       pc->ch_ping = GNUNET_CORE_notify_transmit_ready(ch,
                                                GNUNET_NO, UINT_MAX,
-                                               GNUNET_TIME_relative_get_forever(),
+                                                     GNUNET_TIME_UNIT_FOREVER_REL,
                                                &pc->id,
                                                sizeof (struct PING),
                                                send_core_ping_cb, pc);
@@ -499,7 +499,7 @@ stats_check (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 
   GNUNET_STATISTICS_get (stats, "transport", "# peers connected", GNUNET_TIME_UNIT_MINUTES, NULL, &stats_check_cb, &statistics_transport_connections);
   GNUNET_STATISTICS_get (stats, "core", "# neighbour entries allocated", GNUNET_TIME_UNIT_MINUTES, NULL, &stats_check_cb, &statistics_core_neighbour_entries);
-  GNUNET_STATISTICS_get (stats, "core", "# entries in session map", GNUNET_TIME_UNIT_MINUTES, NULL, &stats_check_cb, &statistics_core_entries_session_map);
+  GNUNET_STATISTICS_get (stats, "core", "# peers connected", GNUNET_TIME_UNIT_MINUTES, NULL, &stats_check_cb, &statistics_core_entries_session_map);
 
   /* TCP plugin specific checks */
   if (GNUNET_YES == have_tcp)
@@ -572,6 +572,8 @@ map_connect (const struct GNUNET_PeerIdentity *peer, void * source)
   }
 
   pc = GNUNET_CONTAINER_multihashmap_get(peers, &peer->hashPubKey);
+  GNUNET_assert (NULL != pc);
+
   if (source == th)
   {
     if (GNUNET_NO == pc->transport_connected)
@@ -580,7 +582,7 @@ map_connect (const struct GNUNET_PeerIdentity *peer, void * source)
       if (GNUNET_YES == ping)
       {
         if (NULL == pc->th_ping)
-          pc->th_ping = GNUNET_TRANSPORT_notify_transmit_ready(th, peer, sizeof (struct PING), UINT_MAX, GNUNET_TIME_relative_get_forever(), &send_transport_ping_cb, pc);
+          pc->th_ping = GNUNET_TRANSPORT_notify_transmit_ready(th, peer, sizeof (struct PING), UINT_MAX, GNUNET_TIME_UNIT_FOREVER_REL, &send_transport_ping_cb, pc);
         else
           GNUNET_break(0);
       }
@@ -605,7 +607,7 @@ map_connect (const struct GNUNET_PeerIdentity *peer, void * source)
         if (NULL == pc->ch_ping)
           pc->ch_ping = GNUNET_CORE_notify_transmit_ready(ch,
                                                  GNUNET_NO, UINT_MAX,
-                                                 GNUNET_TIME_relative_get_forever(),
+                                                         GNUNET_TIME_UNIT_FOREVER_REL,
                                                  peer,
                                                  sizeof (struct PING),
                                                  send_core_ping_cb, pc);
@@ -658,6 +660,8 @@ map_disconnect (const struct GNUNET_PeerIdentity * peer, void * source)
   }
 
   pc = GNUNET_CONTAINER_multihashmap_get(peers, &peer->hashPubKey);
+  GNUNET_assert (NULL != pc);
+
   if (source == th)
   {
     if (NULL != pc->th_ping)
@@ -842,7 +846,7 @@ transport_notify_receive_cb (void *cls,
       if (NULL == pc->th_pong)
         pc->th_pong = GNUNET_TRANSPORT_notify_transmit_ready(th,
           peer, sizeof (struct PONG),
-          UINT_MAX, GNUNET_TIME_relative_get_forever(),
+                                                            UINT_MAX, GNUNET_TIME_UNIT_FOREVER_REL,
           &send_transport_pong_cb, pc);
       else
         GNUNET_break (0);
@@ -893,7 +897,7 @@ core_notify_receive_cb (void *cls,
       if (NULL == pc->ch_pong)
         pc->ch_pong = GNUNET_CORE_notify_transmit_ready(ch,
                                                GNUNET_NO, UINT_MAX,
-                                               GNUNET_TIME_relative_get_forever(),
+                                                       GNUNET_TIME_UNIT_FOREVER_REL,
                                                peer,
                                                sizeof (struct PONG),
                                                send_core_pong_cb, pc);
@@ -971,7 +975,7 @@ init ()
   char *pos;
   char *secname;
   int counter;
-  long long unsigned int port;
+  unsigned long long port;
 
   have_tcp = GNUNET_NO;
   have_udp = GNUNET_NO;
@@ -1052,7 +1056,7 @@ run (void *cls, char *const *args, const char *cfgfile,
   init();
 
   stats = GNUNET_STATISTICS_create ("watchdog", cfg);
-  peers = GNUNET_CONTAINER_multihashmap_create (20);
+  peers = GNUNET_CONTAINER_multihashmap_create (32, GNUNET_NO);
 
   th = GNUNET_TRANSPORT_connect(cfg, NULL, NULL,
                                 &transport_notify_receive_cb,
@@ -1060,7 +1064,7 @@ run (void *cls, char *const *args, const char *cfgfile,
                                 &transport_notify_disconnect_cb);
   GNUNET_assert (th != NULL);
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Connected to transport service\n");
-  ch =  GNUNET_CORE_connect (cfg, 1, NULL,
+  ch =  GNUNET_CORE_connect (cfg, NULL,
                              &core_init_cb,
                              &core_connect_cb,
                              &core_disconnect_cb,
@@ -1090,10 +1094,15 @@ main (int argc, char *const *argv)
     GNUNET_NO, &GNUNET_GETOPT_set_one, &ping},
     GNUNET_GETOPT_OPTION_END
   };
-  return (GNUNET_OK ==
-          GNUNET_PROGRAM_run (argc, argv, "cn",
-                              gettext_noop ("help text"), options, &run,
-                              NULL)) ? ret : 1;
+
+  if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+    return 2;
+  ret = (GNUNET_OK ==
+        GNUNET_PROGRAM_run (argc, argv, "cn",
+                            gettext_noop ("help text"), options, &run,
+                            NULL)) ? ret : 1;
+  GNUNET_free ((void*) argv);
+  return ret;
 }
 
 /* end of connection_watchdog.c */