* @param receiver intended receiver
* @param success whether it worked or not
*/
-static void
+void
transmit_send_continuation (void *cls,
const struct GNUNET_PeerIdentity *receiver,
int success)
n->is_active = mq;
mq->n = n;
-
ret =
papi->send (papi->cls, &n->id, mq->message_buf, mq->message_buf_size,
0 /* priority -- remove from plugin API? */ ,
GNUNET_assert (neighbours != NULL);
+#if DEBUG_TRANSPORT
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trying to connect to peer `%s'\n",
+ GNUNET_i2s (target));
+#endif
+
GNUNET_assert (0 !=
memcmp (target, &GST_my_identity,
sizeof (struct GNUNET_PeerIdentity)));
return; /* already connected */
if (n == NULL)
{
+#if DEBUG_TRANSPORT
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Unknown peer `%s', creating new neighbour\n",
+ GNUNET_i2s (target));
+#endif
n = GNUNET_malloc (sizeof (struct NeighbourMapEntry));
n->id = *target;
+ GNUNET_array_grow (n->ats, n->ats_count, 1);
+ n->ats[0].type = htonl (GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR);;
+ n->ats[0].value = htonl (0);
GNUNET_BANDWIDTH_tracker_init (&n->in_tracker,
GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT,
MAX_BANDWIDTH_CARRY_S);
}
if (n->asc != NULL)
return; /* already trying */
+#if DEBUG_TRANSPORT
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Asking ATS for suggested address to connect to peer `%s'\n",
+ GNUNET_i2s (target));
+#endif
n->asc =
GNUNET_ATS_suggest_address (GST_ats, target, &try_connect_using_address,
n);
cont (cont_cls, GNUNET_SYSERR);
return;
}
+
GNUNET_assert (msg_size >= sizeof (struct GNUNET_MessageHeader));
GNUNET_STATISTICS_update (GST_stats,
gettext_noop
if (GNUNET_YES != n->is_connected)
return GNUNET_OK;
+
GNUNET_assert (n->ats_count > 0);
- ic->cb (ic->cb_cls, &n->id, n->ats, n->ats_count - 1);
+ ic->cb (ic->cb_cls, &n->id, n->ats, n->ats_count);
return GNUNET_OK;
}
}
ve = find_validation_entry (&public_key, &pid, tname, addr, addrlen);
ve->valid_until = GNUNET_TIME_absolute_max (ve->valid_until, expiration);
+ struct GNUNET_TRANSPORT_ATS_Information ats;
+ ats.type = htonl (GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR);
+ ats.value = htonl (0);
+
GNUNET_ATS_address_update (GST_ats, &pid, ve->valid_until, tname, NULL, addr,
- addrlen, NULL, 0);
+ addrlen, &ats, 1);
return GNUNET_OK;
}
if (papi == NULL)
ret = -1;
else
+ {
+ GNUNET_assert (papi->send != NULL);
ret =
papi->send (papi->cls, pid, message_buf, tsize, PING_PRIORITY,
HELLO_REVALIDATION_START_TIME, NULL /* no session */ ,
ve->addr, ve->addrlen, GNUNET_YES, NULL, NULL);
+ }
}
if (-1 != ret)
{
if (ntohs (hdr->size) < sizeof (struct TransportPongMessage))
{
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "SIZE!\n");
GNUNET_break_op (0);
return;
}
GNUNET_break_op (0);
return;
}
-
-#if VERBOSE_VALIDATION
+#if DEBUG_TRANSPORT
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Address validated for peer `%s' with plugin `%s': `%s'\n",
GNUNET_i2s (sender), tname, GST_plugins_a2s (tname, addr,
/* validity achieved, remember it! */
ve->valid_until = GNUNET_TIME_relative_to_absolute (HELLO_ADDRESS_EXPIRATION);
- GNUNET_ATS_address_update (GST_ats, &ve->pid, ve->valid_until, ve->transport_name, NULL, ve->addr, ve->addrlen, NULL, 0); /* FIXME: compute and add latency here... */
+ struct GNUNET_TRANSPORT_ATS_Information ats;
+ ats.type = htonl (GNUNET_TRANSPORT_ATS_ARRAY_TERMINATOR);
+ ats.value = htonl (0);
+ GNUNET_ATS_address_update (GST_ats, &ve->pid, ve->valid_until, ve->transport_name, NULL, ve->addr, ve->addrlen, &ats, 1); /* FIXME: compute and add latency here... */
/* build HELLO to store in PEERINFO */
ve->copied = GNUNET_NO;