/*
This file is part of GNUnet.
- Copyright (C) 2010-2015 GNUnet e.V.
+ Copyright (C) 2010-2016 GNUnet e.V.
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
+ GNUnet is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
GNUnet is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
- 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ SPDX-License-Identifier: AGPL3.0-or-later
*/
/**
* @file ats/ats_api_connectivity.c
*/
struct GNUNET_CONTAINER_MultiPeerMap *sug_requests;
- /**
- * Connection to ATS service.
- */
- struct GNUNET_CLIENT_Connection *client;
-
/**
* Message queue for sending requests to the ATS service.
*/
GNUNET_MQ_destroy (ch->mq);
ch->mq = NULL;
}
- if (NULL != ch->client)
- {
- GNUNET_CLIENT_disconnect (ch->client);
- ch->client = NULL;
- }
ch->backoff = GNUNET_TIME_STD_BACKOFF (ch->backoff);
ch->task = GNUNET_SCHEDULER_add_delayed (ch->backoff,
&reconnect_task,
struct GNUNET_MQ_Envelope *ev;
struct ClientStartMessage *init;
- GNUNET_assert (NULL == ch->client);
- ch->client = GNUNET_CLIENT_connect ("ats", ch->cfg);
- if (NULL == ch->client)
+ GNUNET_assert (NULL == ch->mq);
+ ch->mq = GNUNET_CLIENT_connect (ch->cfg,
+ "ats",
+ handlers,
+ &error_handler,
+ ch);
+ if (NULL == ch->mq)
{
force_reconnect (ch);
return;
}
- ch->mq = GNUNET_MQ_queue_for_connection_client (ch->client,
- handlers,
- &error_handler,
- ch);
ev = GNUNET_MQ_msg (init,
GNUNET_MESSAGE_TYPE_ATS_START);
init->start_flag = htonl (START_FLAG_CONNECTION_SUGGESTION);
GNUNET_MQ_destroy (ch->mq);
ch->mq = NULL;
}
- if (NULL != ch->client)
- {
- GNUNET_CLIENT_disconnect (ch->client);
- ch->client = NULL;
- }
if (NULL != ch->task)
{
GNUNET_SCHEDULER_cancel (ch->task);
{
struct GNUNET_ATS_ConnectivitySuggestHandle *s;
- LOG (GNUNET_ERROR_TYPE_DEBUG,
- "Requesting ATS to suggest address for `%s'\n",
- GNUNET_i2s (peer));
s = GNUNET_new (struct GNUNET_ATS_ConnectivitySuggestHandle);
s->ch = ch;
s->id = *peer;
s,
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY))
{
- GNUNET_break (0);
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Not requesting ATS to suggest address for `%s', request already pending\n",
+ GNUNET_i2s (peer));
+ GNUNET_free (s);
return NULL;
}
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Requesting ATS to suggest address for `%s'\n",
+ GNUNET_i2s (peer));
if (NULL == ch->mq)
return s;
(void) transmit_suggestion (ch,
GNUNET_free (sh);
return;
}
- ev = GNUNET_MQ_msg (m, GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS_CANCEL);
+ ev = GNUNET_MQ_msg (m,
+ GNUNET_MESSAGE_TYPE_ATS_REQUEST_ADDRESS_CANCEL);
m->strength = htonl (0);
m->peer = sh->id;
GNUNET_MQ_send (ch->mq, ev);