aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_clients.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-03-27 16:51:32 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-03-27 16:51:32 +0000
commit25fea659b134e2716aa95edc8f6267603e08ce61 (patch)
treefe0eb5a7fdaca512c833f930486942d688e6cfd7 /src/transport/gnunet-service-transport_clients.c
parent075f1356987b48d3afd3f5c01ddebe23fa0ae240 (diff)
downloadgnunet-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.c64
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}