Compare commits
3 Commits
v0.0.80-mu
...
v0.0.81-mu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8595c36b4 | ||
|
|
1dfe105bd0 | ||
|
|
f2ead2e4e2 |
2
mud
2
mud
Submodule mud updated: fe5499d46d...fd1a1285ac
37
src/main.c
37
src/main.c
@@ -229,6 +229,22 @@ gt_setup_option(int argc, char **argv)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
gt_setup_mtu(struct mud *mud, char *tun_name)
|
||||
{
|
||||
int mtu = mud_get_mtu(mud);
|
||||
|
||||
if (mtu == (int)gt.mtu)
|
||||
return;
|
||||
|
||||
gt.mtu = mtu;
|
||||
|
||||
gt_log("setup MTU to %i on interface %s\n", mtu, tun_name);
|
||||
|
||||
if (tun_set_mtu(tun_name, mtu) == -1)
|
||||
perror("tun_set_mtu");
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
@@ -313,18 +329,16 @@ main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
gt.mtu = GT_MTU(mud_get_mtu(mud));
|
||||
|
||||
if (tun_set_mtu(tun_name, gt.mtu) == -1) {
|
||||
perror("tun_set_mtu");
|
||||
return 1;
|
||||
}
|
||||
gt_setup_mtu(mud, tun_name);
|
||||
|
||||
int mud_fd = mud_get_fd(mud);
|
||||
|
||||
fd_set_nonblock(tun_fd);
|
||||
fd_set_nonblock(mud_fd);
|
||||
|
||||
if (icmp_fd != -1)
|
||||
fd_set_nonblock(icmp_fd);
|
||||
|
||||
gt_log("running...\n");
|
||||
|
||||
fd_set rfds;
|
||||
@@ -412,16 +426,7 @@ main(int argc, char **argv)
|
||||
int r = mud_send(mud, &buf[p], q - p, tc);
|
||||
|
||||
if (r == -1 && errno == EMSGSIZE) {
|
||||
int mtu = GT_MTU(mud_get_mtu(mud));
|
||||
|
||||
if (mtu != (int)gt.mtu) {
|
||||
gt.mtu = mtu;
|
||||
|
||||
gt_log("setup MTU to %i on interface %s\n", mtu, tun_name);
|
||||
|
||||
if (tun_set_mtu(tun_name, mtu) == -1)
|
||||
perror("tun_set_mtu");
|
||||
}
|
||||
gt_setup_mtu(mud, tun_name);
|
||||
} else {
|
||||
if (r == -1 && errno != EAGAIN)
|
||||
perror("mud_send");
|
||||
|
||||
Reference in New Issue
Block a user