From ae2bd6ea47158d549d85cdb37b0aee971ca42bb7 Mon Sep 17 00:00:00 2001 From: Julian Kranz Date: Sat, 31 Dec 2011 16:36:32 +0100 Subject: [PATCH] Iodine: Added minimal MTU for IPv6 --- src/client.c | 7 +++++++ src/iodine.c | 7 +++++-- src/tun.c | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/client.c b/src/client.c index 9f5dfe7..a361b38 100644 --- a/src/client.c +++ b/src/client.c @@ -1504,6 +1504,7 @@ handshake_login(int dns_fd, int seed) login_calculate(login, 16, password, seed); + for (i=0; running && i<5 ;i++) { send_login(dns_fd, login, 16); @@ -1519,6 +1520,12 @@ handshake_login(int dns_fd, int seed) } else if (sscanf(in, "%64[^-]-%64[^-]-%d-%d", server, client, &mtu, &netmask) == 4) { + /** + * Todo: Correct? + */ + if(mtu < 1280) + mtu = 1280; + server[64] = 0; client[64] = 0; if (tun_setip(client, server, netmask) == 0 && diff --git a/src/iodine.c b/src/iodine.c index 2872cd9..3ea9f50 100644 --- a/src/iodine.c +++ b/src/iodine.c @@ -138,7 +138,8 @@ main(int argc, char **argv) int hostname_maxlen; int rtable = 0; - printf("***MODIFIED***"); + printf("***MODIFIED***\n"); + fflush(stdout); nameserv_addr = NULL; topdomain = NULL; @@ -327,10 +328,12 @@ main(int argc, char **argv) retval = 1; goto cleanup1; } + if ((dns_fd = open_dns(0, INADDR_ANY)) == -1) { retval = 1; goto cleanup2; } + #ifdef OPENBSD if (rtable > 0) socket_setrtable(dns_fd, rtable); @@ -346,7 +349,7 @@ main(int argc, char **argv) retval = 1; goto cleanup2; } - + if (client_get_conn() == CONN_RAW_UDP) { fprintf(stderr, "Sending raw traffic directly to %s\n", client_get_raw_addr()); } diff --git a/src/tun.c b/src/tun.c index 504451f..3e746ae 100644 --- a/src/tun.c +++ b/src/tun.c @@ -472,7 +472,7 @@ tun_setip(const char *ip, const char *other_ip, int netbits) ip, #endif inet_ntoa(net)); - + fprintf(stderr, "Setting IP of %s to %s\n", if_name, ip); #ifndef LINUX r = system(cmdline);