aboutsummaryrefslogtreecommitdiff
path: root/src/vpn
diff options
context:
space:
mode:
authorPhilipp Tölke <toelke@in.tum.de>2010-08-24 08:26:20 +0000
committerPhilipp Tölke <toelke@in.tum.de>2010-08-24 08:26:20 +0000
commit98dee9eb8d98dead0df67332c8ef18b198c8574a (patch)
tree66869fff5265682ec87f176351358f3ecbd4ab40 /src/vpn
parent87cacc2d2c3a529259167a0f90134a0f59291de7 (diff)
downloadgnunet-98dee9eb8d98dead0df67332c8ef18b198c8574a.tar.gz
gnunet-98dee9eb8d98dead0df67332c8ef18b198c8574a.zip
Hijacking the DNS should work now.
Diffstat (limited to 'src/vpn')
-rw-r--r--src/vpn/gnunet-service-dns.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/vpn/gnunet-service-dns.c b/src/vpn/gnunet-service-dns.c
index c96aaca8d..0dda76467 100644
--- a/src/vpn/gnunet-service-dns.c
+++ b/src/vpn/gnunet-service-dns.c
@@ -37,14 +37,14 @@ struct dns_cls {
37}; 37};
38 38
39void hijack(unsigned short port) { 39void hijack(unsigned short port) {
40 char* port_s = "12345"; 40 char port_s[5];
41 41
42 snprintf(port_s, 6, "%d", port); 42 snprintf(port_s, 6, "%d", port);
43 GNUNET_OS_start_process(NULL, NULL, "gnunet-helper-hijack-dns", "gnunet-hijack-dns", port_s, NULL); 43 GNUNET_OS_start_process(NULL, NULL, "gnunet-helper-hijack-dns", "gnunet-hijack-dns", port_s, NULL);
44} 44}
45 45
46void unhijack(unsigned short port) { 46void unhijack(unsigned short port) {
47 char* port_s = "12345"; 47 char port_s[5];
48 48
49 snprintf(port_s, 6, "%d", port); 49 snprintf(port_s, 6, "%d", port);
50 GNUNET_OS_start_process(NULL, NULL, "gnunet-helper-hijack-dns", "gnunet-hijack-dns", "-d", port_s, NULL); 50 GNUNET_OS_start_process(NULL, NULL, "gnunet-helper-hijack-dns", "gnunet-hijack-dns", "-d", port_s, NULL);
@@ -79,8 +79,6 @@ run (void *cls,
79 {NULL, NULL, 0, 0} 79 {NULL, NULL, 0, 0}
80 }; 80 };
81 81
82 fprintf(stderr, "%x\n", cls);
83
84 struct dns_cls* mycls = (struct dns_cls*)cls; 82 struct dns_cls* mycls = (struct dns_cls*)cls;
85 83
86 mycls->sched = sched; 84 mycls->sched = sched;
@@ -90,7 +88,7 @@ run (void *cls,
90 struct sockaddr_in * addr = alloca(sizeof(struct sockaddr_in)); 88 struct sockaddr_in * addr = alloca(sizeof(struct sockaddr_in));
91 memset(addr, 0, sizeof(struct sockaddr_in)); 89 memset(addr, 0, sizeof(struct sockaddr_in));
92 90
93 int err = GNUNET_NETWORK_socket_bind (mycls->dnsout, addr, sizeof(struct sockaddr_in)); 91 int err = GNUNET_NETWORK_socket_bind (mycls->dnsout, (struct sockaddr*)addr, sizeof(struct sockaddr_in));
94 err = getsockname(GNUNET_NETWORK_get_fd(mycls->dnsout), addr, (unsigned int[]){sizeof(struct sockaddr_in)}); 92 err = getsockname(GNUNET_NETWORK_get_fd(mycls->dnsout), addr, (unsigned int[]){sizeof(struct sockaddr_in)});
95 93
96 mycls->dnsoutport = htons(addr->sin_port); 94 mycls->dnsoutport = htons(addr->sin_port);
@@ -101,7 +99,7 @@ run (void *cls,
101 GNUNET_SCHEDULER_add_delayed (sched, 99 GNUNET_SCHEDULER_add_delayed (sched,
102 GNUNET_TIME_UNIT_FOREVER_REL, 100 GNUNET_TIME_UNIT_FOREVER_REL,
103 &cleanup_task, 101 &cleanup_task,
104 NULL); 102 cls);
105} 103}
106 104
107/** 105/**
@@ -116,8 +114,6 @@ main (int argc, char *const *argv)
116{ 114{
117 struct dns_cls* cls = GNUNET_malloc(sizeof(struct dns_cls)); 115 struct dns_cls* cls = GNUNET_malloc(sizeof(struct dns_cls));
118 116
119 fprintf(stderr, "%x\n", cls);
120
121 return (GNUNET_OK == 117 return (GNUNET_OK ==
122 GNUNET_SERVICE_run (argc, 118 GNUNET_SERVICE_run (argc,
123 argv, 119 argv,