psyc: in-order message delivery
[oweals/gnunet.git] / src / ats / gnunet-service-ats_addresses.h
index 8b7a58d523b87fcb8da5299b18192117e85f89dd..aa0b919ea477f8d47f2f4d03161866ea82861415 100644 (file)
@@ -312,6 +312,8 @@ struct ATS_Address
    */
   uint32_t session_id;
 
+  uint32_t local_address_info;
+
   /**
    * Address
    */
@@ -390,6 +392,10 @@ struct ATS_Address
 };
 
 
+/**
+ * Handle for ATS address component
+ */
+struct GAS_Addresses_Handle;
 
 /**
  * Initialize address subsystem. The addresses subsystem manages the addresses
@@ -421,15 +427,21 @@ GAS_addresses_done (struct GAS_Addresses_Handle *handle);
  * @param plugin_name transport plugin name
  * @param plugin_addr plugin address
  * @param plugin_addr_len length of the plugin address
+ * @param local_address_info the local address for the address
  * @param session_id session id, can be 0
  * @param atsi performance information for this address
  * @param atsi_count number of performance information contained
  */
 void
 GAS_addresses_add (struct GAS_Addresses_Handle *handle,
-    const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
-    const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
-    const struct GNUNET_ATS_Information *atsi, uint32_t atsi_count);
+    const struct GNUNET_PeerIdentity *peer,
+    const char *plugin_name,
+    const void *plugin_addr,
+    size_t plugin_addr_len,
+    uint32_t local_address_info,
+    uint32_t session_id,
+    const struct GNUNET_ATS_Information *atsi,
+    uint32_t atsi_count);
 
 /**
  * Notification about active use of an address.
@@ -446,6 +458,7 @@ GAS_addresses_add (struct GAS_Addresses_Handle *handle,
  * @param plugin_name transport plugin name
  * @param plugin_addr plugin address
  * @param plugin_addr_len length of the plugin address
+ * @param local_address_info the local address for the address
  * @param session_id session id, can be 0
  * @param in_use GNUNET_YES if GNUNET_NO
  * @return GNUNET_SYSERR on failure (address unknown ...)
@@ -453,7 +466,9 @@ GAS_addresses_add (struct GAS_Addresses_Handle *handle,
 int
 GAS_addresses_in_use (struct GAS_Addresses_Handle *handle,
     const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
-    const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
+    const void *plugin_addr, size_t plugin_addr_len,
+    uint32_t local_address_info,
+    uint32_t session_id,
     int in_use);
 
 /**
@@ -467,6 +482,7 @@ GAS_addresses_in_use (struct GAS_Addresses_Handle *handle,
  * @param plugin_name transport plugin name
  * @param plugin_addr plugin address
  * @param plugin_addr_len length of the plugin address
+ * @param local_address_info the local address for the address
  * @param session_id session id, can be 0
  * @param atsi performance information for this address
  * @param atsi_count number of performance information contained
@@ -474,7 +490,8 @@ GAS_addresses_in_use (struct GAS_Addresses_Handle *handle,
 void
 GAS_addresses_update (struct GAS_Addresses_Handle *handle,
     const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
-    const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id,
+    const void *plugin_addr, size_t plugin_addr_len,
+    uint32_t local_address_info, uint32_t session_id,
     const struct GNUNET_ATS_Information *atsi, uint32_t atsi_count);
 
 /**
@@ -486,11 +503,13 @@ GAS_addresses_update (struct GAS_Addresses_Handle *handle,
  * @param plugin_addr plugin address
  * @param plugin_addr_len length of the plugin address
  * @param session_id session id, can be 0
+ * @param local_address_info the local address for the address
  */
 void
 GAS_addresses_destroy (struct GAS_Addresses_Handle *handle,
     const struct GNUNET_PeerIdentity *peer, const char *plugin_name,
-    const void *plugin_addr, size_t plugin_addr_len, uint32_t session_id);
+    const void *plugin_addr, size_t plugin_addr_len,
+    uint32_t local_address_info, uint32_t session_id);
 
 /**
  * Remove all addresses