[Top][All Lists]
[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);
}
/**
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r14521 - gnunet/src/vpn,
gnunet <=