cloning cfg to make client shutdown function useful
authorChristian Grothoff <christian@grothoff.org>
Sat, 31 Oct 2009 20:40:29 +0000 (20:40 +0000)
committerChristian Grothoff <christian@grothoff.org>
Sat, 31 Oct 2009 20:40:29 +0000 (20:40 +0000)
src/util/client.c

index 3c6f0c40579bfeb2cd51391e5f081e5c1755fdbd..8915c2f6574a8541fbe6d3b9b34417b25d27bdfb 100644 (file)
@@ -127,8 +127,8 @@ struct GNUNET_CLIENT_Connection
   /**
    * Our configuration.
    */
-  const struct GNUNET_CONFIGURATION_Handle *cfg;
-
+  struct GNUNET_CONFIGURATION_Handle *cfg;
+  
   /**
    * Name of the service we interact with.
    */
@@ -262,7 +262,7 @@ GNUNET_CLIENT_connect (struct GNUNET_SCHEDULER_Handle *sched,
   ret->sock = sock;
   ret->sched = sched;
   ret->service_name = GNUNET_strdup (service_name);
-  ret->cfg = cfg;
+  ret->cfg = GNUNET_CONFIGURATION_dup (cfg);
   return ret;
 }
 
@@ -280,6 +280,7 @@ finish_cleanup (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
     GNUNET_CLIENT_notify_transmit_ready_cancel (sock->th);    
   GNUNET_array_grow (sock->received_buf, sock->received_size, 0);
   GNUNET_free (sock->service_name);
+  GNUNET_CONFIGURATION_destroy (sock->cfg);
   GNUNET_free (sock);
 }