#include "gnunet_statistics_service.h"
#include "gnunet_transport_service.h"
#include "gnunet_transport_plugin.h"
+#include "gnunet-service-transport.h"
#include "transport.h"
#include "gnunet_util_lib.h"
GST_neighbours_start (void *cls,
NotifyConnect connect_cb,
GNUNET_TRANSPORT_NotifyDisconnect disconnect_cb,
- GNUNET_TRANSPORT_PeerIterateCallback peer_address_cb,
+ GNUNET_TRANSPORT_NeighbourChangeCallback peer_address_cb,
unsigned int max_fds);
/**
* Keep the connection to the given neighbour alive longer,
- * we received a KEEPALIVE (or equivalent).
+ * we received a KEEPALIVE (or equivalent); send a response.
*
- * @param neighbour neighbour to keep alive
+ * @param neighbour neighbour to keep alive (by sending keep alive response)
+ * @param m the keep alive message containing the nonce to respond to
*/
void
-GST_neighbours_keepalive (const struct GNUNET_PeerIdentity *neighbour);
+GST_neighbours_keepalive (const struct GNUNET_PeerIdentity *neighbour,
+ const struct GNUNET_MessageHeader *m);
/**
- * We received a KEEP_ALIVE_RESPONSE message and use this to calculate latency
- * to this peer
+ * We received a KEEP_ALIVE_RESPONSE message and use this to calculate
+ * latency to this peer. Pass the updated information (existing ats
+ * plus calculated latency) to ATS.
*
* @param neighbour neighbour to keep alive
+ * @param m the message containing the keep alive response
*/
void
-GST_neighbours_keepalive_response (const struct GNUNET_PeerIdentity *neighbour);
+GST_neighbours_keepalive_response (const struct GNUNET_PeerIdentity *neighbour,
+ const struct GNUNET_MessageHeader *m);
/**
/**
- * Function called for each connected neighbour.
+ * Function called for each neighbour.
*
* @param cls closure
* @param neighbour identity of the neighbour
* @param address the address (or NULL)
+ * @param state current state the peer is in
+ * @param state_timeout timeout for this state
* @param bandwidth_in inbound quota in NBO
* @param bandwidth_out outbound quota in NBO
*/
typedef void (*GST_NeighbourIterator) (void *cls,
- const struct GNUNET_PeerIdentity *
- neighbour,
- const struct GNUNET_HELLO_Address *
- address,
+ const struct GNUNET_PeerIdentity *neighbour,
+ const struct GNUNET_HELLO_Address *address,
+ enum GNUNET_TRANSPORT_PeerState state,
+ struct GNUNET_TIME_Absolute state_timeout,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out);