gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] 04/40: NEWS: Removed all usage of old transport api, beside pee


From: gnunet
Subject: [gnunet] 04/40: NEWS: Removed all usage of old transport api, beside peerinfo tool, gnunet-transport cli and usage in transport layer itself.
Date: Thu, 05 Oct 2023 08:57:07 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository gnunet.

commit b78f99388e82b61cd6fde7e2f153c50b96dca3dc
Author: t3sserakt <t3ss@posteo.de>
AuthorDate: Mon Jun 19 15:39:36 2023 +0200

    NEWS: Removed all usage of old transport api, beside peerinfo tool, 
gnunet-transport cli and usage in transport layer itself.
---
 src/cadet/Makefile.am                              |   1 +
 src/cadet/gnunet-service-cadet.c                   |  36 ++----
 src/cadet/gnunet-service-cadet.h                   |   4 +-
 src/cadet/gnunet-service-cadet_peer.c              |  72 ++++-------
 src/core/core.h                                    |   1 -
 src/core/gnunet-service-core.c                     |   1 +
 src/core/gnunet-service-core_kx.c                  |  31 +----
 src/core/gnunet-service-core_kx.h                  |   1 -
 src/core/gnunet-service-core_typemap.c             |   1 -
 src/core/gnunet-service-core_typemap.h             |   1 -
 src/dht/gnunet-service-dht.h                       |   1 -
 src/dhtu/Makefile.am                               |   1 +
 src/dhtu/plugin_dhtu_gnunet.c                      | 144 +++++----------------
 src/fs/gnunet-service-fs.c                         |  19 +--
 src/fs/gnunet-service-fs.h                         |   1 -
 src/fs/gnunet-service-fs_cp.c                      | 138 +-------------------
 src/hostlist/gnunet-daemon-hostlist_client.c       |   1 -
 src/include/gnunet_cadet_service.h                 |   2 -
 src/include/gnunet_core_service.h                  |   1 -
 src/rps/gnunet-service-rps.c                       |   1 +
 .../gnunet-service-scalarproduct-ecc_alice.c       |   1 +
 .../gnunet-service-scalarproduct_alice.c           |   1 +
 .../gnunet-service-scalarproduct_bob.c             |   1 +
 src/topology/Makefile.am                           |   1 +
 src/topology/gnunet-daemon-topology.c              |  86 +++++-------
 25 files changed, 115 insertions(+), 433 deletions(-)

diff --git a/src/cadet/Makefile.am b/src/cadet/Makefile.am
index d942c6495..ec95c7490 100644
--- a/src/cadet/Makefile.am
+++ b/src/cadet/Makefile.am
@@ -69,6 +69,7 @@ gnunet_service_cadet_LDADD = \
   $(top_builddir)/src/dht/libgnunetdht.la \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/transport/libgnunettransport.la \
+  $(top_builddir)/src/transport/libgnunettransportapplication.la \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/block/libgnunetblock.la
diff --git a/src/cadet/gnunet-service-cadet.c b/src/cadet/gnunet-service-cadet.c
index 07b580005..fd1365561 100644
--- a/src/cadet/gnunet-service-cadet.c
+++ b/src/cadet/gnunet-service-cadet.c
@@ -36,6 +36,7 @@
 #include "gnunet_util_lib.h"
 #include "cadet.h"
 #include "gnunet_statistics_service.h"
+#include "gnunet_transport_application_service.h"
 #include "gnunet-service-cadet.h"
 #include "gnunet-service-cadet_channel.h"
 #include "gnunet-service-cadet_connection.h"
@@ -45,6 +46,8 @@
 #include "gnunet-service-cadet_tunnels.h"
 #include "gnunet-service-cadet_peer.h"
 #include "gnunet-service-cadet_paths.h"
+#include "gnunet_constants.h"
+
 
 #define LOG(level, ...) GNUNET_log (level, __VA_ARGS__)
 
@@ -116,9 +119,9 @@ const struct GNUNET_CONFIGURATION_Handle *cfg;
 struct GNUNET_STATISTICS_Handle *stats;
 
 /**
- * Handle to communicate with ATS.
+ * Handle to Transport service.
  */
-struct GNUNET_ATS_ConnectivityHandle *ats_ch;
+struct GNUNET_TRANSPORT_ApplicationHandle *transport;
 
 /**
  * Local peer own ID.
@@ -408,10 +411,10 @@ shutdown_rest ()
     GNUNET_CONTAINER_multishortmap_destroy (connections);
     connections = NULL;
   }
-  if (NULL != ats_ch)
+  if (NULL != transport)
   {
-    GNUNET_ATS_connectivity_done (ats_ch);
-    ats_ch = NULL;
+    GNUNET_TRANSPORT_application_done (transport);
+    transport = NULL;
   }
   GCD_shutdown ();
   GCH_shutdown ();
@@ -1278,28 +1281,7 @@ run (void *cls,
   {
     drop_percent = 0;
   }
-  else
-  {
-    LOG (GNUNET_ERROR_TYPE_WARNING, 
"**************************************\n");
-    LOG (GNUNET_ERROR_TYPE_WARNING, "Cadet is running with DROP enabled.\n");
-    LOG (GNUNET_ERROR_TYPE_WARNING, "This is NOT a good idea!\n");
-    LOG (GNUNET_ERROR_TYPE_WARNING, "Remove DROP_PERCENT from config file.\n");
-    LOG (GNUNET_ERROR_TYPE_WARNING, 
"**************************************\n");
-  }
-  my_private_key = GNUNET_CRYPTO_eddsa_key_create_from_configuration (c);
-  if (NULL == my_private_key)
-  {
-    GNUNET_break (0);
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  GNUNET_CRYPTO_eddsa_key_get_public (my_private_key,
-                                      &my_full_id.public_key);
-  stats = GNUNET_STATISTICS_create ("cadet",
-                                    c);
-  GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
-                                 NULL);
-  ats_ch = GNUNET_ATS_connectivity_init (c);
+  transport = GNUNET_TRANSPORT_application_init (c);
   /* FIXME: optimize code to allow GNUNET_YES here! */
   open_ports = GNUNET_CONTAINER_multihashmap_create (16,
                                                      GNUNET_NO);
diff --git a/src/cadet/gnunet-service-cadet.h b/src/cadet/gnunet-service-cadet.h
index 3d61b9973..8f2386d00 100644
--- a/src/cadet/gnunet-service-cadet.h
+++ b/src/cadet/gnunet-service-cadet.h
@@ -197,9 +197,9 @@ extern const struct GNUNET_CONFIGURATION_Handle *cfg;
 extern struct GNUNET_STATISTICS_Handle *stats;
 
 /**
- * Handle to communicate with ATS.
+ * Handle to Transport service.
  */
-extern struct GNUNET_ATS_ConnectivityHandle *ats_ch;
+extern struct GNUNET_TRANSPORT_ApplicationHandle *transport;
 
 /**
  * Local peer own ID.
diff --git a/src/cadet/gnunet-service-cadet_peer.c 
b/src/cadet/gnunet-service-cadet_peer.c
index f2b508ae0..6d6288e8d 100644
--- a/src/cadet/gnunet-service-cadet_peer.c
+++ b/src/cadet/gnunet-service-cadet_peer.c
@@ -35,7 +35,7 @@
 #include "gnunet_util_lib.h"
 #include "gnunet_hello_lib.h"
 #include "gnunet_signatures.h"
-#include "gnunet_transport_service.h"
+#include "gnunet_transport_application_service.h"
 #include "gnunet_ats_service.h"
 #include "gnunet_core_service.h"
 #include "gnunet_statistics_service.h"
@@ -194,10 +194,9 @@ struct CadetPeer
   struct GNUNET_TRANSPORT_OfferHelloHandle *hello_offer;
 
   /**
-   * Handle to our ATS request asking ATS to suggest an address
-   * to TRANSPORT for this peer (to establish a direct link).
+   * Transport suggest handle.
    */
-  struct GNUNET_ATS_ConnectivitySuggestHandle *connectivity_suggestion;
+  struct GNUNET_TRANSPORT_ApplicationSuggestHandle *ash;
 
   /**
    * How many messages are in the queue to this peer.
@@ -334,15 +333,11 @@ destroy_peer (void *cls)
   }
   /* FIXME: clean up search_delayedXXX! */
 
-  if (NULL != cp->hello_offer)
-  {
-    GNUNET_TRANSPORT_offer_hello_cancel (cp->hello_offer);
-    cp->hello_offer = NULL;
-  }
-  if (NULL != cp->connectivity_suggestion)
+
+  if (NULL != cp->ash)
   {
-    GNUNET_ATS_connectivity_suggest_cancel (cp->connectivity_suggestion);
-    cp->connectivity_suggestion = NULL;
+    GNUNET_TRANSPORT_application_suggest_cancel (cp->ash);
+    cp->ash = NULL;
   }
   GNUNET_CONTAINER_multishortmap_destroy (cp->connections);
   if (NULL != cp->path_heap)
@@ -375,6 +370,7 @@ static void
 consider_peer_activate (struct CadetPeer *cp)
 {
   uint32_t strength;
+  struct GNUNET_BANDWIDTH_Value32NBO bw;
 
   LOG (GNUNET_ERROR_TYPE_DEBUG,
        "Updating peer %s activation state (%u connections)%s%s\n",
@@ -392,10 +388,10 @@ consider_peer_activate (struct CadetPeer *cp)
       (NULL == cp->t))
   {
     /* We're just on a path or directly connected; don't bother too much */
-    if (NULL != cp->connectivity_suggestion)
+    if (NULL != cp->ash)
     {
-      GNUNET_ATS_connectivity_suggest_cancel (cp->connectivity_suggestion);
-      cp->connectivity_suggestion = NULL;
+      GNUNET_TRANSPORT_application_suggest_cancel (cp->ash);
+      cp->ash = NULL;
     }
     if (NULL != cp->search_h)
     {
@@ -424,12 +420,13 @@ consider_peer_activate (struct CadetPeer *cp)
 
   /* If we have a tunnel, our urge for connections is much bigger */
   strength = (NULL != cp->t) ? 32 : 1;
-  if (NULL != cp->connectivity_suggestion)
-    GNUNET_ATS_connectivity_suggest_cancel (cp->connectivity_suggestion);
-  cp->connectivity_suggestion
-    = GNUNET_ATS_connectivity_suggest (ats_ch,
-                                       &cp->pid,
-                                       strength);
+  if (NULL != cp->ash)
+    GNUNET_TRANSPORT_application_suggest_cancel (cp->ash);
+  cp->ash
+    = GNUNET_TRANSPORT_application_suggest (transport,
+                                            &cp->pid,
+                                            GNUNET_MQ_PRIO_BEST_EFFORT,
+                                            bw);
 }
 
 
@@ -1308,36 +1305,17 @@ GCP_get_tunnel (struct CadetPeer *cp,
 }
 
 
-/**
- * Hello offer was passed to the transport service. Mark it
- * as done.
- *
- * @param cls the `struct CadetPeer` where the offer completed
- */
-static void
-hello_offer_done (void *cls)
-{
-  struct CadetPeer *cp = cls;
-
-  cp->hello_offer = NULL;
-}
-
-
 void
 GCP_set_hello (struct CadetPeer *cp,
                const struct GNUNET_HELLO_Message *hello)
 {
   struct GNUNET_HELLO_Message *mrg;
+  struct GNUNET_BANDWIDTH_Value32NBO bw;
 
   LOG (GNUNET_ERROR_TYPE_DEBUG,
        "Got %u byte HELLO for peer %s\n",
        (unsigned int) GNUNET_HELLO_size (hello),
        GCP_2s (cp));
-  if (NULL != cp->hello_offer)
-  {
-    GNUNET_TRANSPORT_offer_hello_cancel (cp->hello_offer);
-    cp->hello_offer = NULL;
-  }
   if (NULL != cp->hello)
   {
     mrg = GNUNET_HELLO_merge (hello,
@@ -1350,11 +1328,13 @@ GCP_set_hello (struct CadetPeer *cp,
     cp->hello = GNUNET_memdup (hello,
                                GNUNET_HELLO_size (hello));
   }
-  cp->hello_offer
-    = GNUNET_TRANSPORT_offer_hello (cfg,
-                                    GNUNET_HELLO_get_header (cp->hello),
-                                    &hello_offer_done,
-                                    cp);
+  if (NULL != cp->ash)
+    GNUNET_TRANSPORT_application_suggest_cancel (cp->ash);
+  cp->ash
+    = GNUNET_TRANSPORT_application_suggest (transport,
+                                            &cp->pid,
+                                            GNUNET_MQ_PRIO_BEST_EFFORT,
+                                            bw);
   /* New HELLO means cp's destruction time may change... */
   consider_peer_destroy (cp);
 }
diff --git a/src/core/core.h b/src/core/core.h
index 17df7acb7..d4596f038 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -26,7 +26,6 @@
 #ifndef CORE_H
 #define CORE_H
 
-#include "gnunet_transport_service.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_time_lib.h"
 
diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c
index c9c3e3ff5..e387fecc9 100644
--- a/src/core/gnunet-service-core.c
+++ b/src/core/gnunet-service-core.c
@@ -30,6 +30,7 @@
 #include "gnunet-service-core_kx.h"
 #include "gnunet-service-core_sessions.h"
 #include "gnunet-service-core_typemap.h"
+#include "gnunet_constants.h"
 
 /**
  * How many messages do we queue up at most for any client? This can
diff --git a/src/core/gnunet-service-core_kx.c 
b/src/core/gnunet-service-core_kx.c
index b203f4902..774f967e3 100644
--- a/src/core/gnunet-service-core_kx.c
+++ b/src/core/gnunet-service-core_kx.c
@@ -26,14 +26,12 @@
  */
 #include "platform.h"
 #include "gnunet-service-core_kx.h"
-#include "gnunet-service-core.h"
+#include "gnunet_transport_core_service.h"
 #include "gnunet-service-core_sessions.h"
-#include "gnunet_statistics_service.h"
-#include "gnunet_transport_service.h"
+#include "gnunet-service-core.h"
 #include "gnunet_constants.h"
 #include "gnunet_signatures.h"
 #include "gnunet_protocols.h"
-#include "core.h"
 
 /**
  * Enable expensive (and possibly problematic for privacy!) logging of KX.
@@ -1677,28 +1675,6 @@ handle_encrypted (void *cls, const struct 
EncryptedMessage *m)
 }
 
 
-/**
- * One of our neighbours has excess bandwidth, remember this.
- *
- * @param cls NULL
- * @param pid identity of the peer with excess bandwidth
- * @param connect_cls the `struct Neighbour`
- */
-static void
-handle_transport_notify_excess_bw (void *cls,
-                                   const struct GNUNET_PeerIdentity *pid,
-                                   void *connect_cls)
-{
-  struct GSC_KeyExchangeInfo *kx = connect_cls;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Peer %s has excess bandwidth available\n",
-              GNUNET_i2s (pid));
-  kx->has_excess_bandwidth = GNUNET_YES;
-  GSC_SESSIONS_solicit (pid);
-}
-
-
 /**
  * Setup the message that links the ephemeral key to our persistent
  * public key and generate the appropriate signature.
@@ -1835,8 +1811,7 @@ GSC_KX_init (struct GNUNET_CRYPTO_EddsaPrivateKey *pk)
                                    handlers,
                                    NULL,
                                    &handle_transport_notify_connect,
-                                   &handle_transport_notify_disconnect,
-                                   &handle_transport_notify_excess_bw);
+                                   &handle_transport_notify_disconnect);
   if (NULL == transport)
   {
     GSC_KX_done ();
diff --git a/src/core/gnunet-service-core_kx.h 
b/src/core/gnunet-service-core_kx.h
index 77f3e43b6..8bcac3f68 100644
--- a/src/core/gnunet-service-core_kx.h
+++ b/src/core/gnunet-service-core_kx.h
@@ -27,7 +27,6 @@
 #define GNUNET_SERVICE_CORE_KX_H
 
 #include "gnunet_util_lib.h"
-#include "gnunet_transport_service.h"
 
 
 /**
diff --git a/src/core/gnunet-service-core_typemap.c 
b/src/core/gnunet-service-core_typemap.c
index 7b7df2fe9..200a84b23 100644
--- a/src/core/gnunet-service-core_typemap.c
+++ b/src/core/gnunet-service-core_typemap.c
@@ -25,7 +25,6 @@
  */
 #include "platform.h"
 #include "gnunet_util_lib.h"
-#include "gnunet_transport_service.h"
 #include "gnunet-service-core.h"
 #include "gnunet-service-core_sessions.h"
 #include "gnunet-service-core_typemap.h"
diff --git a/src/core/gnunet-service-core_typemap.h 
b/src/core/gnunet-service-core_typemap.h
index 7acdec53b..de41f4220 100644
--- a/src/core/gnunet-service-core_typemap.h
+++ b/src/core/gnunet-service-core_typemap.h
@@ -27,7 +27,6 @@
 #define GNUNET_SERVICE_CORE_TYPEMAP_H
 
 #include "gnunet_util_lib.h"
-#include "gnunet_transport_service.h"
 
 /**
  * Map specifying which message types a peer supports.
diff --git a/src/dht/gnunet-service-dht.h b/src/dht/gnunet-service-dht.h
index dcc972fc2..893c90109 100644
--- a/src/dht/gnunet-service-dht.h
+++ b/src/dht/gnunet-service-dht.h
@@ -29,7 +29,6 @@
 #include "gnunet-service-dht_datacache.h"
 #include "gnunet-service-dht_neighbours.h"
 #include "gnunet_statistics_service.h"
-#include "gnunet_transport_service.h"
 
 
 #define DEBUG_DHT GNUNET_EXTRA_LOGGING
diff --git a/src/dhtu/Makefile.am b/src/dhtu/Makefile.am
index 4d210b71f..3a3e1c192 100644
--- a/src/dhtu/Makefile.am
+++ b/src/dhtu/Makefile.am
@@ -37,6 +37,7 @@ libgnunet_plugin_dhtu_gnunet_la_LIBADD = \
   $(top_builddir)/src/core/libgnunetcore.la \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
   $(top_builddir)/src/transport/libgnunettransport.la \
+  $(top_builddir)/src/transport/libgnunettransportapplication.la \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/nse/libgnunetnse.la \
   $(top_builddir)/src/util/libgnunetutil.la \
diff --git a/src/dhtu/plugin_dhtu_gnunet.c b/src/dhtu/plugin_dhtu_gnunet.c
index b0cee7e01..6a79e70f3 100644
--- a/src/dhtu/plugin_dhtu_gnunet.c
+++ b/src/dhtu/plugin_dhtu_gnunet.c
@@ -26,42 +26,13 @@
  */
 #include "platform.h"
 #include "gnunet_dhtu_plugin.h"
-#include "gnunet_ats_service.h"
 #include "gnunet_core_service.h"
-#include "gnunet_transport_service.h"
+#include "gnunet_transport_application_service.h"
 #include "gnunet_hello_lib.h"
 #include "gnunet_peerinfo_service.h"
 #include "gnunet_nse_service.h"
 
 
-/**
- * Handle for a HELLO we're offering the transport.
- */
-struct HelloHandle
-{
-  /**
-   * Kept in a DLL.
-   */
-  struct HelloHandle *next;
-
-  /**
-   * Kept in a DLL.
-   */
-  struct HelloHandle *prev;
-
-  /**
-   * Our plugin.
-   */
-  struct Plugin *plugin;
-
-  /**
-   * Offer handle.
-   */
-  struct GNUNET_TRANSPORT_OfferHelloHandle *ohh;
-
-};
-
-
 /**
  * Opaque handle that the underlay offers for our address to be used when
  * sending messages to another peer.
@@ -110,9 +81,9 @@ struct GNUNET_DHTU_Target
   struct GNUNET_DHTU_PreferenceHandle *ph_tail;
 
   /**
-   * ATS preference handle for this peer, or NULL.
+   * Transport suggest handle.
    */
-  struct GNUNET_ATS_ConnectivitySuggestHandle *csh;
+  struct GNUNET_TRANSPORT_ApplicationSuggestHandle *ash;
 
   /**
    * Identity of this peer.
@@ -173,9 +144,9 @@ struct Plugin
   struct GNUNET_CORE_Handle *core;
 
   /**
-   * Handle to ATS service.
+   * Handle to Transport service.
    */
-  struct GNUNET_ATS_ConnectivityHandle *ats;
+  struct GNUNET_TRANSPORT_ApplicationHandle *transport;
 
   /**
    * Handle to the NSE service.
@@ -187,16 +158,6 @@ struct Plugin
    */
   struct GNUNET_PEERINFO_NotifyContext *nc;
 
-  /**
-   * Hellos we are offering to transport.
-   */
-  struct HelloHandle *hh_head;
-
-  /**
-   * Hellos we are offering to transport.
-   */
-  struct HelloHandle *hh_tail;
-
   /**
    * Identity of this peer.
    */
@@ -205,24 +166,6 @@ struct Plugin
 };
 
 
-/**
- * Function called once a hello offer is completed.
- *
- * @param cls a `struct HelloHandle`
- */
-static void
-hello_offered_cb (void *cls)
-{
-  struct HelloHandle *hh = cls;
-  struct Plugin *plugin = hh->plugin;
-
-  GNUNET_CONTAINER_DLL_remove (plugin->hh_head,
-                               plugin->hh_tail,
-                               hh);
-  GNUNET_free (hh);
-}
-
-
 #include "../peerinfo-tool/gnunet-peerinfo_plugins.c"
 
 
@@ -239,27 +182,12 @@ gnunet_try_connect (void *cls,
                     const char *address)
 {
   struct Plugin *plugin = cls;
-  struct GNUNET_HELLO_Message *hello = NULL;
-  struct HelloHandle *hh;
-  struct GNUNET_CRYPTO_EddsaPublicKey pubkey;
-
-  (void) pid; /* will be needed with future address URIs */
-  if (GNUNET_OK !=
-      GNUNET_HELLO_parse_uri (address,
-                              &pubkey,
-                              &hello,
-                              &GPI_plugins_find))
-    return;
-  hh = GNUNET_new (struct HelloHandle);
-  hh->plugin = plugin;
-  GNUNET_CONTAINER_DLL_insert (plugin->hh_head,
-                               plugin->hh_tail,
-                               hh);
-  hh->ohh = GNUNET_TRANSPORT_offer_hello (plugin->env->cfg,
-                                          &hello->header,
-                                          &hello_offered_cb,
-                                          hh);
-  GNUNET_free (hello);
+  enum GNUNET_NetworkType nt = 0;
+
+  GNUNET_TRANSPORT_application_validate (plugin->transport,
+                                         pid,
+                                         nt,
+                                         address);
 }
 
 
@@ -277,6 +205,7 @@ gnunet_hold (void *cls,
 {
   struct Plugin *plugin = cls;
   struct GNUNET_DHTU_PreferenceHandle *ph;
+  struct GNUNET_BANDWIDTH_Value32NBO bw;
 
   ph = GNUNET_new (struct GNUNET_DHTU_PreferenceHandle);
   ph->target = target;
@@ -284,12 +213,13 @@ gnunet_hold (void *cls,
                                target->ph_tail,
                                ph);
   target->ph_count++;
-  if (NULL != target->csh)
-    GNUNET_ATS_connectivity_suggest_cancel (target->csh);
-  target->csh
-    = GNUNET_ATS_connectivity_suggest (plugin->ats,
-                                       &target->pid,
-                                       target->ph_count);
+  if (NULL != target->ash)
+    GNUNET_TRANSPORT_application_suggest_cancel (target->ash);
+  target->ash
+    = GNUNET_TRANSPORT_application_suggest (plugin->transport,
+                                            &target->pid,
+                                            GNUNET_MQ_PRIO_BEST_EFFORT,
+                                            bw);
   return ph;
 }
 
@@ -305,21 +235,23 @@ gnunet_drop (struct GNUNET_DHTU_PreferenceHandle *ph)
 {
   struct GNUNET_DHTU_Target *target = ph->target;
   struct Plugin *plugin = target->plugin;
+  struct GNUNET_BANDWIDTH_Value32NBO bw;
 
   GNUNET_CONTAINER_DLL_remove (target->ph_head,
                                target->ph_tail,
                                ph);
   target->ph_count--;
   GNUNET_free (ph);
-  if (NULL != target->csh)
-    GNUNET_ATS_connectivity_suggest_cancel (target->csh);
+  if (NULL != target->ash)
+    GNUNET_TRANSPORT_application_suggest_cancel (target->ash);
   if (0 == target->ph_count)
-    target->csh = NULL;
+    target->ash = NULL;
   else
-    target->csh
-      = GNUNET_ATS_connectivity_suggest (plugin->ats,
-                                         &target->pid,
-                                         target->ph_count);
+    target->ash
+      = GNUNET_TRANSPORT_application_suggest (plugin->transport,
+                                              &target->pid,
+                                              GNUNET_MQ_PRIO_BEST_EFFORT,
+                                              bw);
 }
 
 
@@ -408,8 +340,8 @@ core_disconnect_cb (void *cls,
   struct GNUNET_DHTU_Target *target = peer_cls;
 
   plugin->env->disconnect_cb (target->app_ctx);
-  if (NULL != target->csh)
-    GNUNET_ATS_connectivity_suggest_cancel (target->csh);
+  if (NULL != target->ash)
+    GNUNET_TRANSPORT_application_suggest_cancel (target->ash);
   GNUNET_free (target);
 }
 
@@ -556,14 +488,6 @@ libgnunet_plugin_dhtu_gnunet_done (void *cls)
   struct Plugin *plugin = api->cls;
   struct HelloHandle *hh;
 
-  while (NULL != (hh = plugin->hh_head))
-  {
-    GNUNET_CONTAINER_DLL_remove (plugin->hh_head,
-                                 plugin->hh_tail,
-                                 hh);
-    GNUNET_TRANSPORT_offer_hello_cancel (hh->ohh);
-    GNUNET_free (hh);
-  }
   if (NULL != plugin->nse)
     GNUNET_NSE_disconnect (plugin->nse);
   plugin->env->network_size_cb (plugin->env->cls,
@@ -572,8 +496,8 @@ libgnunet_plugin_dhtu_gnunet_done (void *cls)
                                 0.0);
   if (NULL != plugin->core)
     GNUNET_CORE_disconnect (plugin->core);
-  if (NULL != plugin->ats)
-    GNUNET_ATS_connectivity_done (plugin->ats);
+  if (NULL != plugin->transport)
+    GNUNET_TRANSPORT_application_done (plugin->transport);
   if (NULL != plugin->nc)
     GNUNET_PEERINFO_notify_cancel (plugin->nc);
   GPI_plugins_unload ();
@@ -611,7 +535,7 @@ libgnunet_plugin_dhtu_gnunet_init (void *cls)
   api->hold = &gnunet_hold;
   api->drop = &gnunet_drop;
   api->send = &gnunet_send;
-  plugin->ats = GNUNET_ATS_connectivity_init (env->cfg);
+  plugin->transport = GNUNET_TRANSPORT_application_init (env->cfg);
   plugin->core = GNUNET_CORE_connect (env->cfg,
                                       plugin,
                                       &core_init_cb,
@@ -621,7 +545,7 @@ libgnunet_plugin_dhtu_gnunet_init (void *cls)
   plugin->nse = GNUNET_NSE_connect (env->cfg,
                                     &nse_cb,
                                     plugin);
-  if ( (NULL == plugin->ats) ||
+  if ( (NULL == plugin->transport) ||
        (NULL == plugin->core) ||
        (NULL == plugin->nse) )
   {
diff --git a/src/fs/gnunet-service-fs.c b/src/fs/gnunet-service-fs.c
index 597e89e14..c4193c2e4 100644
--- a/src/fs/gnunet-service-fs.c
+++ b/src/fs/gnunet-service-fs.c
@@ -33,7 +33,6 @@
 #include "gnunet_protocols.h"
 #include "gnunet_signatures.h"
 #include "gnunet_statistics_service.h"
-#include "gnunet_transport_service.h"
 #include "gnunet_util_lib.h"
 #include "gnunet-service-fs_cp.h"
 #include "gnunet-service-fs_indexing.h"
@@ -248,11 +247,6 @@ struct GNUNET_LOAD_Value *GSF_rt_entry_lifetime;
  */
 struct GNUNET_TIME_Relative GSF_avg_latency = { 500 };
 
-/**
- * Handle to ATS service.
- */
-struct GNUNET_ATS_PerformanceHandle *GSF_ats;
-
 
 /**
  * Typical priorities we're seeing from other peers right now.  Since
@@ -1042,12 +1036,12 @@ hash_for_index_val (void *cls,
                 GNUNET_h2s (&isc->file_id));
 
     const char *emsg = "hash mismatch";
-    const size_t msize = strlen(emsg) + 1;
+    const size_t msize = strlen (emsg) + 1;
 
     env = GNUNET_MQ_msg_extra (msg,
                                msize,
                                GNUNET_MESSAGE_TYPE_FS_INDEX_START_FAILED);
-    memcpy((char*) &msg[1], emsg, msize);
+    memcpy ((char*) &msg[1], emsg, msize);
     GNUNET_MQ_send (lc->mq,
                     env);
     GNUNET_SERVICE_client_continue (lc->client);
@@ -1182,11 +1176,6 @@ shutdown_task (void *cls)
     GNUNET_CORE_disconnect (GSF_core);
     GSF_core = NULL;
   }
-  if (NULL != GSF_ats)
-  {
-    GNUNET_ATS_performance_done (GSF_ats);
-    GSF_ats = NULL;
-  }
   GSF_put_done_ ();
   GSF_push_done_ ();
   GSF_pending_request_done_ ();
@@ -1378,9 +1367,7 @@ run (void *cls,
   GSF_plan_init ();
   GSF_pending_request_init_ ();
   GSF_connected_peer_init_ ();
-  GSF_ats = GNUNET_ATS_performance_init (GSF_cfg,
-                                         &update_latencies,
-                                         NULL);
+
   GSF_push_init_ ();
   GSF_put_init_ ();
   if ((GNUNET_OK != GNUNET_FS_indexing_init (cfg,
diff --git a/src/fs/gnunet-service-fs.h b/src/fs/gnunet-service-fs.h
index 56d102673..7bbab1022 100644
--- a/src/fs/gnunet-service-fs.h
+++ b/src/fs/gnunet-service-fs.h
@@ -28,7 +28,6 @@
 
 #include "gnunet_util_lib.h"
 #include "gnunet_statistics_service.h"
-#include "gnunet_transport_service.h"
 #include "gnunet_core_service.h"
 #include "gnunet_block_lib.h"
 #include "gnunet_ats_service.h"
diff --git a/src/fs/gnunet-service-fs_cp.c b/src/fs/gnunet-service-fs_cp.c
index 29e4c5910..74dd42daf 100644
--- a/src/fs/gnunet-service-fs_cp.c
+++ b/src/fs/gnunet-service-fs_cp.c
@@ -93,11 +93,6 @@ struct GSF_PeerTransmitHandle
    */
   int is_query;
 
-  /**
-   * Did we get a reservation already?
-   */
-  int was_reserved;
-
   /**
    * Priority of this request.
    */
@@ -209,11 +204,6 @@ struct GSF_ConnectedPeer
    */
   struct GSF_DelayedHandle *delayed_tail;
 
-  /**
-   * Context of our GNUNET_ATS_reserve_bandwidth call (or NULL).
-   */
-  struct GNUNET_ATS_ReservationContext *rc;
-
   /**
    * Task scheduled if we need to retry bandwidth reservation later.
    */
@@ -263,12 +253,6 @@ struct GSF_ConnectedPeer
    */
   unsigned int last_request_times_off;
 
-  /**
-   * #GNUNET_YES if we did successfully reserve 32k bandwidth,
-   * #GNUNET_NO if not.
-   */
-  int did_reserve;
-
   /**
    * Handle to the PEERSTORE iterate request for peer respect value
    */
@@ -334,23 +318,6 @@ static void
 peer_transmit (struct GSF_ConnectedPeer *cp);
 
 
-/**
- * Function called by core upon success or failure of our bandwidth 
reservation request.
- *
- * @param cls the `struct GSF_ConnectedPeer` of the peer for which we made the 
request
- * @param peer identifies the peer
- * @param amount set to the amount that was actually reserved or unreserved;
- *               either the full requested amount or zero (no partial 
reservations)
- * @param res_delay if the reservation could not be satisfied (amount was 0), 
how
- *        long should the client wait until re-trying?
- */
-static void
-ats_reserve_callback (void *cls,
-                      const struct GNUNET_PeerIdentity *peer,
-                      int32_t amount,
-                      struct GNUNET_TIME_Relative res_delay);
-
-
 /**
  * If ready (bandwidth reserved), try to schedule transmission via
  * core for the given handle.
@@ -367,32 +334,6 @@ schedule_transmission (struct GSF_PeerTransmitHandle *pth)
   GNUNET_assert (0 != cp->ppd.pid);
   GNUNET_PEER_resolve (cp->ppd.pid, &target);
 
-  if (0 != cp->inc_preference)
-  {
-    GNUNET_ATS_performance_change_preference (GSF_ats,
-                                              &target,
-                                              GNUNET_ATS_PREFERENCE_BANDWIDTH,
-                                              (double) cp->inc_preference,
-                                              GNUNET_ATS_PREFERENCE_END);
-    cp->inc_preference = 0;
-  }
-
-  if ((GNUNET_YES == pth->is_query) &&
-      (GNUNET_YES != pth->was_reserved))
-  {
-    /* query, need reservation */
-    if (GNUNET_YES != cp->did_reserve)
-      return;                   /* not ready */
-    cp->did_reserve = GNUNET_NO;
-    /* reservation already done! */
-    pth->was_reserved = GNUNET_YES;
-    cp->rc = GNUNET_ATS_reserve_bandwidth (GSF_ats,
-                                           &target,
-                                           DBLOCK_SIZE,
-                                           &ats_reserve_callback,
-                                           cp);
-    return;
-  }
   peer_transmit (cp);
 }
 
@@ -438,69 +379,6 @@ peer_transmit (struct GSF_ConnectedPeer *cp)
 }
 
 
-/**
- * (re)try to reserve bandwidth from the given peer.
- *
- * @param cls the `struct GSF_ConnectedPeer` to reserve from
- */
-static void
-retry_reservation (void *cls)
-{
-  struct GSF_ConnectedPeer *cp = cls;
-  struct GNUNET_PeerIdentity target;
-
-  GNUNET_PEER_resolve (cp->ppd.pid, &target);
-  cp->rc_delay_task = NULL;
-  cp->rc =
-    GNUNET_ATS_reserve_bandwidth (GSF_ats,
-                                  &target,
-                                  DBLOCK_SIZE,
-                                  &ats_reserve_callback, cp);
-}
-
-
-/**
- * Function called by core upon success or failure of our bandwidth 
reservation request.
- *
- * @param cls the `struct GSF_ConnectedPeer` of the peer for which we made the 
request
- * @param peer identifies the peer
- * @param amount set to the amount that was actually reserved or unreserved;
- *               either the full requested amount or zero (no partial 
reservations)
- * @param res_delay if the reservation could not be satisfied (amount was 0), 
how
- *        long should the client wait until re-trying?
- */
-static void
-ats_reserve_callback (void *cls,
-                      const struct GNUNET_PeerIdentity *peer,
-                      int32_t amount,
-                      struct GNUNET_TIME_Relative res_delay)
-{
-  struct GSF_ConnectedPeer *cp = cls;
-  struct GSF_PeerTransmitHandle *pth;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Reserved %d bytes / need to wait %s for reservation\n",
-              (int) amount,
-              GNUNET_STRINGS_relative_time_to_string (res_delay, GNUNET_YES));
-  cp->rc = NULL;
-  if (0 == amount)
-  {
-    cp->rc_delay_task =
-      GNUNET_SCHEDULER_add_delayed (res_delay,
-                                    &retry_reservation,
-                                    cp);
-    return;
-  }
-  cp->did_reserve = GNUNET_YES;
-  pth = cp->pth_head;
-  if (NULL != pth)
-  {
-    /* reservation success, try transmission now! */
-    peer_transmit (cp);
-  }
-}
-
-
 /**
  * Function called by PEERSTORE with peer respect record
  *
@@ -584,11 +462,7 @@ GSF_peer_connect_handler (void *cls,
   cp->ppd.peer = peer;
   cp->mq = mq;
   cp->ppd.transmission_delay = GNUNET_LOAD_value_init (GNUNET_TIME_UNIT_ZERO);
-  cp->rc =
-    GNUNET_ATS_reserve_bandwidth (GSF_ats,
-                                  peer,
-                                  DBLOCK_SIZE,
-                                  &ats_reserve_callback, cp);
+
   cp->request_map = GNUNET_CONTAINER_multihashmap_create (128,
                                                           GNUNET_YES);
   GNUNET_break (GNUNET_OK ==
@@ -1499,16 +1373,6 @@ GSF_peer_disconnect_handler (void *cls,
     GNUNET_PEERSTORE_iterate_cancel (cp->respect_iterate_req);
     cp->respect_iterate_req = NULL;
   }
-  if (NULL != cp->rc)
-  {
-    GNUNET_ATS_reserve_bandwidth_cancel (cp->rc);
-    cp->rc = NULL;
-  }
-  if (NULL != cp->rc_delay_task)
-  {
-    GNUNET_SCHEDULER_cancel (cp->rc_delay_task);
-    cp->rc_delay_task = NULL;
-  }
   GNUNET_CONTAINER_multihashmap_iterate (cp->request_map,
                                          &cancel_pending_request,
                                          cp);
diff --git a/src/hostlist/gnunet-daemon-hostlist_client.c 
b/src/hostlist/gnunet-daemon-hostlist_client.c
index 399a7dc39..2caf61a1b 100644
--- a/src/hostlist/gnunet-daemon-hostlist_client.c
+++ b/src/hostlist/gnunet-daemon-hostlist_client.c
@@ -27,7 +27,6 @@
 #include "gnunet-daemon-hostlist_client.h"
 #include "gnunet_hello_lib.h"
 #include "gnunet_statistics_service.h"
-#include "gnunet_transport_service.h"
 #include "gnunet_peerinfo_service.h"
 #include "gnunet-daemon-hostlist.h"
 /* Just included for the right curl.h */
diff --git a/src/include/gnunet_cadet_service.h 
b/src/include/gnunet_cadet_service.h
index acc7bb330..ab53d2bd8 100644
--- a/src/include/gnunet_cadet_service.h
+++ b/src/include/gnunet_cadet_service.h
@@ -47,7 +47,6 @@ extern "C" {
 
 
 #include "gnunet_util_lib.h"
-#include "gnunet_transport_service.h"
 
 /**
  * Version number of GNUnet-cadet API.
@@ -636,4 +635,3 @@ GNUNET_CADET_list_tunnels_cancel (struct 
GNUNET_CADET_ListTunnels *lt);
 /** @} */ /* end of group addition */
 
 /* end of gnunet_cadet_service.h */
-
diff --git a/src/include/gnunet_core_service.h 
b/src/include/gnunet_core_service.h
index 4e188df87..c3069be81 100644
--- a/src/include/gnunet_core_service.h
+++ b/src/include/gnunet_core_service.h
@@ -45,7 +45,6 @@ extern "C" {
 
 
 #include "gnunet_util_lib.h"
-#include "gnunet_transport_service.h"
 
 /**
  * Version number of GNUnet-core API.
diff --git a/src/rps/gnunet-service-rps.c b/src/rps/gnunet-service-rps.c
index be9324af9..fc11591a0 100644
--- a/src/rps/gnunet-service-rps.c
+++ b/src/rps/gnunet-service-rps.c
@@ -36,6 +36,7 @@
 #include "gnunet-service-rps_sampler.h"
 #include "gnunet-service-rps_custommap.h"
 #include "gnunet-service-rps_view.h"
+#include "gnunet_constants.h"
 
 #include <math.h>
 #include <inttypes.h>
diff --git a/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c 
b/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
index c43a7e854..b8bac0803 100644
--- a/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
+++ b/src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
@@ -35,6 +35,7 @@
 #include "gnunet_seti_service.h"
 #include "scalarproduct.h"
 #include "gnunet-service-scalarproduct-ecc.h"
+#include "gnunet_constants.h"
 
 #define LOG(kind, ...) \
   GNUNET_log_from (kind, "scalarproduct-alice", __VA_ARGS__)
diff --git a/src/scalarproduct/gnunet-service-scalarproduct_alice.c 
b/src/scalarproduct/gnunet-service-scalarproduct_alice.c
index 59c3c6f6c..0149f45ba 100644
--- a/src/scalarproduct/gnunet-service-scalarproduct_alice.c
+++ b/src/scalarproduct/gnunet-service-scalarproduct_alice.c
@@ -35,6 +35,7 @@
 #include "gnunet_seti_service.h"
 #include "scalarproduct.h"
 #include "gnunet-service-scalarproduct.h"
+#include "gnunet_constants.h"
 
 #define LOG(kind, ...) \
   GNUNET_log_from (kind, "scalarproduct-alice", __VA_ARGS__)
diff --git a/src/scalarproduct/gnunet-service-scalarproduct_bob.c 
b/src/scalarproduct/gnunet-service-scalarproduct_bob.c
index 15ad3038e..65e732675 100644
--- a/src/scalarproduct/gnunet-service-scalarproduct_bob.c
+++ b/src/scalarproduct/gnunet-service-scalarproduct_bob.c
@@ -35,6 +35,7 @@
 #include "gnunet_seti_service.h"
 #include "scalarproduct.h"
 #include "gnunet-service-scalarproduct.h"
+#include "gnunet_constants.h"
 
 #define LOG(kind, ...) GNUNET_log_from (kind, "scalarproduct-bob", __VA_ARGS__)
 
diff --git a/src/topology/Makefile.am b/src/topology/Makefile.am
index e5920116b..682f052dd 100644
--- a/src/topology/Makefile.am
+++ b/src/topology/Makefile.am
@@ -36,6 +36,7 @@ gnunet_daemon_topology_LDADD = \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/transport/libgnunettransport.la \
+  $(top_builddir)/src/transport/libgnunettransportapplication.la \
   $(top_builddir)/src/ats/libgnunetats.la \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/util/libgnunetutil.la \
diff --git a/src/topology/gnunet-daemon-topology.c 
b/src/topology/gnunet-daemon-topology.c
index b380c0bd4..b43238923 100644
--- a/src/topology/gnunet-daemon-topology.c
+++ b/src/topology/gnunet-daemon-topology.c
@@ -44,10 +44,13 @@
 #include "gnunet_protocols.h"
 #include "gnunet_peerinfo_service.h"
 #include "gnunet_statistics_service.h"
-#include "gnunet_transport_service.h"
+#include "gnunet_transport_application_service.h"
 #include "gnunet_ats_service.h"
 
 
+// TODO Remove all occurrencies of friends_only and minimum_friend_count.
+
+
 /**
  * At what frequency do we sent HELLOs to a peer?
  */
@@ -105,9 +108,9 @@ struct Peer
   struct GNUNET_SCHEDULER_Task *hello_delay_task;
 
   /**
-   * Handle for our connectivity suggestion for this peer.
+   * Transport suggest handle.
    */
-  struct GNUNET_ATS_ConnectivitySuggestHandle *sh;
+  struct GNUNET_TRANSPORT_ApplicationSuggestHandle *ash;
 
   /**
    * How much would we like to connect to this peer?
@@ -143,9 +146,9 @@ static struct GNUNET_CORE_Handle *handle;
 static struct GNUNET_PEERINFO_Handle *pi;
 
 /**
- * Handle to the ATS service.
- */
-static struct GNUNET_ATS_ConnectivityHandle *ats;
+   * Handle to Transport service.
+   */
+struct GNUNET_TRANSPORT_ApplicationHandle *transport;
 
 /**
  * Identity of this peer.
@@ -164,11 +167,6 @@ static struct GNUNET_CONTAINER_MultiPeerMap *peers;
  */
 static struct GNUNET_STATISTICS_Handle *stats;
 
-/**
- * Blacklist (NULL if we have none).
- */
-static struct GNUNET_TRANSPORT_Blacklist *blacklist;
-
 /**
  * Task scheduled to asynchronously reconsider adding/removing
  * peer connectivity suggestions.
@@ -232,21 +230,6 @@ blacklist_check (void *cls, const struct 
GNUNET_PeerIdentity *pid)
 }
 
 
-/**
- * Whitelist all peers that we blacklisted; we've passed
- * the minimum number of friends.
- */
-static void
-whitelist_peers ()
-{
-  if (NULL != blacklist)
-  {
-    GNUNET_TRANSPORT_blacklist_cancel (blacklist);
-    blacklist = NULL;
-  }
-}
-
-
 /**
  * Free all resources associated with the given peer.
  *
@@ -268,10 +251,10 @@ free_peer (void *cls, const struct GNUNET_PeerIdentity 
*pid, void *value)
     GNUNET_SCHEDULER_cancel (pos->hello_delay_task);
     pos->hello_delay_task = NULL;
   }
-  if (NULL != pos->sh)
+  if (NULL != pos->ash)
   {
-    GNUNET_ATS_connectivity_suggest_cancel (pos->sh);
-    pos->sh = NULL;
+    GNUNET_TRANSPORT_application_suggest_cancel (pos->ash);
+    pos->ash = NULL;
   }
   if (NULL != pos->hello)
   {
@@ -298,6 +281,7 @@ static void
 attempt_connect (struct Peer *pos)
 {
   uint32_t strength;
+  struct GNUNET_BANDWIDTH_Value32NBO bw;
 
   if (0 == GNUNET_memcmp (&my_identity, &pos->pid))
     return; /* This is myself, nothing to do. */
@@ -318,10 +302,10 @@ attempt_connect (struct Peer *pos)
     strength *= 2; /* existing connections preferred */
   if (strength == pos->strength)
     return; /* nothing to do */
-  if (NULL != pos->sh)
+  if (NULL != pos->ash)
   {
-    GNUNET_ATS_connectivity_suggest_cancel (pos->sh);
-    pos->sh = NULL;
+    GNUNET_TRANSPORT_application_suggest_cancel (pos->ash);
+    pos->ash = NULL;
   }
   pos->strength = strength;
   if (0 != strength)
@@ -334,7 +318,10 @@ attempt_connect (struct Peer *pos)
                               gettext_noop ("# connect requests issued to 
ATS"),
                               1,
                               GNUNET_NO);
-    pos->sh = GNUNET_ATS_connectivity_suggest (ats, &pos->pid, strength);
+    pos->ash = GNUNET_TRANSPORT_application_suggest (transport,
+                                                     &pos->pid,
+                                                     
GNUNET_MQ_PRIO_BEST_EFFORT,
+                                                     bw);
   }
 }
 
@@ -592,8 +579,7 @@ connect_notify (void *cls,
   if (pos->is_friend)
   {
     friend_count++;
-    if ((friend_count == minimum_friend_count) && (GNUNET_YES != friends_only))
-      whitelist_peers ();
+
     GNUNET_STATISTICS_set (stats,
                            gettext_noop ("# friends connected"),
                            friend_count,
@@ -683,8 +669,7 @@ disconnect_notify (void *cls,
        (friend_count < minimum_friend_count)) &&
       (NULL == add_task))
     add_task = GNUNET_SCHEDULER_add_now (&add_peer_task, NULL);
-  if ((friend_count < minimum_friend_count) && (NULL == blacklist))
-    blacklist = GNUNET_TRANSPORT_blacklist (cfg, &blacklist_check, NULL);
+
 }
 
 
@@ -1003,24 +988,18 @@ cleaning_task (void *cls)
     GNUNET_CORE_disconnect (handle);
     handle = NULL;
   }
-  whitelist_peers ();
   if (NULL != add_task)
   {
     GNUNET_SCHEDULER_cancel (add_task);
     add_task = NULL;
   }
-  if (NULL != oh)
-  {
-    GNUNET_TRANSPORT_offer_hello_cancel (oh);
-    oh = NULL;
-  }
   GNUNET_CONTAINER_multipeermap_iterate (peers, &free_peer, NULL);
   GNUNET_CONTAINER_multipeermap_destroy (peers);
   peers = NULL;
-  if (NULL != ats)
+  if (NULL != transport)
   {
-    GNUNET_ATS_connectivity_done (ats);
-    ats = NULL;
+    GNUNET_TRANSPORT_application_done (transport);
+    transport = NULL;
   }
   if (NULL != pi)
   {
@@ -1059,14 +1038,8 @@ run (void *cls,
 
   cfg = c;
   stats = GNUNET_STATISTICS_create ("topology", cfg);
-  friends_only =
-    GNUNET_CONFIGURATION_get_value_yesno (cfg, "TOPOLOGY", "FRIENDS-ONLY");
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg,
-                                                          "TOPOLOGY",
-                                                          "MINIMUM-FRIENDS",
-                                                          &opt))
-    opt = 0;
-  minimum_friend_count = (unsigned int) opt;
+
+  minimum_friend_count = 0;
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_number (cfg,
                                              "TOPOLOGY",
@@ -1081,9 +1054,8 @@ run (void *cls,
               "Topology would like %u connections with at least %u friends\n",
               target_connection_count,
               minimum_friend_count);
-  if ((GNUNET_YES == friends_only) || (minimum_friend_count > 0))
-    blacklist = GNUNET_TRANSPORT_blacklist (cfg, &blacklist_check, NULL);
-  ats = GNUNET_ATS_connectivity_init (cfg);
+
+  transport = GNUNET_TRANSPORT_application_init (cfg);
   pi = GNUNET_PEERINFO_connect (cfg);
   handle = GNUNET_CORE_connect (cfg,
                                 NULL,

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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