gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r31861 - in gnunet/src: ats include transport


From: gnunet
Subject: [GNUnet-SVN] r31861 - in gnunet/src: ats include transport
Date: Thu, 9 Jan 2014 15:09:29 +0100

Author: wachs
Date: 2014-01-09 15:09:29 +0100 (Thu, 09 Jan 2014)
New Revision: 31861

Modified:
   gnunet/src/ats/ats_api_scheduling.c
   gnunet/src/ats/test_ats_api_performance_list_all_addresses.c
   gnunet/src/ats/test_ats_api_performance_list_all_addresses_active.c
   gnunet/src/ats/test_ats_api_performance_list_peer_addresses.c
   gnunet/src/ats/test_ats_api_performance_monitor.c
   gnunet/src/ats/test_ats_api_performance_monitor_initial_callback.c
   gnunet/src/ats/test_ats_api_scheduling_add_address.c
   gnunet/src/ats/test_ats_api_scheduling_add_address_duplicate.c
   gnunet/src/ats/test_ats_api_scheduling_add_address_inbound.c
   gnunet/src/ats/test_ats_api_scheduling_add_session.c
   gnunet/src/ats/test_ats_api_scheduling_destroy_address.c
   gnunet/src/ats/test_ats_api_scheduling_destroy_address_twice.c
   gnunet/src/ats/test_ats_api_scheduling_destroy_session.c
   gnunet/src/ats/test_ats_api_scheduling_init.c
   gnunet/src/ats/test_ats_simplistic_pref_aging.c
   gnunet/src/ats/test_ats_solver_add_address.c
   gnunet/src/ats/test_ats_solver_add_address_and_request.c
   gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
   gnunet/src/ats/test_ats_solver_convergence.c
   gnunet/src/ats/test_ats_solver_preferences.c
   gnunet/src/ats/test_ats_solver_request_and_add_address.c
   gnunet/src/ats/test_ats_solver_request_and_delete_address.c
   gnunet/src/include/gnunet_ats_service.h
   gnunet/src/transport/gnunet-service-transport.c
   gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
extending ATS api suggest callback with peer id
adding suggest continuation


Modified: gnunet/src/ats/ats_api_scheduling.c
===================================================================
--- gnunet/src/ats/ats_api_scheduling.c 2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/ats_api_scheduling.c 2014-01-09 14:09:29 UTC (rev 31861)
@@ -656,7 +656,9 @@
     return;
   }
 
-  sh->suggest_cb (sh->suggest_cb_cls, &address, s, m->bandwidth_out,
+  sh->suggest_cb (sh->suggest_cb_cls,
+                  (const struct GNUNET_PeerIdentity *) &m->peer,
+                  &address, s, m->bandwidth_out,
                   m->bandwidth_in, atsi, ats_count);
 
   GNUNET_CLIENT_receive (sh->client, &process_ats_message, sh,
@@ -1055,16 +1057,23 @@
 }
 
 /**
- * We would like to establish a new connection with a peer.  ATS
- * should suggest a good address to begin with.
+ * We would like to receive address suggestions for a peer. ATS will
+ * respond with a call to the continuation immediately containing an address or
+ * no address if none is available. ATS can suggest more addresses until we 
call
+ * #GNUNET_ATS_suggest_address_cancel.
  *
+ *
  * @param sh handle
  * @param peer identity of the peer we need an address for
+ * @param cont the continuation to call with the address
+ * @param cont_cls the cls for the continuation
  * @return suggest handle
  */
 struct GNUNET_ATS_SuggestHandle *
 GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh,
-                            const struct GNUNET_PeerIdentity *peer)
+                            const struct GNUNET_PeerIdentity *peer,
+                            GNUNET_ATS_AddressSuggestionCallback cont,
+                            void *cont_cls)
 {
   struct PendingMessage *p;
   struct RequestAddressMessage *m;

Modified: gnunet/src/ats/test_ats_api_performance_list_all_addresses.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_list_all_addresses.c        
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_list_all_addresses.c        
2014-01-09 14:09:29 UTC (rev 31861)
@@ -146,7 +146,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_performance_list_all_addresses_active.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_list_all_addresses_active.c 
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_list_all_addresses_active.c 
2014-01-09 14:09:29 UTC (rev 31861)
@@ -154,7 +154,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_performance_list_peer_addresses.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_list_peer_addresses.c       
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_list_peer_addresses.c       
2014-01-09 14:09:29 UTC (rev 31861)
@@ -155,7 +155,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_performance_monitor.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_monitor.c   2014-01-09 13:58:37 UTC 
(rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_monitor.c   2014-01-09 14:09:29 UTC 
(rev 31861)
@@ -144,12 +144,15 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
                     const struct GNUNET_ATS_Information *atsi,
                     uint32_t ats_count)
+
 {
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Did not expect suggestion 
callback!\n");
   GNUNET_SCHEDULER_add_now (&end_badly, NULL);

Modified: gnunet/src/ats/test_ats_api_performance_monitor_initial_callback.c
===================================================================
--- gnunet/src/ats/test_ats_api_performance_monitor_initial_callback.c  
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_performance_monitor_initial_callback.c  
2014-01-09 14:09:29 UTC (rev 31861)
@@ -152,12 +152,15 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
                     const struct GNUNET_ATS_Information *atsi,
                     uint32_t ats_count)
+
 {
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Did not expect suggestion 
callback!\n");
   GNUNET_SCHEDULER_add_now (&end_badly, NULL);

Modified: gnunet/src/ats/test_ats_api_scheduling_add_address.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_add_address.c        2014-01-09 
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_add_address.c        2014-01-09 
14:09:29 UTC (rev 31861)
@@ -136,7 +136,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_scheduling_add_address_duplicate.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_add_address_duplicate.c      
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_add_address_duplicate.c      
2014-01-09 14:09:29 UTC (rev 31861)
@@ -147,12 +147,15 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
                     const struct GNUNET_ATS_Information *atsi,
                     uint32_t ats_count)
+
 {
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Did not expect suggestion 
callback!\n");
   GNUNET_SCHEDULER_add_now (&end_badly, NULL);

Modified: gnunet/src/ats/test_ats_api_scheduling_add_address_inbound.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_add_address_inbound.c        
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_add_address_inbound.c        
2014-01-09 14:09:29 UTC (rev 31861)
@@ -142,7 +142,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_scheduling_add_session.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_add_session.c        2014-01-09 
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_add_session.c        2014-01-09 
14:09:29 UTC (rev 31861)
@@ -149,7 +149,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_scheduling_destroy_address.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_destroy_address.c    2014-01-09 
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_destroy_address.c    2014-01-09 
14:09:29 UTC (rev 31861)
@@ -147,7 +147,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_scheduling_destroy_address_twice.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_destroy_address_twice.c      
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_destroy_address_twice.c      
2014-01-09 14:09:29 UTC (rev 31861)
@@ -149,7 +149,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_scheduling_destroy_session.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_destroy_session.c    2014-01-09 
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_destroy_session.c    2014-01-09 
14:09:29 UTC (rev 31861)
@@ -153,7 +153,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_api_scheduling_init.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_init.c       2014-01-09 13:58:37 UTC 
(rev 31860)
+++ gnunet/src/ats/test_ats_api_scheduling_init.c       2014-01-09 14:09:29 UTC 
(rev 31861)
@@ -116,7 +116,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_simplistic_pref_aging.c
===================================================================
--- gnunet/src/ats/test_ats_simplistic_pref_aging.c     2014-01-09 13:58:37 UTC 
(rev 31860)
+++ gnunet/src/ats/test_ats_simplistic_pref_aging.c     2014-01-09 14:09:29 UTC 
(rev 31861)
@@ -144,7 +144,9 @@
 
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_solver_add_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_add_address.c        2014-01-09 13:58:37 UTC 
(rev 31860)
+++ gnunet/src/ats/test_ats_solver_add_address.c        2014-01-09 14:09:29 UTC 
(rev 31861)
@@ -129,7 +129,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_solver_add_address_and_request.c
===================================================================
--- gnunet/src/ats/test_ats_solver_add_address_and_request.c    2014-01-09 
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_solver_add_address_and_request.c    2014-01-09 
14:09:29 UTC (rev 31861)
@@ -128,7 +128,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
@@ -157,7 +159,7 @@
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n",
       subsystem,name, value);
-  GNUNET_ATS_suggest_address (sched_ats, &p.id);
+  GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
   return GNUNET_OK;
 }
 

Modified: gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c   
2014-01-09 13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c   
2014-01-09 14:09:29 UTC (rev 31861)
@@ -167,7 +167,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
@@ -288,7 +290,7 @@
     GNUNET_log (GNUNET_ERROR_TYPE_INFO, "All addresses added, 
requesting....\n");
     /* We have 2 addresses, so we can request */
     addresses_added = GNUNET_YES;
-    GNUNET_ATS_suggest_address (sched_ats, &p.id);
+    GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
   }
   return GNUNET_OK;
 }

Modified: gnunet/src/ats/test_ats_solver_convergence.c
===================================================================
--- gnunet/src/ats/test_ats_solver_convergence.c        2014-01-09 13:58:37 UTC 
(rev 31860)
+++ gnunet/src/ats/test_ats_solver_convergence.c        2014-01-09 14:09:29 UTC 
(rev 31861)
@@ -152,7 +152,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,

Modified: gnunet/src/ats/test_ats_solver_preferences.c
===================================================================
--- gnunet/src/ats/test_ats_solver_preferences.c        2014-01-09 13:58:37 UTC 
(rev 31860)
+++ gnunet/src/ats/test_ats_solver_preferences.c        2014-01-09 14:09:29 UTC 
(rev 31861)
@@ -150,10 +150,14 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
-    struct Session *session, struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
-    struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
-    const struct GNUNET_ATS_Information *atsi, uint32_t ats_count)
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
+                    struct Session *session,
+                    struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
+                    struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
+                    const struct GNUNET_ATS_Information *atsi,
+                    uint32_t ats_count)
 {
   int c;
   double pref_val;
@@ -249,7 +253,7 @@
   /* Adding address */
   GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_session,
       test_ats_info, test_ats_count);
-  GNUNET_ATS_suggest_address(sched_ats, &test_hello_address.peer);
+  GNUNET_ATS_suggest_address(sched_ats, &test_hello_address.peer, NULL, NULL);
 }
 
 int

Modified: gnunet/src/ats/test_ats_solver_request_and_add_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_request_and_add_address.c    2014-01-09 
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_solver_request_and_add_address.c    2014-01-09 
14:09:29 UTC (rev 31861)
@@ -128,7 +128,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
@@ -199,7 +201,7 @@
   test_hello_address.address_length = test_addr.addr_len;
 
   /* Request */
-  GNUNET_ATS_suggest_address (sched_ats, &p.id);
+  GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
 
 
   /* Adding address */

Modified: gnunet/src/ats/test_ats_solver_request_and_delete_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_request_and_delete_address.c 2014-01-09 
13:58:37 UTC (rev 31860)
+++ gnunet/src/ats/test_ats_solver_request_and_delete_address.c 2014-01-09 
14:09:29 UTC (rev 31861)
@@ -131,7 +131,9 @@
 }
 
 static void
-address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+address_suggest_cb (void *cls,
+                    const struct GNUNET_PeerIdentity *peer,
+                    const struct GNUNET_HELLO_Address *address,
                     struct Session *session,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
                     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
@@ -184,7 +186,7 @@
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS statistics: `%s' `%s' %llu\n",
       subsystem,name, value);
   if (GNUNET_NO == address_deleted)
-    GNUNET_ATS_suggest_address (sched_ats, &p.id);
+    GNUNET_ATS_suggest_address (sched_ats, &p.id, NULL, NULL);
   return GNUNET_OK;
 }
 

Modified: gnunet/src/include/gnunet_ats_service.h
===================================================================
--- gnunet/src/include/gnunet_ats_service.h     2014-01-09 13:58:37 UTC (rev 
31860)
+++ gnunet/src/include/gnunet_ats_service.h     2014-01-09 14:09:29 UTC (rev 
31861)
@@ -543,6 +543,11 @@
  * Signature of a function called by ATS with the current bandwidth
  * and address preferences as determined by ATS.
  *
+ * If an address is available immediately the address will be included. If no
+ * address can be suggested, address, session, bandwidth and ATS information 
will
+ * be NULL/0. ATS will suggest an address as soon as it can provide such an
+ * address
+ *
  * @param cls closure
  * @param address suggested address (including peer identity of the peer)
  * @param session session to use
@@ -553,11 +558,13 @@
  */
 typedef void
 (*GNUNET_ATS_AddressSuggestionCallback) (void *cls,
+    const struct GNUNET_PeerIdentity *peer,
     const struct GNUNET_HELLO_Address *address, struct Session *session,
     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
     struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
     const struct GNUNET_ATS_Information *ats, uint32_t ats_count);
 
+
 /**
  * Initialize the ATS subsystem.
  *
@@ -596,11 +603,15 @@
  *
  * @param sh handle
  * @param peer identity of the peer we need an address for
+ * @param cont the continuation to indicate success to call with the address
+ * @param cont_cls the cls for the continuation
  * @return suggestion handle
  */
 struct GNUNET_ATS_SuggestHandle *
 GNUNET_ATS_suggest_address (struct GNUNET_ATS_SchedulingHandle *sh,
-                            const struct GNUNET_PeerIdentity *peer);
+                            const struct GNUNET_PeerIdentity *peer,
+                            GNUNET_ATS_AddressSuggestionCallback cont,
+                            void *cont_cls);
 
 
 /**

Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2014-01-09 13:58:37 UTC 
(rev 31860)
+++ gnunet/src/transport/gnunet-service-transport.c     2014-01-09 14:09:29 UTC 
(rev 31861)
@@ -754,6 +754,7 @@
  */
 static void
 ats_request_address_change (void *cls,
+                            const struct GNUNET_PeerIdentity *peer,
                             const struct GNUNET_HELLO_Address *address,
                             struct Session *session,
                             struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
@@ -773,6 +774,7 @@
     GST_neighbours_force_disconnect (&address->peer);
     return;
   }
+
   GST_neighbours_switch_to_address (&address->peer, address, session, ats,
                                     ats_count, bandwidth_in,
                                     bandwidth_out);

Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2014-01-09 
13:58:37 UTC (rev 31860)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2014-01-09 
14:09:29 UTC (rev 31861)
@@ -1742,6 +1742,18 @@
 }
 
 
+static void
+address_suggest_cont (void *cls,
+    const struct GNUNET_PeerIdentity *peer,
+    const struct GNUNET_HELLO_Address *address, struct Session *session,
+    struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
+    struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
+    const struct GNUNET_ATS_Information *ats, uint32_t ats_count)
+{
+
+}
+
+
 /**
  * Try to create a connection to the given target (eventually).
  *
@@ -1814,7 +1826,7 @@
   set_state_and_timeout (n, GNUNET_TRANSPORT_INIT_ATS, 
GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT));
 
   GNUNET_ATS_reset_backoff (GST_ats, target);
-  n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, target);
+  n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, target, 
&address_suggest_cont, n);
 }
 
 
@@ -1923,7 +1935,7 @@
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Suggesting address for peer %s to ATS\n",
                 GNUNET_i2s (peer));
-    n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, peer);
+    n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, peer, 
&address_suggest_cont, n);
     break;
   case GNUNET_TRANSPORT_CONNECT_RECV_ATS:
     /* waiting on ATS suggestion, don't care about blacklist */
@@ -2214,7 +2226,6 @@
     n = setup_neighbour (peer);
     set_state (n, GNUNET_TRANSPORT_CONNECT_RECV_ATS);
     GNUNET_ATS_reset_backoff (GST_ats, peer);
-    n->suggest_handle = GNUNET_ATS_suggest_address (GST_ats, peer);
     break;
   case GNUNET_TRANSPORT_DISCONNECT_FINISHED:
     /* should not be possible */




reply via email to

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