diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2014-03-27 16:51:32 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2014-03-27 16:51:32 +0000 |
commit | 25fea659b134e2716aa95edc8f6267603e08ce61 (patch) | |
tree | fe0eb5a7fdaca512c833f930486942d688e6cfd7 /src/transport/gnunet-service-transport_clients.c | |
parent | 075f1356987b48d3afd3f5c01ddebe23fa0ae240 (diff) | |
download | gnunet-25fea659b134e2716aa95edc8f6267603e08ce61.tar.gz gnunet-25fea659b134e2716aa95edc8f6267603e08ce61.zip |
added functionality to use the CLI to disconnect peers
fixed DISCONNECT functionality
Diffstat (limited to 'src/transport/gnunet-service-transport_clients.c')
-rw-r--r-- | src/transport/gnunet-service-transport_clients.c | 64 |
1 files changed, 48 insertions, 16 deletions
diff --git a/src/transport/gnunet-service-transport_clients.c b/src/transport/gnunet-service-transport_clients.c index 10da37088..d9a750e29 100644 --- a/src/transport/gnunet-service-transport_clients.c +++ b/src/transport/gnunet-service-transport_clients.c | |||
@@ -794,27 +794,59 @@ clients_handle_request_connect (void *cls, struct GNUNET_SERVER_Client *client, | |||
794 | const struct TransportRequestConnectMessage *trcm = | 794 | const struct TransportRequestConnectMessage *trcm = |
795 | (const struct TransportRequestConnectMessage *) message; | 795 | (const struct TransportRequestConnectMessage *) message; |
796 | 796 | ||
797 | GNUNET_STATISTICS_update (GST_stats, | 797 | if (GNUNET_YES == ntohl (trcm->connect)) |
798 | gettext_noop | 798 | { |
799 | ("# REQUEST CONNECT messages received"), 1, | 799 | GNUNET_STATISTICS_update (GST_stats, |
800 | GNUNET_NO); | 800 | gettext_noop |
801 | ("# REQUEST CONNECT messages received"), 1, | ||
802 | GNUNET_NO); | ||
803 | |||
804 | if (0 == memcmp (&trcm->peer, &GST_my_identity, | ||
805 | sizeof (struct GNUNET_PeerIdentity))) | ||
806 | { | ||
807 | GNUNET_break_op (0); | ||
808 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | ||
809 | "Received a request connect message myself `%s'\n", | ||
810 | GNUNET_i2s (&trcm->peer)); | ||
811 | } | ||
812 | else | ||
813 | { | ||
814 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
815 | _("Received a request connect message for peer `%s'\n"), | ||
816 | GNUNET_i2s (&trcm->peer)); | ||
801 | 817 | ||
802 | if (0 == memcmp (&trcm->peer, &GST_my_identity, | 818 | (void) GST_blacklist_test_allowed (&trcm->peer, NULL, &try_connect_if_allowed, |
803 | sizeof (struct GNUNET_PeerIdentity))) | 819 | NULL); |
820 | } | ||
821 | } | ||
822 | else if (GNUNET_NO == ntohl (trcm->connect)) | ||
804 | { | 823 | { |
805 | GNUNET_break_op (0); | 824 | GNUNET_STATISTICS_update (GST_stats, |
806 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | 825 | gettext_noop |
807 | "Received a request connect message myself `%s'\n", | 826 | ("# REQUEST DISCONNECT messages received"), 1, |
808 | GNUNET_i2s (&trcm->peer)); | 827 | GNUNET_NO); |
828 | |||
829 | if (0 == memcmp (&trcm->peer, &GST_my_identity, | ||
830 | sizeof (struct GNUNET_PeerIdentity))) | ||
831 | { | ||
832 | GNUNET_break_op (0); | ||
833 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | ||
834 | "Received a request disconnect message myself `%s'\n", | ||
835 | GNUNET_i2s (&trcm->peer)); | ||
836 | } | ||
837 | else | ||
838 | { | ||
839 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
840 | _("Received a request disconnect message for peer `%s'\n"), | ||
841 | GNUNET_i2s (&trcm->peer)); | ||
842 | (void) GST_neighbours_force_disconnect (&trcm->peer); | ||
843 | } | ||
809 | } | 844 | } |
810 | else | 845 | else |
811 | { | 846 | { |
812 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | 847 | GNUNET_break_op (0); |
813 | _("Received a request connect message for peer `%s'\n"), | 848 | GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); |
814 | GNUNET_i2s (&trcm->peer)); | 849 | return; |
815 | |||
816 | (void) GST_blacklist_test_allowed (&trcm->peer, NULL, &try_connect_if_allowed, | ||
817 | NULL); | ||
818 | } | 850 | } |
819 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | 851 | GNUNET_SERVER_receive_done (client, GNUNET_OK); |
820 | } | 852 | } |