Release 0.5.0-rc2

This commit is contained in:
Erik Ekman 2009-01-17 09:06:33 +00:00
parent 134fa90727
commit 30a3bb9445
4 changed files with 27 additions and 10 deletions

View File

@ -5,7 +5,11 @@ iodine - http://code.kryo.se/iodine
CHANGES: CHANGES:
2009-01-10: 0.5.0-rc1 "iPassed" 2009-01-17: 0.5.0-rc2
- Fixed endless loop in fragment size autodetection, #39.
- Fixed broken hostname dot placing with specific lengths, #40.
2009-01-10: 0.5.0-rc1
- Fixed segfault in server when sending version reject. - Fixed segfault in server when sending version reject.
- Applied patch to make iodine build on BeOS R5-BONE and Haiku, - Applied patch to make iodine build on BeOS R5-BONE and Haiku,
from Francois Revol. Still work to do to get tun device working. from Francois Revol. Still work to do to get tun device working.

View File

@ -52,12 +52,12 @@ inline_dotify(char *buf, size_t buflen)
pos = (unsigned) (reader - buf) + 1; pos = (unsigned) (reader - buf) + 1;
while (dots) { while (dots) {
*writer-- = *reader--;
pos--;
if (pos % 57 == 0) { if (pos % 57 == 0) {
*writer-- = '.'; *writer-- = '.';
dots--; dots--;
} }
*writer-- = *reader--;
pos--;
} }
/* return new length of string */ /* return new length of string */

View File

@ -539,12 +539,12 @@ handshake(int dns_fd)
printf("Version ok, both using protocol v 0x%08x. You are user #%d\n", VERSION, userid); printf("Version ok, both using protocol v 0x%08x. You are user #%d\n", VERSION, userid);
goto perform_login; goto perform_login;
} else if (strncmp("VNAK", in, 4) == 0) { } else if (strncmp("VNAK", in, 4) == 0) {
errx(1, "You use protocol v 0x%08x, server uses v 0x%08x. Giving up", warnx("You use protocol v 0x%08x, server uses v 0x%08x. Giving up",
VERSION, payload); VERSION, payload);
/* NOTREACHED */ return 1;
} else if (strncmp("VFUL", in, 4) == 0) { } else if (strncmp("VFUL", in, 4) == 0) {
errx(1, "Server full, all %d slots are taken. Try again later", payload); warnx("Server full, all %d slots are taken. Try again later", payload);
/* NOTREACHED */ return 1;
} }
} else } else
warnx("did not receive proper login challenge"); warnx("did not receive proper login challenge");
@ -601,8 +601,8 @@ perform_login:
printf("Retrying login...\n"); printf("Retrying login...\n");
} }
errx(1, "couldn't login to server"); warnx("couldn't login to server");
/* NOTREACHED */ return 1;
perform_case_check: perform_case_check:
case_preserved = 0; case_preserved = 0;
@ -703,7 +703,7 @@ autodetect_max_fragsize:
int range = 768; int range = 768;
max_downstream_frag_size = 0; max_downstream_frag_size = 0;
printf("Autoprobing max downstream fragment size... (skip with -m fragsize)\n"); printf("Autoprobing max downstream fragment size... (skip with -m fragsize)\n");
while (range >= 8 || !max_downstream_frag_size) { while (running && range > 0 && (range >= 8 || !max_downstream_frag_size)) {
for (i=0; running && i<3 ;i++) { for (i=0; running && i<3 ;i++) {
tv.tv_sec = 1; tv.tv_sec = 1;
tv.tv_usec = 0; tv.tv_usec = 0;
@ -736,6 +736,17 @@ autodetect_max_fragsize:
range >>= 1; range >>= 1;
proposed_fragsize -= range; proposed_fragsize -= range;
} }
if (!running) {
printf("\n");
warnx("stopped while autodetecting fragment size (Try probing manually with -m)");
return 1;
}
if (range == 0) {
/* Tried all the way down to 2 and found no good size */
printf("\n");
warnx("found no accepted fragment size. (Try probing manually with -m)");
return 1;
}
printf("will use %d\n", max_downstream_frag_size); printf("will use %d\n", max_downstream_frag_size);
} }
printf("Setting downstream fragment size to max %d...\n", max_downstream_frag_size); printf("Setting downstream fragment size to max %d...\n", max_downstream_frag_size);

View File

@ -31,6 +31,8 @@ struct tuple
"aaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaa"}, "aaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaa"},
{ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", { "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."}, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."},
{ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
{ "abc123", "abc123" }, { "abc123", "abc123" },
{ NULL, NULL } { NULL, NULL }
}; };