diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-06-10 14:32:39 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-06-10 14:32:39 +0000 |
commit | 0b5a723229ec82a74fa779052fc190470a00abd1 (patch) | |
tree | e00b05f6b0ce62118dc27e2c8ce2ff69688d5a3f /src/transport | |
parent | 6ba30d03e61bb437ffc9fe870445cc8e4e4d3af8 (diff) | |
download | gnunet-0b5a723229ec82a74fa779052fc190470a00abd1.tar.gz gnunet-0b5a723229ec82a74fa779052fc190470a00abd1.zip |
check earlier for connect-self messages
Diffstat (limited to 'src/transport')
-rw-r--r-- | src/transport/transport_api.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/transport/transport_api.c b/src/transport/transport_api.c index 126823cc2..e08205005 100644 --- a/src/transport/transport_api.c +++ b/src/transport/transport_api.c | |||
@@ -1743,7 +1743,6 @@ demultiplexer (void *cls, const struct GNUNET_MessageHeader *msg) | |||
1743 | } | 1743 | } |
1744 | break; | 1744 | break; |
1745 | case GNUNET_MESSAGE_TYPE_TRANSPORT_CONNECT: | 1745 | case GNUNET_MESSAGE_TYPE_TRANSPORT_CONNECT: |
1746 | |||
1747 | if (size < sizeof (struct ConnectInfoMessage)) | 1746 | if (size < sizeof (struct ConnectInfoMessage)) |
1748 | { | 1747 | { |
1749 | GNUNET_break (0); | 1748 | GNUNET_break (0); |
@@ -1756,7 +1755,14 @@ demultiplexer (void *cls, const struct GNUNET_MessageHeader *msg) | |||
1756 | GNUNET_break (0); | 1755 | GNUNET_break (0); |
1757 | break; | 1756 | break; |
1758 | } | 1757 | } |
1759 | 1758 | if (0 == memcmp (&cim->id, | |
1759 | &h->self, | ||
1760 | sizeof (struct GNUNET_PeerIdentity))) | ||
1761 | { | ||
1762 | /* connect to self!? */ | ||
1763 | GNUNET_break (0); | ||
1764 | break; | ||
1765 | } | ||
1760 | #if DEBUG_TRANSPORT | 1766 | #if DEBUG_TRANSPORT |
1761 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1767 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
1762 | "Receiving `%s' message for `%4s'.\n", | 1768 | "Receiving `%s' message for `%4s'.\n", |
@@ -1783,6 +1789,14 @@ demultiplexer (void *cls, const struct GNUNET_MessageHeader *msg) | |||
1783 | } | 1789 | } |
1784 | dim = (const struct DisconnectInfoMessage *) msg; | 1790 | dim = (const struct DisconnectInfoMessage *) msg; |
1785 | GNUNET_break (ntohl (dim->reserved) == 0); | 1791 | GNUNET_break (ntohl (dim->reserved) == 0); |
1792 | if (0 == memcmp (&dim->peer, | ||
1793 | &h->self, | ||
1794 | sizeof (struct GNUNET_PeerIdentity))) | ||
1795 | { | ||
1796 | /* discconnect from self!? */ | ||
1797 | GNUNET_break (0); | ||
1798 | break; | ||
1799 | } | ||
1786 | #if DEBUG_TRANSPORT_DISCONNECT | 1800 | #if DEBUG_TRANSPORT_DISCONNECT |
1787 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1801 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
1788 | "Receiving `%s' message for `%4s'.\n", | 1802 | "Receiving `%s' message for `%4s'.\n", |