diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2014-03-19 15:07:21 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2014-03-19 15:07:21 +0000 |
commit | f140d0b6b3f82de88a08d0c260fcefc088c53db3 (patch) | |
tree | 6d757fa3cf9c1569b958630e19cd4b5207a9b092 /src/transport/gnunet-service-transport_neighbours.c | |
parent | 20d36c66354673b1f908bda60656fa0905e65319 (diff) | |
download | gnunet-f140d0b6b3f82de88a08d0c260fcefc088c53db3.tar.gz gnunet-f140d0b6b3f82de88a08d0c260fcefc088c53db3.zip |
unsetting primary address on when free'ing address for monitoring
Diffstat (limited to 'src/transport/gnunet-service-transport_neighbours.c')
-rw-r--r-- | src/transport/gnunet-service-transport_neighbours.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c index d80149e47..0cf8c09dc 100644 --- a/src/transport/gnunet-service-transport_neighbours.c +++ b/src/transport/gnunet-service-transport_neighbours.c | |||
@@ -578,6 +578,8 @@ free_address (struct NeighbourAddress *na) | |||
578 | GNUNET_ATS_address_in_use (GST_ats, na->address, na->session, GNUNET_NO); | 578 | GNUNET_ATS_address_in_use (GST_ats, na->address, na->session, GNUNET_NO); |
579 | } | 579 | } |
580 | 580 | ||
581 | na->bandwidth_in = GNUNET_BANDWIDTH_value_init (0); | ||
582 | na->bandwidth_out = GNUNET_BANDWIDTH_value_init (0); | ||
581 | na->ats_active = GNUNET_NO; | 583 | na->ats_active = GNUNET_NO; |
582 | na->keep_alive_nonce = 0; | 584 | na->keep_alive_nonce = 0; |
583 | if (NULL != na->address) | 585 | if (NULL != na->address) |
@@ -799,8 +801,6 @@ set_primary_address (struct NeighbourMapEntry *n, | |||
799 | n->primary_address.bandwidth_out); | 801 | n->primary_address.bandwidth_out); |
800 | } | 802 | } |
801 | 803 | ||
802 | #if 0 | ||
803 | TODO: Implement this | ||
804 | /** | 804 | /** |
805 | * Clear the primary address of a neighbour since this primary address is not | 805 | * Clear the primary address of a neighbour since this primary address is not |
806 | * valid anymore and notify monitoring about it | 806 | * valid anymore and notify monitoring about it |
@@ -810,10 +810,18 @@ TODO: Implement this | |||
810 | static void | 810 | static void |
811 | unset_primary_address (struct NeighbourMapEntry *n) | 811 | unset_primary_address (struct NeighbourMapEntry *n) |
812 | { | 812 | { |
813 | /* Unset primary address */ | ||
814 | free_address (&n->primary_address); | ||
813 | 815 | ||
816 | /* Notify monitoring about it */ | ||
817 | neighbour_change_cb (callback_cls, | ||
818 | &n->id, | ||
819 | NULL, | ||
820 | n->state, n->timeout, | ||
821 | n->primary_address.bandwidth_in, | ||
822 | n->primary_address.bandwidth_out); | ||
814 | } | 823 | } |
815 | 824 | ||
816 | #endif | ||
817 | 825 | ||
818 | 826 | ||
819 | /** | 827 | /** |
@@ -854,6 +862,7 @@ free_neighbour (struct NeighbourMapEntry *n, | |||
854 | GNUNET_NO); | 862 | GNUNET_NO); |
855 | disconnect_notify_cb (callback_cls, &n->id); | 863 | disconnect_notify_cb (callback_cls, &n->id); |
856 | } | 864 | } |
865 | |||
857 | /* Mark peer as disconnected */ | 866 | /* Mark peer as disconnected */ |
858 | set_state (n, GNUNET_TRANSPORT_PS_DISCONNECT_FINISHED); | 867 | set_state (n, GNUNET_TRANSPORT_PS_DISCONNECT_FINISHED); |
859 | 868 | ||
@@ -863,7 +872,7 @@ free_neighbour (struct NeighbourMapEntry *n, | |||
863 | backup_primary = NULL; | 872 | backup_primary = NULL; |
864 | 873 | ||
865 | /* free addresses and mark as unused */ | 874 | /* free addresses and mark as unused */ |
866 | free_address (&n->primary_address); | 875 | unset_primary_address (n); |
867 | free_address (&n->alternative_address); | 876 | free_address (&n->alternative_address); |
868 | 877 | ||
869 | /* cut all transport-level connection for this peer */ | 878 | /* cut all transport-level connection for this peer */ |
@@ -1644,8 +1653,10 @@ send_session_connect (struct NeighbourAddress *na) | |||
1644 | GNUNET_ATS_address_destroyed (GST_ats, na->address, NULL); | 1653 | GNUNET_ATS_address_destroyed (GST_ats, na->address, NULL); |
1645 | 1654 | ||
1646 | /* Remove address and request and additional one */ | 1655 | /* Remove address and request and additional one */ |
1647 | /* TODO */ | 1656 | unset_primary_address (n); |
1648 | 1657 | ||
1658 | set_state_and_timeout (n, GNUNET_TRANSPORT_PS_INIT_ATS, | ||
1659 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); | ||
1649 | return; | 1660 | return; |
1650 | } | 1661 | } |
1651 | 1662 | ||
@@ -3420,7 +3431,7 @@ GST_neighbours_session_terminated (const struct GNUNET_PeerIdentity *peer, | |||
3420 | GST_plugins_a2s (n->primary_address.address), n->primary_address.session, | 3431 | GST_plugins_a2s (n->primary_address.address), n->primary_address.session, |
3421 | GNUNET_i2s (peer)); | 3432 | GNUNET_i2s (peer)); |
3422 | GNUNET_ATS_address_destroyed (GST_ats, n->primary_address.address, NULL); | 3433 | GNUNET_ATS_address_destroyed (GST_ats, n->primary_address.address, NULL); |
3423 | free_address (&n->primary_address); | 3434 | unset_primary_address (n); |
3424 | set_state_and_timeout (n, GNUNET_TRANSPORT_PS_INIT_ATS, | 3435 | set_state_and_timeout (n, GNUNET_TRANSPORT_PS_INIT_ATS, |
3425 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); | 3436 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); |
3426 | break; | 3437 | break; |
@@ -3433,9 +3444,9 @@ GST_neighbours_session_terminated (const struct GNUNET_PeerIdentity *peer, | |||
3433 | free_neighbour (n, GNUNET_NO); | 3444 | free_neighbour (n, GNUNET_NO); |
3434 | return GNUNET_YES; | 3445 | return GNUNET_YES; |
3435 | case GNUNET_TRANSPORT_PS_CONNECTED: | 3446 | case GNUNET_TRANSPORT_PS_CONNECTED: |
3447 | unset_primary_address (n); | ||
3436 | set_state_and_timeout (n, GNUNET_TRANSPORT_PS_RECONNECT_ATS, | 3448 | set_state_and_timeout (n, GNUNET_TRANSPORT_PS_RECONNECT_ATS, |
3437 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); | 3449 | GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); |
3438 | free_address (&n->primary_address); | ||
3439 | break; | 3450 | break; |
3440 | case GNUNET_TRANSPORT_PS_RECONNECT_ATS: | 3451 | case GNUNET_TRANSPORT_PS_RECONNECT_ATS: |
3441 | /* we don't have an address, how can it go down? */ | 3452 | /* we don't have an address, how can it go down? */ |