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-06 16:52:26 +01:00 committed by Barak A. Pearlmutter
parent 0974d96d33
commit 839ce1a266

View file

@ -1505,6 +1505,16 @@ handshake_version(int dns_fd, int *seed)
return 1;
}
static char handshake_login_info_check(char *in, char *server, char *client,
int *mtu, int *netmask, char *server6, char *client6, int *netmask6) {
if (_v6)
return sscanf(in, "%64[^-]-%64[^-]-%d-%d-%64[^-]-%64[^-]-%d", server,
client, mtu, netmask, server6, client6, netmask6) == 7;
else
return sscanf(in, "%64[^-]-%64[^-]-%d-%d", server, client, mtu, netmask)
== 4;
}
static int
handshake_login(int dns_fd, int seed)
{
@ -1535,13 +1545,13 @@ 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[^-]-%64[^-]-%d",
server, client, &mtu, &netmask, server6, client6, &netmask6) == 7) {
} else if (handshake_login_info_check(in, server, client, &mtu, &netmask,
server6, client6, &netmask6)) {
server[64] = 0;
client[64] = 0;
if (tun_setip(client, server, netmask) == 0 &&
tun_setmtu(mtu) == 0 && !tun_setip6(client6, netmask6)) {
tun_setmtu(mtu) == 0 && (!_v6 || !tun_setip6(client6, netmask6))) {
fprintf(stderr, "Server tunnel IP is %s\n", server);
@ -1549,7 +1559,7 @@ handshake_login(int dns_fd, int seed)
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 {