aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/gnunet-service-transport.c')
-rw-r--r--src/transport/gnunet-service-transport.c51
1 files changed, 31 insertions, 20 deletions
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c
index f9946a8e2..2bd608988 100644
--- a/src/transport/gnunet-service-transport.c
+++ b/src/transport/gnunet-service-transport.c
@@ -400,34 +400,46 @@ plugin_env_address_change_notification (void *cls, int add_remove,
400 * from the "TransmitFunction". 400 * from the "TransmitFunction".
401 * 401 *
402 * @param cls closure 402 * @param cls closure
403 * @param peer which peer was the session for 403 * @param address which address was the session for
404 * @param session which session is being destoyed 404 * @param session which session is being destoyed
405 */ 405 */
406static void 406static void
407plugin_env_session_end (void *cls, const struct GNUNET_PeerIdentity *peer, 407plugin_env_session_end (void *cls, const struct GNUNET_HELLO_Address *address,
408 struct Session *session) 408 struct Session *session)
409{ 409{
410 const char *transport_name = cls;
411 struct GNUNET_HELLO_Address address;
412 struct SessionKiller *sk; 410 struct SessionKiller *sk;
413 411
414 GNUNET_assert(strlen (transport_name) > 0); 412 if (NULL == address)
415 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Session %p to peer `%s' ended \n", 413 {
416 session, GNUNET_i2s (peer)); 414 GNUNET_break (0);
417 if (NULL != session) 415 return;
418 GNUNET_log_from(GNUNET_ERROR_TYPE_DEBUG | GNUNET_ERROR_TYPE_BULK, 416 }
419 "transport-ats", "Telling ATS to destroy session %p from peer %s\n", 417
420 session, GNUNET_i2s (peer)); 418 if (NULL == session)
421 419 {
422 memset (&address, '\0', sizeof (address)); 420 GNUNET_break (0);
423 address.peer = *peer; 421 return;
424 address.address = NULL; 422 }
425 address.address_length = 0; 423
426 address.transport_name = transport_name; 424 GNUNET_assert(strlen (address->transport_name) > 0);
427 GST_neighbours_session_terminated (peer, session); 425 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Session %p to peer `%s' ended \n",
426 session, GNUNET_i2s (&address->peer));
427
428 GNUNET_log(GNUNET_ERROR_TYPE_INFO,
429 "Notification from plugin `%s' about terminated %ssession %p from peer `%s' address `%s'\n",
430 address->transport_name,
431 GNUNET_HELLO_address_check_option (address,
432 GNUNET_HELLO_ADDRESS_INFO_INBOUND) ? "inbound " : "", session,
433 GNUNET_i2s (&address->peer), GST_plugins_a2s (address));
434
435 GST_neighbours_session_terminated (&address->peer, session);
436
437 GNUNET_log_from(GNUNET_ERROR_TYPE_DEBUG | GNUNET_ERROR_TYPE_BULK,
438 "transport-ats", "Telling ATS to destroy session %p from peer %s\n",
439 session, GNUNET_i2s (&address->peer));
428 440
429 /* Tell ATS that session has ended */ 441 /* Tell ATS that session has ended */
430 GNUNET_ATS_address_destroyed (GST_ats, &address, session); 442 GNUNET_ATS_address_destroyed (GST_ats, address, session);
431 for (sk = sk_head; NULL != sk; sk = sk->next) 443 for (sk = sk_head; NULL != sk; sk = sk->next)
432 { 444 {
433 if (sk->session == session) 445 if (sk->session == session)
@@ -622,7 +634,6 @@ plugin_env_session_start (void *cls, struct GNUNET_HELLO_Address *address,
622 GNUNET_break(0); 634 GNUNET_break(0);
623 return; 635 return;
624 } 636 }
625
626 GNUNET_log(GNUNET_ERROR_TYPE_INFO, 637 GNUNET_log(GNUNET_ERROR_TYPE_INFO,
627 "Notification from plugin `%s' about new %ssession %p from peer `%s' address `%s'\n", 638 "Notification from plugin `%s' about new %ssession %p from peer `%s' address `%s'\n",
628 address->transport_name, 639 address->transport_name,