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;
|
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
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@@ -313,18 +329,16 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gt.mtu = GT_MTU(mud_get_mtu(mud));
|
gt_setup_mtu(mud, tun_name);
|
||||||
|
|
||||||
if (tun_set_mtu(tun_name, gt.mtu) == -1) {
|
|
||||||
perror("tun_set_mtu");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int mud_fd = mud_get_fd(mud);
|
int mud_fd = mud_get_fd(mud);
|
||||||
|
|
||||||
fd_set_nonblock(tun_fd);
|
fd_set_nonblock(tun_fd);
|
||||||
fd_set_nonblock(mud_fd);
|
fd_set_nonblock(mud_fd);
|
||||||
|
|
||||||
|
if (icmp_fd != -1)
|
||||||
|
fd_set_nonblock(icmp_fd);
|
||||||
|
|
||||||
gt_log("running...\n");
|
gt_log("running...\n");
|
||||||
|
|
||||||
fd_set rfds;
|
fd_set rfds;
|
||||||
@@ -412,16 +426,7 @@ main(int argc, char **argv)
|
|||||||
int r = mud_send(mud, &buf[p], q - p, tc);
|
int r = mud_send(mud, &buf[p], q - p, tc);
|
||||||
|
|
||||||
if (r == -1 && errno == EMSGSIZE) {
|
if (r == -1 && errno == EMSGSIZE) {
|
||||||
int mtu = GT_MTU(mud_get_mtu(mud));
|
gt_setup_mtu(mud, tun_name);
|
||||||
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (r == -1 && errno != EAGAIN)
|
if (r == -1 && errno != EAGAIN)
|
||||||
perror("mud_send");
|
perror("mud_send");
|
||||||
|
|||||||
Reference in New Issue
Block a user