gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r14521 - gnunet/src/vpn


From: gnunet
Subject: [GNUnet-SVN] r14521 - gnunet/src/vpn
Date: Thu, 24 Feb 2011 12:45:11 +0100

Author: toelke
Date: 2011-02-24 12:45:11 +0100 (Thu, 24 Feb 2011)
New Revision: 14521

Modified:
   gnunet/src/vpn/gnunet-daemon-vpn.c
   gnunet/src/vpn/gnunet-service-dns.c
Log:
fix mem-leaks and other nasty stuff

Modified: gnunet/src/vpn/gnunet-daemon-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-daemon-vpn.c  2011-02-24 11:45:08 UTC (rev 14520)
+++ gnunet/src/vpn/gnunet-daemon-vpn.c  2011-02-24 11:45:11 UTC (rev 14521)
@@ -470,8 +470,8 @@
     restart_hijack = 0;
     hashmap = GNUNET_CONTAINER_multihashmap_create(65536);
     udp_connections = GNUNET_CONTAINER_multihashmap_create(65536);
-    GNUNET_SCHEDULER_add_now (connect_to_service_dns, NULL);
-    GNUNET_SCHEDULER_add_now (start_helper_and_schedule, NULL);
+    GNUNET_SCHEDULER_TaskIdentifier conn_task = GNUNET_SCHEDULER_add_now 
(connect_to_service_dns, NULL);
+    GNUNET_SCHEDULER_add_after (conn_task, start_helper_and_schedule, NULL);
     GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_FOREVER_REL, &cleanup, cls);
 }
 

Modified: gnunet/src/vpn/gnunet-service-dns.c
===================================================================
--- gnunet/src/vpn/gnunet-service-dns.c 2011-02-24 11:45:08 UTC (rev 14520)
+++ gnunet/src/vpn/gnunet-service-dns.c 2011-02-24 11:45:11 UTC (rev 14521)
@@ -102,51 +102,60 @@
  * Hijack all outgoing DNS-Traffic but for traffic leaving "our" port.
  */
 static void
-hijack(void* cls, const struct GNUNET_SCHEDULER_TaskContext* tc) {
-    char port_s[6];
-    char* virt_dns;
+hijack (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  char port_s[6];
+  char *virt_dns;
+  struct GNUNET_OS_Process *proc;
 
-    if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_string(cfg, "vpn", 
"VIRTDNS", &virt_dns))
-      {
-       GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "No entry 'VIRTDNS' in 
configuration!\n");
-       exit(1);
-      }
+  if (GNUNET_SYSERR ==
+      GNUNET_CONFIGURATION_get_value_string (cfg, "vpn", "VIRTDNS",
+                                             &virt_dns))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  "No entry 'VIRTDNS' in configuration!\n");
+      exit (1);
+    }
 
-    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Hijacking, port is %d\n", dnsoutport);
-    snprintf(port_s, 6, "%d", dnsoutport);
-    GNUNET_OS_process_close (GNUNET_OS_start_process(NULL,
-                                                    NULL,
-                                                    "gnunet-helper-hijack-dns",
-                                                    "gnunet-hijack-dns",
-                                                    port_s,
-                                                     virt_dns,
-                                                    NULL));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Hijacking, port is %d\n", dnsoutport);
+  snprintf (port_s, 6, "%d", dnsoutport);
+  if (NULL != (proc = GNUNET_OS_start_process (NULL,
+                                               NULL,
+                                               "gnunet-helper-hijack-dns",
+                                               "gnunet-hijack-dns",
+                                               port_s, virt_dns, NULL)))
+    GNUNET_OS_process_close (proc);
+  GNUNET_free (virt_dns);
 }
 
 /**
  * Delete the hijacking-routes
  */
 static void
-unhijack(unsigned short port) {
-    char port_s[6];
-    char* virt_dns;
+unhijack (unsigned short port)
+{
+  char port_s[6];
+  char *virt_dns;
+  struct GNUNET_OS_Process *proc;
 
-    if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_string(cfg, "vpn", 
"VIRTDNS", &virt_dns))
-      {
-       GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "No entry 'VIRTDNS' in 
configuration!\n");
-       exit(1);
-      }
+  if (GNUNET_SYSERR ==
+      GNUNET_CONFIGURATION_get_value_string (cfg, "vpn", "VIRTDNS",
+                                             &virt_dns))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  "No entry 'VIRTDNS' in configuration!\n");
+      exit (1);
+    }
 
-    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "unHijacking, port is %d\n", port);
-    snprintf(port_s, 6, "%d", port);
-    GNUNET_OS_start_process(NULL,
-                           NULL,
-                           "gnunet-helper-hijack-dns",
-                           "gnunet-hijack-dns",
-                           "-d",
-                           port_s,
-                            virt_dns,
-                           NULL);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "unHijacking, port is %d\n", port);
+  snprintf (port_s, 6, "%d", port);
+  if (NULL != (proc = GNUNET_OS_start_process (NULL,
+                                               NULL,
+                                               "gnunet-helper-hijack-dns",
+                                               "gnunet-hijack-dns",
+                                               "-d", port_s, virt_dns, NULL)))
+    GNUNET_OS_process_close (proc);
+  GNUNET_free (virt_dns);
 }
 
 /**




reply via email to

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