Add MTU negotiation

This commit is contained in:
Adrien Gallouët
2016-09-27 13:56:05 +00:00
parent caeed75918
commit 726a3eed13
4 changed files with 77 additions and 11 deletions

View File

@@ -240,3 +240,25 @@ ssize_t tun_write (int fd, const void *data, size_t size)
return ret;
#endif
}
int tun_set_mtu (char *dev_name, int mtu)
{
struct ifreq ifr = {
.ifr_mtu = mtu,
};
str_cpy(ifr.ifr_name, dev_name, IFNAMSIZ-1);
int fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd==-1)
return -1;
int ret = ioctl(fd, SIOCSIFMTU, &ifr);
int err = errno;
close(fd);
errno = err;
return ret;
}