diff options
author | Philipp Tölke <toelke@in.tum.de> | 2010-08-24 08:26:20 +0000 |
---|---|---|
committer | Philipp Tölke <toelke@in.tum.de> | 2010-08-24 08:26:20 +0000 |
commit | 98dee9eb8d98dead0df67332c8ef18b198c8574a (patch) | |
tree | 66869fff5265682ec87f176351358f3ecbd4ab40 /src/vpn | |
parent | 87cacc2d2c3a529259167a0f90134a0f59291de7 (diff) | |
download | gnunet-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.c | 12 |
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 | ||
39 | void hijack(unsigned short port) { | 39 | void 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 | ||
46 | void unhijack(unsigned short port) { | 46 | void 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, |