aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_clients.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/gnunet-service-transport_clients.c')
-rw-r--r--src/transport/gnunet-service-transport_clients.c43
1 files changed, 24 insertions, 19 deletions
diff --git a/src/transport/gnunet-service-transport_clients.c b/src/transport/gnunet-service-transport_clients.c
index 2aea7aa7e..da6201d97 100644
--- a/src/transport/gnunet-service-transport_clients.c
+++ b/src/transport/gnunet-service-transport_clients.c
@@ -331,8 +331,8 @@ static void
331notify_client_about_neighbour (void *cls, 331notify_client_about_neighbour (void *cls,
332 const struct GNUNET_PeerIdentity *peer, 332 const struct GNUNET_PeerIdentity *peer,
333 const struct GNUNET_ATS_Information *ats, 333 const struct GNUNET_ATS_Information *ats,
334 uint32_t ats_count, 334 uint32_t ats_count,
335 const struct GNUNET_HELLO_Address *address) 335 const struct GNUNET_HELLO_Address *address)
336{ 336{
337 struct TransportClient *tc = cls; 337 struct TransportClient *tc = cls;
338 struct ConnectInfoMessage *cim; 338 struct ConnectInfoMessage *cim;
@@ -633,8 +633,9 @@ transmit_address_to_client (void *cls, const char *buf)
633 * @param message the resolution request 633 * @param message the resolution request
634 */ 634 */
635static void 635static void
636clients_handle_address_to_string (void *cls, struct GNUNET_SERVER_Client *client, 636clients_handle_address_to_string (void *cls,
637 const struct GNUNET_MessageHeader *message) 637 struct GNUNET_SERVER_Client *client,
638 const struct GNUNET_MessageHeader *message)
638{ 639{
639 const struct AddressLookupMessage *alum; 640 const struct AddressLookupMessage *alum;
640 struct GNUNET_TRANSPORT_PluginFunctions *papi; 641 struct GNUNET_TRANSPORT_PluginFunctions *papi;
@@ -699,34 +700,38 @@ clients_handle_address_to_string (void *cls, struct GNUNET_SERVER_Client *client
699 */ 700 */
700static void 701static void
701output_address (void *cls, const struct GNUNET_PeerIdentity *peer, 702output_address (void *cls, const struct GNUNET_PeerIdentity *peer,
702 const struct GNUNET_ATS_Information *ats, uint32_t ats_count, 703 const struct GNUNET_ATS_Information *ats, uint32_t ats_count,
703 const struct GNUNET_HELLO_Address *address) 704 const struct GNUNET_HELLO_Address *address)
704{ 705{
705 struct GNUNET_SERVER_TransmitContext *tc = cls; 706 struct GNUNET_SERVER_TransmitContext *tc = cls;
706 struct AddressIterateResponseMessage *msg; 707 struct AddressIterateResponseMessage *msg;
707 size_t size; 708 size_t size;
708 size_t tlen; 709 size_t tlen;
709 size_t alen; 710 size_t alen;
710 char * addr; 711 char *addr;
711 712
712 tlen = strlen (address->transport_name) + 1; 713 tlen = strlen (address->transport_name) + 1;
713 alen = address->address_length; 714 alen = address->address_length;
714 size = (sizeof (struct AddressIterateResponseMessage) + alen + tlen); 715 size = (sizeof (struct AddressIterateResponseMessage) + alen + tlen);
715 { 716 {
716 char buf[size]; 717 char buf[size];
717 718
718 msg = (struct AddressIterateResponseMessage*) buf; 719 msg = (struct AddressIterateResponseMessage *) buf;
719 msg->reserved = htonl (0); 720 msg->reserved = htonl (0);
720 msg->peer = *peer; 721 msg->peer = *peer;
721 msg->addrlen = htonl (alen); 722 msg->addrlen = htonl (alen);
722 msg->pluginlen = htonl (tlen); 723 msg->pluginlen = htonl (tlen);
723 addr = (char *) &msg[1]; 724 addr = (char *) &msg[1];
724 memcpy (addr,address->address, alen); 725 memcpy (addr, address->address, alen);
725 memcpy (&addr[alen], address->transport_name, tlen); 726 memcpy (&addr[alen], address->transport_name, tlen);
726 GNUNET_SERVER_transmit_context_append_data (tc, 727 GNUNET_SERVER_transmit_context_append_data (tc,
727 &buf[sizeof(struct GNUNET_MessageHeader)], 728 &buf[sizeof
728 size - sizeof (struct GNUNET_MessageHeader), 729 (struct
729 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE_RESPONSE); 730 GNUNET_MessageHeader)],
731 size -
732 sizeof (struct
733 GNUNET_MessageHeader),
734 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE_RESPONSE);
730 } 735 }
731} 736}
732 737
@@ -746,7 +751,7 @@ clients_handle_address_iterate (void *cls, struct GNUNET_SERVER_Client *client,
746{ 751{
747 static struct GNUNET_PeerIdentity all_zeros; 752 static struct GNUNET_PeerIdentity all_zeros;
748 struct GNUNET_SERVER_TransmitContext *tc; 753 struct GNUNET_SERVER_TransmitContext *tc;
749 struct AddressIterateMessage * msg; 754 struct AddressIterateMessage *msg;
750 struct GNUNET_HELLO_Address *address; 755 struct GNUNET_HELLO_Address *address;
751 756
752 if (ntohs (message->type) != GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE) 757 if (ntohs (message->type) != GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE)
@@ -765,7 +770,7 @@ clients_handle_address_iterate (void *cls, struct GNUNET_SERVER_Client *client,
765 if (GNUNET_YES != ntohl (msg->one_shot)) 770 if (GNUNET_YES != ntohl (msg->one_shot))
766 { 771 {
767 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 772 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
768 "Address monitoring not implemented\n"); 773 "Address monitoring not implemented\n");
769 GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); 774 GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
770 return; 775 return;
771 } 776 }
@@ -779,12 +784,12 @@ clients_handle_address_iterate (void *cls, struct GNUNET_SERVER_Client *client,
779 else 784 else
780 { 785 {
781 /* just return one neighbour */ 786 /* just return one neighbour */
782 address = GST_neighbour_get_current_address(&msg->peer); 787 address = GST_neighbour_get_current_address (&msg->peer);
783 if (address != NULL) 788 if (address != NULL)
784 output_address (tc, &msg->peer, NULL, 0, address); 789 output_address (tc, &msg->peer, NULL, 0, address);
785 } 790 }
786 GNUNET_SERVER_transmit_context_append_data (tc, NULL, 0, 791 GNUNET_SERVER_transmit_context_append_data (tc, NULL, 0,
787 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE_RESPONSE); 792 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE_RESPONSE);
788 GNUNET_SERVER_transmit_context_run (tc, GNUNET_TIME_UNIT_FOREVER_REL); 793 GNUNET_SERVER_transmit_context_run (tc, GNUNET_TIME_UNIT_FOREVER_REL);
789} 794}
790 795
@@ -809,7 +814,7 @@ GST_clients_start (struct GNUNET_SERVER_Handle *server)
809 sizeof (struct TransportRequestConnectMessage)}, 814 sizeof (struct TransportRequestConnectMessage)},
810 {&clients_handle_address_to_string, NULL, 815 {&clients_handle_address_to_string, NULL,
811 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_TO_STRING, 0}, 816 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_TO_STRING, 0},
812 {&clients_handle_address_iterate, NULL, 817 {&clients_handle_address_iterate, NULL,
813 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE, 818 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE,
814 sizeof (struct AddressIterateMessage)}, 819 sizeof (struct AddressIterateMessage)},
815 {&GST_blacklist_handle_init, NULL, 820 {&GST_blacklist_handle_init, NULL,