1
0
Fork 0
mirror of https://github.com/yarrick/iodine.git synced 2025-04-07 19:12:07 +00:00

Iodine: Changed handshake protocol to support IPv6

This commit is contained in:
Julian Kranz 2012-01-01 18:14:20 +01:00 committed by Barak A. Pearlmutter
parent 2e2bac1dea
commit 5447492c80
2 changed files with 10 additions and 7 deletions

View file

@ -1521,19 +1521,20 @@ handshake_login(int dns_fd, int seed)
if (strncmp("LNAK", in, 4) == 0) {
fprintf(stderr, "Bad password\n");
return 1;
} else if (sscanf(in, "%64[^-]-%64[^-]-%d-%d-%64[^-]-%d",
server, client, &mtu, &netmask, server6, client6, &netmask6) == 4) {
fprintf(stderr, "Server tunnel IPv6 is %s\n", server6);
fprintf(stderr, "Client tunnel IPv6 is %s\n", client6);
fprintf(stderr, "Tunnel netmask is %d\n", netmask6);
} else if (sscanf(in, "%64[^-]-%64[^-]-%d-%d-%64[^-]-%64[^-]-%d",
server, client, &mtu, &netmask, server6, client6, &netmask6) == 7) {
server[64] = 0;
client[64] = 0;
if (tun_setip(client, server, netmask) == 0 &&
tun_setmtu(mtu) == 0) {
tun_setmtu(mtu) == 0 && !tun_setip6(client6, netmask6)) {
fprintf(stderr, "Server tunnel IP is %s\n", server);
fprintf(stderr, "Server tunnel IPv6 is %s\n", server6);
fprintf(stderr, "Client tunnel IPv6 is %s\n", client6);
fprintf(stderr, "Tunnel netmask6 is %d\n", netmask6);
return 0;
} else {
errx(4, "Failed to set IP and MTU");

View file

@ -803,6 +803,8 @@ handle_null_request(int tun_fd, int dns_fd, struct query *q, int domain_len)
read = snprintf(out, sizeof(out), "%s-%s-%d-%d-%s-%s-%d",
tmp[0], tmp[1], my_mtu, netmask, server6, client6, netmask6);
printf("%s\n", out);
write_dns(dns_fd, q, out, read, users[userid].downenc);
q->id = 0;
syslog(LOG_NOTICE, "accepted password from user #%d, given IP %s", userid, tmp[1]);