1
0
Fork 0
mirror of https://github.com/yarrick/iodine.git synced 2025-04-07 19:12:07 +00:00
This commit is contained in:
Julian Kranz 2012-01-01 17:28:44 +01:00 committed by Barak A. Pearlmutter
parent ef124fcf3a
commit 2e2bac1dea
3 changed files with 25 additions and 4 deletions

View file

@ -1502,6 +1502,9 @@ handshake_login(int dns_fd, int seed)
int i;
int read;
char server6[65];
char client6[65];
login_calculate(login, 16, password, seed);
@ -1514,11 +1517,16 @@ handshake_login(int dns_fd, int seed)
/*XXX START adjust indent 1 tab back*/
if (read > 0) {
int netmask;
int netmask6;
if (strncmp("LNAK", in, 4) == 0) {
fprintf(stderr, "Bad password\n");
return 1;
} else if (sscanf(in, "%64[^-]-%64[^-]-%d-%d",
server, client, &mtu, &netmask) == 4) {
} 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);
server[64] = 0;
client[64] = 0;

View file

@ -789,8 +789,19 @@ handle_null_request(int tun_fd, int dns_fd, struct query *q, int domain_len)
tempip.s_addr = users[userid].tun_ip;
tmp[1] = strdup(inet_ntoa(tempip));
read = snprintf(out, sizeof(out), "%s-%s-%d-%d",
tmp[0], tmp[1], my_mtu, netmask);
struct in6_addr ip6;
memcpy(&ip6, &my_net6, sizeof(my_net6));
inet6_addr_add(&ip6, 1);
char server6[41];
inet_ntop(AF_INET6, &ip6, server6, sizeof(server6));
memcpy(&ip6, &(users[userid].tun_ip6), sizeof(my_net6));
char client6[41];
inet_ntop(AF_INET6, &ip6, client6, sizeof(client6));
read = snprintf(out, sizeof(out), "%s-%s-%d-%d-%s-%s-%d",
tmp[0], tmp[1], my_mtu, netmask, server6, client6, netmask6);
write_dns(dns_fd, q, out, read, users[userid].downenc);
q->id = 0;

View file

@ -442,6 +442,8 @@ int tun_setip6(char const *ip6, char netmask6) {
ip6,
netmask6);
fprintf(stderr, "Setting IPv6 of %s to %s/%d\n", if_name, ip6, netmask6);
return system(cmdline);
}