Don't modify mtu from mud_get_mtu()
This commit is contained in:
34
src/main.c
34
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,12 +329,7 @@ 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);
|
||||||
|
|
||||||
@@ -415,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