/** * Transmit our HELLO message to the given (connected) neighbour. * * @param cls the 'HELLO' message * @param peer identity of the peer * @param address the address * @param state current state this peer is in * @param state_timeout timeout for the current state of the peer * @param bandwidth_in inbound quota in NBO * @param bandwidth_out outbound quota in NBO */ static void transmit_our_hello (void *cls, const struct GNUNET_PeerIdentity *peer, 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) { const struct GNUNET_MessageHeader *hello = cls; if (0 == memcmp (peer, &GST_my_identity, sizeof (struct GNUNET_PeerIdentity))) return; /* not to ourselves */ if (GNUNET_NO == GST_neighbours_test_connected (peer)) return; GST_neighbours_send (peer, hello, ntohs (hello->size), hello_expiration, NULL, NULL); }
/** * Transmit our HELLO message to the given (connected) neighbour. * * @param cls the 'HELLO' message * @param target a connected neighbour * @param ats performance information (unused) * @param ats_count number of records in ats (unused) * @param address the address */ static void transmit_our_hello (void *cls, const struct GNUNET_PeerIdentity *target, const struct GNUNET_ATS_Information *ats, uint32_t ats_count, const struct GNUNET_HELLO_Address *address) { const struct GNUNET_MessageHeader *hello = cls; GST_neighbours_send (target, (const char *) hello, ntohs (hello->size), GNUNET_CONSTANTS_HELLO_ADDRESS_EXPIRATION, NULL, NULL); }