mirror of
https://github.com/yarrick/iodine.git
synced 2025-04-07 19:12:07 +00:00
---
This commit is contained in:
parent
ef124fcf3a
commit
2e2bac1dea
3 changed files with 25 additions and 4 deletions
12
src/client.c
12
src/client.c
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue