+static void
+bandwidth_changed_cb (struct ATS_Address *address)
+{
+ struct GAS_Addresses_Suggestion_Requests *cur;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Bandwidth assignment changed for peer %s \n", GNUNET_i2s(&address->peer));
+ struct GNUNET_ATS_Information *ats;
+ unsigned int ats_count;
+
+ cur = handle->r_head;
+ while (NULL != cur)
+ {
+ if (0 == memcmp (&address->peer, &cur->id, sizeof (cur->id)))
+ break; /* we have an address request pending*/
+ cur = cur->next;
+ }
+ if (NULL == cur)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Nobody is interested in peer `%s' :(\n",GNUNET_i2s (&address->peer));
+ return;
+ }
+
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Sending bandwidth update for peer `%s'\n",GNUNET_i2s (&address->peer));
+
+ ats_count = assemble_ats_information (address, &ats);
+ GAS_scheduling_transmit_address_suggestion (&address->peer,
+ address->plugin,
+ address->addr, address->addr_len,
+ address->session_id,
+ ats, ats_count,
+ address->assigned_bw_out,
+ address->assigned_bw_in);
+ GNUNET_free (ats);
+}
+