You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
static void
free_address (struct ATS_Address *addr)
{
- GNUNET_CONTAINER_multipeermap_remove (GSA_addresses,
- &addr->peer,
- addr);
+ GNUNET_assert (GNUNET_YES ==
+ GNUNET_CONTAINER_multipeermap_remove (GSA_addresses,
+ &addr->peer,
+ addr));
update_addresses_stat ();
GAS_plugin_delete_address (addr);
GAS_performance_notify_all_clients (&addr->peer,
addr->addr_len,
GNUNET_NO,
NULL,
+ addr->local_address_info,
GNUNET_BANDWIDTH_ZERO,
GNUNET_BANDWIDTH_ZERO);
GNUNET_free (addr->plugin);
new_address->addr_len,
new_address->active,
&new_address->properties,
+ new_address->local_address_info,
GNUNET_BANDWIDTH_value_init (new_address->assigned_bw_out),
GNUNET_BANDWIDTH_value_init (new_address->assigned_bw_in));
}
aa->addr_len,
aa->active,
prop,
+ aa->local_address_info,
GNUNET_BANDWIDTH_value_init (aa->assigned_bw_out),
GNUNET_BANDWIDTH_value_init (aa->assigned_bw_in));
addr->addr_len,
addr->active,
&addr->properties,
+ addr->local_address_info,
GNUNET_BANDWIDTH_value_init (addr->assigned_bw_out),
GNUNET_BANDWIDTH_value_init (addr->assigned_bw_in));
return GNUNET_OK;
NULL, NULL, NULL, 0,
GNUNET_NO,
NULL,
+ GNUNET_HELLO_ADDRESS_INFO_NONE,
GNUNET_BANDWIDTH_ZERO,
GNUNET_BANDWIDTH_ZERO);
}
* @param plugin_addr_len length of @a plugin_addr
* @param active #GNUNET_YES if this address is actively used
* @param prop performance information
+ * @param local_address_info flags for the address
* @param bandwidth_out current outbound bandwidth assigned to address
* @param bandwidth_in current inbound bandwidth assigned to address
*/
size_t plugin_addr_len,
int active,
const struct GNUNET_ATS_Properties *prop,
+ enum GNUNET_HELLO_AddressInfo local_address_info,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in)
char *addrp;
size_t plugin_name_length;
size_t msize;
+ struct GNUNET_SERVER_NotificationContext **uc;
struct GNUNET_SERVER_NotificationContext *nc;
if (NULL != plugin_name)
msg->plugin_name_length = htons (plugin_name_length);
msg->bandwidth_out = bandwidth_out;
msg->bandwidth_in = bandwidth_in;
- GNUNET_ATS_properties_hton (&msg->properties,
- prop);
+ if (NULL != prop)
+ GNUNET_ATS_properties_hton (&msg->properties,
+ prop);
+ else
+ memset (&msg->properties,
+ 0,
+ sizeof (struct GNUNET_ATS_Properties));
+ msg->address_local_info = htonl ((uint32_t) local_address_info);
addrp = (char *) &msg[1];
if (NULL != plugin_addr)
memcpy (addrp, plugin_addr, plugin_addr_len);
if (NULL != plugin_name)
strcpy (&addrp[plugin_addr_len], plugin_name);
- nc = *GNUNET_SERVER_client_get_user_context (ai->client,
- struct GNUNET_SERVER_NotificationContext *);
- if (NULL == nc)
+ uc = GNUNET_SERVER_client_get_user_context (ai->client,
+ struct GNUNET_SERVER_NotificationContext *);
+ if (NULL == uc)
{
GNUNET_break (0);
return;
}
+ nc = *uc;
GNUNET_SERVER_notification_context_unicast (nc,
ai->client,
&msg->header,
* @param plugin_addr_len length of @a plugin_addr
* @param active is address actively used
* @param prop performance information
+ * @param local_address_info additional local info for the address
* @param bandwidth_out current outbound bandwidth assigned to address
* @param bandwidth_in current inbound bandwidth assigned to address
*/
size_t plugin_addr_len,
int active,
const struct GNUNET_ATS_Properties *prop,
+ enum GNUNET_HELLO_AddressInfo local_address_info,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in)
{
plugin_addr, plugin_addr_len,
active,
prop,
+ local_address_info,
bandwidth_out,
bandwidth_in);
}
NULL, NULL, NULL,
0, GNUNET_NO,
NULL,
+ GNUNET_HELLO_ADDRESS_INFO_NONE,
GNUNET_BANDWIDTH_ZERO,
GNUNET_BANDWIDTH_ZERO);
GNUNET_SERVER_receive_done (client,