gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r18383 - in gnunet/src: core include transport


From: gnunet
Subject: [GNUnet-SVN] r18383 - in gnunet/src: core include transport
Date: Tue, 29 Nov 2011 19:04:02 +0100

Author: wachs
Date: 2011-11-29 19:04:01 +0100 (Tue, 29 Nov 2011)
New Revision: 18383

Modified:
   gnunet/src/core/gnunet-core-list-connections.c
   gnunet/src/include/gnunet_transport_service.h
   gnunet/src/transport/gnunet-service-transport_clients.c
   gnunet/src/transport/gnunet-service-transport_neighbours.c
   gnunet/src/transport/gnunet-service-transport_neighbours.h
   gnunet/src/transport/gnunet-transport.c
   gnunet/src/transport/transport.conf
   gnunet/src/transport/transport_api_address_lookup.c
   gnunet/src/transport/transport_api_address_to_string.c
Log:
- finale commit for the api change



Modified: gnunet/src/core/gnunet-core-list-connections.c
===================================================================
--- gnunet/src/core/gnunet-core-list-connections.c      2011-11-29 17:13:57 UTC 
(rev 18382)
+++ gnunet/src/core/gnunet-core-list-connections.c      2011-11-29 18:04:01 UTC 
(rev 18383)
@@ -100,7 +100,7 @@
 process_resolved_address (void *cls, const struct GNUNET_HELLO_Address 
*address)
 {
   struct PrintContext *pc = cls;
-  struct AddressStringList *new_address;
+//  struct AddressStringList *new_address;
 
   if (address == NULL)
   {
@@ -108,14 +108,17 @@
     return;
   }
 
+  /* This does exactly the same as gnunet-transport -i !*/
+  /*
   new_address = GNUNET_malloc (sizeof (struct AddressStringList));
 #if VERBOSE
   fprintf (stderr, "Received address %s\n", address);
 #endif
-  // FIXME : GNUNET_TRANSPORT_address_to_string
+
   new_address->address_string = GNUNET_strdup ("FIXME");
   GNUNET_CONTAINER_DLL_insert (pc->address_list_head, pc->address_list_tail,
                                new_address);
+   */
 }
 
 

Modified: gnunet/src/include/gnunet_transport_service.h
===================================================================
--- gnunet/src/include/gnunet_transport_service.h       2011-11-29 17:13:57 UTC 
(rev 18382)
+++ gnunet/src/include/gnunet_transport_service.h       2011-11-29 18:04:01 UTC 
(rev 18383)
@@ -115,7 +115,7 @@
  * @param address address
  */
 // FIXME: use NULL for address on disconnect IF in monitor mode (one_shot = NO)
-typedef void (*GNUNET_TRANSPORT_AddressLookUpCallback) (void *cls,
+typedef void (*GNUNET_TRANSPORT_PeerIterateCallback) (void *cls,
                                                         const struct 
GNUNET_HELLO_Address *address);
 
 
@@ -322,12 +322,12 @@
  * @param peer_address_callback function to call with the results
  * @param peer_address_callback_cls closure for peer_address_callback
  */
-struct GNUNET_TRANSPORT_PeerAddressLookupContext *
+struct GNUNET_TRANSPORT_PeerIterateContext *
 GNUNET_TRANSPORT_peer_get_active_addresses (const struct 
GNUNET_CONFIGURATION_Handle *cfg,
                                       const struct GNUNET_PeerIdentity *peer,
                                      int one_shot,
                                       struct GNUNET_TIME_Relative timeout,
-                                      GNUNET_TRANSPORT_AddressLookUpCallback 
peer_address_callback,
+                                      GNUNET_TRANSPORT_PeerIterateCallback 
peer_address_callback,
                                       void *peer_address_callback_cls);
 
 
@@ -338,16 +338,12 @@
  */
 void
 GNUNET_TRANSPORT_peer_get_active_addresses_cancel (struct
-                                             
GNUNET_TRANSPORT_PeerAddressLookupContext
+                                             
GNUNET_TRANSPORT_PeerIterateContext
 *alc);
 
 
 /**
- * Return all the known addresses. FIXME: document better!
- * 
- * FIXME: remove, replace with new 'peer_address_lookup' API
- * 
- *
+ * Return all the known addresses.
  * @param cfg configuration to use
  * @param timeout how long is the lookup allowed to take at most
  * @param peer_address_callback function to call with the results
@@ -356,7 +352,7 @@
 void
 GNUNET_TRANSPORT_address_iterate (const struct GNUNET_CONFIGURATION_Handle 
*cfg,
                                   struct GNUNET_TIME_Relative timeout,
-                                  GNUNET_TRANSPORT_AddressLookUpCallback
+                                  GNUNET_TRANSPORT_PeerIterateCallback
                                   peer_address_callback,
                                   void *peer_address_callback_cls);
 

Modified: gnunet/src/transport/gnunet-service-transport_clients.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_clients.c     2011-11-29 
17:13:57 UTC (rev 18382)
+++ gnunet/src/transport/gnunet-service-transport_clients.c     2011-11-29 
18:04:01 UTC (rev 18383)
@@ -612,7 +612,6 @@
 transmit_address_to_client (void *cls, const char *buf)
 {
   struct GNUNET_SERVER_TransmitContext *tc = cls;
-
   if (NULL == buf)
   {
     GNUNET_SERVER_transmit_context_append_data (tc, NULL, 0,
@@ -712,7 +711,10 @@
                                 tc);
 }
 
+#if 0
 
+THIS FUNCTIONALITY IS NOT USED ANYWHERE!
+
 /**
  * Send an address to the client.
  *
@@ -749,16 +751,15 @@
 
 
 /**
- * Client asked to obtain information about a peer's addresses.
+ * Client asked to obtain information about all addresses of a peer.
  * Process the request.
- * FIXME: use better name!
  *
  * @param cls unused
  * @param client the client
  * @param message the peer address information request
  */
 static void
-clients_handle_peer_address_lookup (void *cls,
+clients_handle_peer_address_iterate (void *cls,
                                     struct GNUNET_SERVER_Client *client,
                                     const struct GNUNET_MessageHeader *message)
 {
@@ -768,14 +769,16 @@
   peer_address_lookup = (const struct PeerAddressLookupMessage *) message;
   GNUNET_break (ntohl (peer_address_lookup->reserved) == 0);
   tc = GNUNET_SERVER_transmit_context_create (client);
+
   GST_validation_get_addresses (&peer_address_lookup->peer,
                                 &send_address_to_client, tc);
+
   GNUNET_SERVER_transmit_context_append_data (tc, NULL, 0,
       GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE_RESPONSE);
   GNUNET_SERVER_transmit_context_run (tc, GNUNET_TIME_UNIT_FOREVER_REL);
 }
+#endif
 
-
 /**
  * Output the active address of connected neighbours to the given client.
  *
@@ -811,15 +814,14 @@
   memcpy(&addr[alen], address->transport_name, tlen);
 
   transmit_binary_to_client (tc, msg, size);
-
-  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "output_addresses: peer `%s' transport 
%s address %s   %s\n",GNUNET_i2s(&msg->peer), &addr[alen], GNUNET_a2s((struct 
sockaddr *) addr, alen), GNUNET_a2s((struct sockaddr *) address->address, 
address->address_length));
   GNUNET_free (msg);
 }
 
 
 /**
- * Client asked to obtain information about all actively used addresses.
- * Process the request.  FIXME: use better name!
+ * Client asked to obtain information about all actively used addresses
+ * of connected peers
+ * Process the request.
  *
  * @param cls unused
  * @param client the client
@@ -830,11 +832,41 @@
                                 const struct GNUNET_MessageHeader *message)
 {
   struct GNUNET_SERVER_TransmitContext *tc;
+  struct AddressIterateMessage * msg;
+  struct GNUNET_PeerIdentity dummy;
+  struct GNUNET_HELLO_Address * address;
 
+
   GNUNET_SERVER_disable_receive_done_warning (client);
   tc = GNUNET_SERVER_transmit_context_create (client);
-  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "clients_handle_address_iterate: \n");
-  GST_neighbours_iterate (&output_addresses, tc);
+
+  if (ntohs (message->type) != GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE)
+  {
+    GNUNET_break_op(0);
+    return;
+  }
+  if (ntohs (message->size) != sizeof (struct AddressIterateMessage))
+  {
+    GNUNET_break_op(0);
+    return;
+  }
+
+  msg = (struct AddressIterateMessage *) message;
+  memset (&dummy, 0,  sizeof (struct GNUNET_PeerIdentity));
+
+  if (0 == memcmp (&msg->peer, &dummy, sizeof (struct GNUNET_PeerIdentity)))
+  {
+    /* iterate over all neighbours */
+    GST_neighbours_iterate (&output_addresses, tc);
+  }
+  else
+  {
+    /* just return one neighbour */
+    address = GST_neighbour_get_current_address(&msg->peer);
+    if (address != NULL)
+      output_addresses(tc, &msg->peer, NULL, 0, address);
+  }
+
   GNUNET_SERVER_transmit_context_append_data (tc, NULL, 0,
       GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE_RESPONSE);
   GNUNET_SERVER_transmit_context_run (tc, GNUNET_TIME_UNIT_FOREVER_REL);
@@ -859,12 +891,16 @@
     {&clients_handle_request_connect, NULL,
      GNUNET_MESSAGE_TYPE_TRANSPORT_REQUEST_CONNECT,
      sizeof (struct TransportRequestConnectMessage)},
+    /* converts a binary address to a human readable address */
     {&clients_handle_address_to_string, NULL,
      GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_TO_STRING, 0},
-    {&clients_handle_peer_address_lookup, NULL,
+#if 0
+    /* Not used at the moment, gets all addresses of a peer */
+    {&clients_handle_peer_address_iterate, NULL,
      GNUNET_MESSAGE_TYPE_TRANSPORT_PEER_ADDRESS_LOOKUP,
      sizeof (struct PeerAddressLookupMessage)},
-    {&clients_handle_address_iterate, NULL,
+#endif
+     {&clients_handle_address_iterate, NULL,
      GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE,
      sizeof (struct AddressIterateMessage)},
     {&GST_blacklist_handle_init, NULL,

Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2011-11-29 
17:13:57 UTC (rev 18382)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2011-11-29 
18:04:01 UTC (rev 18383)
@@ -1561,7 +1561,27 @@
   return n->latency;
 }
 
+/**
+ * Obtain current address information for the given neighbour.
+ *
+ * @param peer
+ * @return address currently used
+ */
+struct GNUNET_HELLO_Address *
+GST_neighbour_get_current_address (const struct GNUNET_PeerIdentity *peer)
+{
+  struct NeighbourMapEntry *n;
 
+  n = lookup_neighbour (peer);
+  if ( (NULL == n) ||
+       ( (n->address == NULL) && (n->session == NULL) ) )
+    return NULL;
+
+  return n->address;
+}
+
+
+
 /**
  * Create an entry in the neighbour map for the given peer
  *

Modified: gnunet/src/transport/gnunet-service-transport_neighbours.h
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.h  2011-11-29 
17:13:57 UTC (rev 18382)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.h  2011-11-29 
18:04:01 UTC (rev 18383)
@@ -285,6 +285,16 @@
 
 
 /**
+ * Obtain current address information for the given neighbour.
+ *
+ * @param peer
+ * @return address currently used
+ */
+struct GNUNET_HELLO_Address *
+GST_neighbour_get_current_address (const struct GNUNET_PeerIdentity *peer);
+
+
+/**
  * We received a disconnect message from the given peer,
  * validate and process.
  *

Modified: gnunet/src/transport/gnunet-transport.c
===================================================================
--- gnunet/src/transport/gnunet-transport.c     2011-11-29 17:13:57 UTC (rev 
18382)
+++ gnunet/src/transport/gnunet-transport.c     2011-11-29 18:04:01 UTC (rev 
18383)
@@ -76,6 +76,11 @@
 static int test_configuration;
 
 /**
+ * Option -n.
+ */
+static int numeric;
+
+/**
  * Global return value (0 success).
  */
 static int ret;
@@ -150,7 +155,6 @@
 
 };
 
-struct GNUNET_CONFIGURATION_Handle * cfg;
 
 /**
  * Display the result of the test.
@@ -436,7 +440,17 @@
 void process_string (void *cls,
                      const char *address)
 {
-  fprintf (stdout, _("process_string\n"));
+  struct GNUNET_PeerIdentity * peer = cls;
+
+  if ((address != NULL))
+  {
+    fprintf (stdout, _("Peer `%s' : %s\n"), GNUNET_i2s(peer), address);
+  }
+  else
+  {
+    /* done */
+    GNUNET_free (peer);
+  }
 }
 
 /**
@@ -451,23 +465,24 @@
 static void
 process_address (void *cls, const struct GNUNET_HELLO_Address *address)
 {
+  const struct GNUNET_CONFIGURATION_Handle * cfg = cls;
+
   if (address == NULL)
   {
+    /* done */
     return;
   }
 
-  fprintf (stdout, _("Peer `%s'\n"),
-           GNUNET_i2s (&address->peer));
+  struct GNUNET_PeerIdentity * peer = GNUNET_malloc(sizeof (struct 
GNUNET_PeerIdentity));
+  *peer = address->peer;
 
   /* Resolve address to string */
-  /*
   GNUNET_TRANSPORT_address_to_string (cfg,
-      address,
-      GNUNET_NO,
-      GNUNET_TIME_UNIT_MINUTES,
-      &process_string,
-      NULL);
-      */
+    address,
+    numeric,
+    GNUNET_TIME_UNIT_MINUTES,
+    &process_string,
+    peer);
 }
 
 
@@ -483,7 +498,6 @@
 run (void *cls, char *const *args, const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
-  cfg = cfg;
   if (test_configuration)
   {
     do_test_configuration (cfg);
@@ -525,7 +539,7 @@
   if (iterate_connections)
   {
     GNUNET_TRANSPORT_address_iterate (cfg, GNUNET_TIME_UNIT_MINUTES,
-                                      &process_address, NULL);
+                                      &process_address, (void *)cfg);
   }
 }
 
@@ -550,6 +564,9 @@
     {'t', "test", NULL,
      gettext_noop ("test transport configuration (involves external server)"),
      0, &GNUNET_GETOPT_set_one, &test_configuration},
+     {'n', "numeric", NULL,
+      gettext_noop ("do not resolve hostnames"),
+      0, &GNUNET_GETOPT_set_one, &numeric},
     GNUNET_GETOPT_OPTION_VERBOSE (&verbosity),
     GNUNET_GETOPT_OPTION_END
   };

Modified: gnunet/src/transport/transport.conf
===================================================================
--- gnunet/src/transport/transport.conf 2011-11-29 17:13:57 UTC (rev 18382)
+++ gnunet/src/transport/transport.conf 2011-11-29 18:04:01 UTC (rev 18383)
@@ -22,8 +22,9 @@
 # BINDTO =
 # REJECT_FROM =
 # REJECT_FROM6 =
-# PREFIX =
+PREFIX = valgrind --leak-check=full
 
+
 [transport-tcp]
 # Use 0 to ONLY advertise as a peer behind NAT (no port binding)
 PORT = 2086

Modified: gnunet/src/transport/transport_api_address_lookup.c
===================================================================
--- gnunet/src/transport/transport_api_address_lookup.c 2011-11-29 17:13:57 UTC 
(rev 18382)
+++ gnunet/src/transport/transport_api_address_lookup.c 2011-11-29 18:04:01 UTC 
(rev 18383)
@@ -42,12 +42,12 @@
 /**
  * Context for the address lookup.
  */
-struct GNUNET_TRANSPORT_PeerAddressLookupContext
+struct GNUNET_TRANSPORT_PeerIterateContext
 {
   /**
-   * Function to call with the human-readable address.
+   * Function to call with the binary address.
    */
-  GNUNET_TRANSPORT_AddressLookUpCallback cb;
+  GNUNET_TRANSPORT_PeerIterateCallback cb;
 
   /**
    * Closure for cb.
@@ -76,11 +76,12 @@
 peer_address_response_processor (void *cls,
                                  const struct GNUNET_MessageHeader *msg)
 {
-  struct GNUNET_TRANSPORT_PeerAddressLookupContext *pal_ctx = cls;
-  struct AddressIterateResponseMessage *air_msg = (struct 
AddressIterateResponseMessage *) &msg[1];
-  const struct GNUNET_HELLO_Address *address;
+  struct GNUNET_TRANSPORT_PeerIterateContext *pal_ctx = cls;
+  struct AddressIterateResponseMessage *air_msg;
+  struct GNUNET_HELLO_Address *address;
   uint16_t size;
-  if (air_msg == NULL)
+
+  if (msg == NULL)
   {
     pal_ctx->cb (pal_ctx->cb_cls, NULL);
     GNUNET_CLIENT_disconnect (pal_ctx->client, GNUNET_NO);
@@ -98,6 +99,16 @@
     return;
   }
 
+  if (size < sizeof (struct GNUNET_MessageHeader) + sizeof (struct 
AddressIterateResponseMessage))
+  {
+    GNUNET_break_op (0);
+    pal_ctx->cb (pal_ctx->cb_cls, NULL );
+    GNUNET_CLIENT_disconnect (pal_ctx->client, GNUNET_NO);
+    GNUNET_free (pal_ctx);
+    return;
+  }
+
+  air_msg = (struct AddressIterateResponseMessage *) &msg[1];
   size_t tlen = ntohl(air_msg->pluginlen);
   size_t alen = ntohl(air_msg->addrlen);
 
@@ -113,7 +124,7 @@
   char * addr = (char *) &air_msg[1];
   char * transport_name = &addr[alen];
 
-  if (transport_name[tlen] != '\0')
+  if (transport_name[tlen-1] != '\0')
   {
     GNUNET_break_op (0);
     pal_ctx->cb (pal_ctx->cb_cls, NULL );
@@ -122,8 +133,6 @@
     return;
   }
 
-  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "peer %s transport_name: 
%s\n",GNUNET_i2s(&air_msg->peer), transport_name);
-
   address = GNUNET_HELLO_address_allocate(&air_msg->peer, transport_name, 
addr, alen);
 
   /* expect more replies */
@@ -131,28 +140,36 @@
                          GNUNET_TIME_absolute_get_remaining 
(pal_ctx->timeout));
 
   pal_ctx->cb (pal_ctx->cb_cls, address);
+  GNUNET_free (address);
 }
 
 
 /**
- * Return all the known addresses for a peer.
+ * Return all the known addresses for a specific peer or all peers.
+ * Returns continously all address if one_shot is set to GNUNET_NO
  *
+ * CHANGE: Returns the address(es) that we are currently using for this
+ * peer.  Upon completion, the 'AddressLookUpCallback' is called one more
+ * time with 'NULL' for the address and the peer.  After this, the operation 
must no
+ * longer be explicitly cancelled.
+ *
  * @param cfg configuration to use
- * @param peer peer identity to look up the addresses of
+ * @param peer peer identity to look up the addresses of, CHANGE: allow NULL 
for all (connected) peers
+ * @param one_shot GNUNET_YES to return the current state and then end (with 
NULL+NULL),
+ *                 GNUNET_NO to monitor the set of addresses used 
(continuously, must be explicitly cancelled)
  * @param timeout how long is the lookup allowed to take at most
  * @param peer_address_callback function to call with the results
  * @param peer_address_callback_cls closure for peer_address_callback
- * @return handle to cancel the operation, NULL on error
  */
-struct GNUNET_TRANSPORT_PeerAddressLookupContext *
+struct GNUNET_TRANSPORT_PeerIterateContext *
 GNUNET_TRANSPORT_peer_get_active_addresses (const struct 
GNUNET_CONFIGURATION_Handle *cfg,
                                             const struct GNUNET_PeerIdentity 
*peer,
                                             int one_shot,
                                             struct GNUNET_TIME_Relative 
timeout,
-                                            
GNUNET_TRANSPORT_AddressLookUpCallback peer_address_callback,
+                                            
GNUNET_TRANSPORT_PeerIterateCallback peer_address_callback,
                                             void *peer_address_callback_cls)
 {
-  struct GNUNET_TRANSPORT_PeerAddressLookupContext *pal_ctx;
+  struct GNUNET_TRANSPORT_PeerIterateContext *pal_ctx;
   struct AddressIterateMessage msg;
   struct GNUNET_CLIENT_Connection *client;
   struct GNUNET_TIME_Absolute abs_timeout;
@@ -174,7 +191,7 @@
   else
    memcpy (&msg.peer, peer , sizeof (struct GNUNET_PeerIdentity));
 
-  pal_ctx = GNUNET_malloc (sizeof (struct 
GNUNET_TRANSPORT_PeerAddressLookupContext));
+  pal_ctx = GNUNET_malloc (sizeof (struct 
GNUNET_TRANSPORT_PeerIterateContext));
   pal_ctx->cb = peer_address_callback;
   pal_ctx->cb_cls = peer_address_callback_cls;
   pal_ctx->timeout = abs_timeout;
@@ -195,7 +212,7 @@
  */
 void
 GNUNET_TRANSPORT_peer_get_active_addresses_cancel (struct
-                                             
GNUNET_TRANSPORT_PeerAddressLookupContext
+                                             
GNUNET_TRANSPORT_PeerIterateContext
                                              *alc)
 {
   GNUNET_CLIENT_disconnect (alc->client, GNUNET_NO);
@@ -203,7 +220,7 @@
 }
 
 /**
- * Return all the known addresses for all peers.
+ * Return all addresses for all peers.
  *
  * @param cfg configuration to use
  * @param timeout how long is the lookup allowed to take at most
@@ -213,7 +230,7 @@
 void
 GNUNET_TRANSPORT_address_iterate (const struct GNUNET_CONFIGURATION_Handle 
*cfg,
                                   struct GNUNET_TIME_Relative timeout,
-                                  GNUNET_TRANSPORT_AddressLookUpCallback
+                                  GNUNET_TRANSPORT_PeerIterateCallback
                                   peer_address_callback,
                                   void *peer_address_callback_cls)
 {

Modified: gnunet/src/transport/transport_api_address_to_string.c
===================================================================
--- gnunet/src/transport/transport_api_address_to_string.c      2011-11-29 
17:13:57 UTC (rev 18382)
+++ gnunet/src/transport/transport_api_address_to_string.c      2011-11-29 
18:04:01 UTC (rev 18383)
@@ -76,7 +76,7 @@
     return;
   }
   GNUNET_break (ntohs (msg->type) ==
-      GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_ITERATE_RESPONSE);
+      GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_TO_STRING_REPLY);
   size = ntohs (msg->size);
   if (size == sizeof (struct GNUNET_MessageHeader))
   {
@@ -131,8 +131,7 @@
   char *addrbuf;
 
   GNUNET_assert (address != NULL);
-  alen = GNUNET_HELLO_address_get_size (address);
-  len = sizeof (struct AddressLookupMessage) + alen;
+  len = sizeof (struct AddressLookupMessage) + GNUNET_HELLO_address_get_size 
(address);
   if (len >= GNUNET_SERVER_MAX_MESSAGE_SIZE)
   {
     GNUNET_break (0);
@@ -144,6 +143,8 @@
     return NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "GNUNET_TRANSPORT_address_to_string\n");
+
+  alen = address->address_length;
   msg = GNUNET_malloc (len);
   msg->header.size = htons (len);
   msg->header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_TO_STRING);
@@ -151,7 +152,9 @@
   msg->timeout = GNUNET_TIME_relative_hton (timeout);
   msg->addrlen = htonl (alen);
   addrbuf = (char *) &msg[1];
-  memcpy (addrbuf, address, alen);
+  memcpy (addrbuf, address->address, alen);
+  strcpy (&addrbuf[alen], address->transport_name);
+
   alc = GNUNET_malloc (sizeof (struct 
GNUNET_TRANSPORT_AddressToStringContext));
   alc->cb = aluc;
   alc->cb_cls = aluc_cls;
@@ -183,4 +186,4 @@
 
 
 
-/* end of transport_api_address_lookup.c */
+/* end of transport_api_address_to_string.c */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]