diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-05-16 00:04:18 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-05-16 00:04:18 +0000 |
commit | bd6c8afde29ee915198f60c51ee4c6ca713c187c (patch) | |
tree | 94e7e696a7c4cb029dfa4adc65918be7190d5eb6 | |
parent | 7a1e0e0da32a6fb1028e361edd64a456fdc43ab8 (diff) | |
download | gnunet-bd6c8afde29ee915198f60c51ee4c6ca713c187c.tar.gz gnunet-bd6c8afde29ee915198f60c51ee4c6ca713c187c.zip |
-fixing 2360
-rw-r--r-- | src/transport/gnunet-service-transport_neighbours.c | 66 |
1 files changed, 50 insertions, 16 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c index 7dc9d32b9..f3e67fb66 100644 --- a/src/transport/gnunet-service-transport_neighbours.c +++ b/src/transport/gnunet-service-transport_neighbours.c | |||
@@ -1691,6 +1691,14 @@ handle_test_blacklist_cont (void *cls, | |||
1691 | case S_INIT_BLACKLIST: | 1691 | case S_INIT_BLACKLIST: |
1692 | /* check if the address the blacklist was fine with matches | 1692 | /* check if the address the blacklist was fine with matches |
1693 | ATS suggestion, if so, we can move on! */ | 1693 | ATS suggestion, if so, we can move on! */ |
1694 | if ( (GNUNET_OK == result) && | ||
1695 | (1 == n->send_connect_ack) ) | ||
1696 | { | ||
1697 | n->send_connect_ack = 2; | ||
1698 | send_session_connect_ack_message (bcc->na.address, | ||
1699 | bcc->na.session, | ||
1700 | n->connect_ack_timestamp); | ||
1701 | } | ||
1694 | if (GNUNET_YES != address_matches (&bcc->na, &n->primary_address)) | 1702 | if (GNUNET_YES != address_matches (&bcc->na, &n->primary_address)) |
1695 | break; /* result for an address we currently don't care about */ | 1703 | break; /* result for an address we currently don't care about */ |
1696 | if (GNUNET_OK == result) | 1704 | if (GNUNET_OK == result) |
@@ -1698,13 +1706,6 @@ handle_test_blacklist_cont (void *cls, | |||
1698 | n->timeout = GNUNET_TIME_relative_to_absolute (SETUP_CONNECTION_TIMEOUT); | 1706 | n->timeout = GNUNET_TIME_relative_to_absolute (SETUP_CONNECTION_TIMEOUT); |
1699 | n->state = S_CONNECT_SENT; | 1707 | n->state = S_CONNECT_SENT; |
1700 | send_session_connect (&n->primary_address); | 1708 | send_session_connect (&n->primary_address); |
1701 | if (1 == n->send_connect_ack) | ||
1702 | { | ||
1703 | n->send_connect_ack = 2; | ||
1704 | send_session_connect_ack_message (bcc->na.address, | ||
1705 | bcc->na.session, | ||
1706 | n->connect_ack_timestamp); | ||
1707 | } | ||
1708 | } | 1709 | } |
1709 | else | 1710 | else |
1710 | { | 1711 | { |
@@ -1718,7 +1719,15 @@ handle_test_blacklist_cont (void *cls, | |||
1718 | } | 1719 | } |
1719 | break; | 1720 | break; |
1720 | case S_CONNECT_SENT: | 1721 | case S_CONNECT_SENT: |
1721 | /* waiting on CONNECT_ACK, don't care about blacklist */ | 1722 | /* waiting on CONNECT_ACK, send ACK if one is pending */ |
1723 | if ( (GNUNET_OK == result) && | ||
1724 | (1 == n->send_connect_ack) ) | ||
1725 | { | ||
1726 | n->send_connect_ack = 2; | ||
1727 | send_session_connect_ack_message (n->primary_address.address, | ||
1728 | n->primary_address.session, | ||
1729 | n->connect_ack_timestamp); | ||
1730 | } | ||
1722 | break; | 1731 | break; |
1723 | case S_CONNECT_RECV_ATS: | 1732 | case S_CONNECT_RECV_ATS: |
1724 | /* still waiting on ATS suggestion, don't care about blacklist */ | 1733 | /* still waiting on ATS suggestion, don't care about blacklist */ |
@@ -1748,7 +1757,15 @@ handle_test_blacklist_cont (void *cls, | |||
1748 | } | 1757 | } |
1749 | break; | 1758 | break; |
1750 | case S_CONNECT_RECV_ACK: | 1759 | case S_CONNECT_RECV_ACK: |
1751 | /* waiting on SESSION_ACK, don't care about blacklist */ | 1760 | /* waiting on SESSION_ACK, send ACK if one is pending */ |
1761 | if ( (GNUNET_OK == result) && | ||
1762 | (1 == n->send_connect_ack) ) | ||
1763 | { | ||
1764 | n->send_connect_ack = 2; | ||
1765 | send_session_connect_ack_message (n->primary_address.address, | ||
1766 | n->primary_address.session, | ||
1767 | n->connect_ack_timestamp); | ||
1768 | } | ||
1752 | break; | 1769 | break; |
1753 | case S_CONNECTED: | 1770 | case S_CONNECTED: |
1754 | /* already connected, don't care about blacklist */ | 1771 | /* already connected, don't care about blacklist */ |
@@ -1757,6 +1774,14 @@ handle_test_blacklist_cont (void *cls, | |||
1757 | /* still waiting on ATS suggestion, don't care about blacklist */ | 1774 | /* still waiting on ATS suggestion, don't care about blacklist */ |
1758 | break; | 1775 | break; |
1759 | case S_RECONNECT_BLACKLIST: | 1776 | case S_RECONNECT_BLACKLIST: |
1777 | if ( (GNUNET_OK == result) && | ||
1778 | (1 == n->send_connect_ack) ) | ||
1779 | { | ||
1780 | n->send_connect_ack = 2; | ||
1781 | send_session_connect_ack_message (bcc->na.address, | ||
1782 | bcc->na.session, | ||
1783 | n->connect_ack_timestamp); | ||
1784 | } | ||
1760 | if (GNUNET_YES != address_matches (&bcc->na, &n->primary_address)) | 1785 | if (GNUNET_YES != address_matches (&bcc->na, &n->primary_address)) |
1761 | break; /* result for an address we currently don't care about */ | 1786 | break; /* result for an address we currently don't care about */ |
1762 | if (GNUNET_OK == result) | 1787 | if (GNUNET_OK == result) |
@@ -1764,13 +1789,6 @@ handle_test_blacklist_cont (void *cls, | |||
1764 | send_session_connect (&n->primary_address); | 1789 | send_session_connect (&n->primary_address); |
1765 | n->timeout = GNUNET_TIME_relative_to_absolute (FAST_RECONNECT_TIMEOUT); | 1790 | n->timeout = GNUNET_TIME_relative_to_absolute (FAST_RECONNECT_TIMEOUT); |
1766 | n->state = S_RECONNECT_SENT; | 1791 | n->state = S_RECONNECT_SENT; |
1767 | if (1 == n->send_connect_ack) | ||
1768 | { | ||
1769 | n->send_connect_ack = 2; | ||
1770 | send_session_connect_ack_message (bcc->na.address, | ||
1771 | bcc->na.session, | ||
1772 | n->connect_ack_timestamp); | ||
1773 | } | ||
1774 | } | 1792 | } |
1775 | else | 1793 | else |
1776 | { | 1794 | { |
@@ -1785,6 +1803,14 @@ handle_test_blacklist_cont (void *cls, | |||
1785 | break; | 1803 | break; |
1786 | case S_RECONNECT_SENT: | 1804 | case S_RECONNECT_SENT: |
1787 | /* waiting on CONNECT_ACK, don't care about blacklist */ | 1805 | /* waiting on CONNECT_ACK, don't care about blacklist */ |
1806 | if ( (GNUNET_OK == result) && | ||
1807 | (1 == n->send_connect_ack) ) | ||
1808 | { | ||
1809 | n->send_connect_ack = 2; | ||
1810 | send_session_connect_ack_message (n->primary_address.address, | ||
1811 | n->primary_address.session, | ||
1812 | n->connect_ack_timestamp); | ||
1813 | } | ||
1788 | break; | 1814 | break; |
1789 | case S_CONNECTED_SWITCHING_BLACKLIST: | 1815 | case S_CONNECTED_SWITCHING_BLACKLIST: |
1790 | if (GNUNET_YES != address_matches (&bcc->na, &n->alternative_address)) | 1816 | if (GNUNET_YES != address_matches (&bcc->na, &n->alternative_address)) |
@@ -1805,6 +1831,14 @@ handle_test_blacklist_cont (void *cls, | |||
1805 | break; | 1831 | break; |
1806 | case S_CONNECTED_SWITCHING_CONNECT_SENT: | 1832 | case S_CONNECTED_SWITCHING_CONNECT_SENT: |
1807 | /* waiting on CONNECT_ACK, don't care about blacklist */ | 1833 | /* waiting on CONNECT_ACK, don't care about blacklist */ |
1834 | if ( (GNUNET_OK == result) && | ||
1835 | (1 == n->send_connect_ack) ) | ||
1836 | { | ||
1837 | n->send_connect_ack = 2; | ||
1838 | send_session_connect_ack_message (n->primary_address.address, | ||
1839 | n->primary_address.session, | ||
1840 | n->connect_ack_timestamp); | ||
1841 | } | ||
1808 | break; | 1842 | break; |
1809 | case S_DISCONNECT: | 1843 | case S_DISCONNECT: |
1810 | /* Nothing to do here, ATS will already do what can be done */ | 1844 | /* Nothing to do here, ATS will already do what can be done */ |