Browse Source

fix tun_platform_write return value on FreeBSD: subtract 4-byte AF_INET header from writev result

congestion
Evgeny 4 months ago
parent
commit
01254406d8
  1. 3
      src/tun_freebsd.c

3
src/tun_freebsd.c

@ -356,7 +356,8 @@ ssize_t tun_platform_write(struct tun_if* tun, const uint8_t* buf, size_t len) {
iv[0].iov_len = sizeof(family);
iv[1].iov_base = (void*)buf;
iv[1].iov_len = len;
return writev(tun->fd, iv, 2);
ssize_t wr = writev(tun->fd, iv, 2);
return wr > 0 ? wr - 4 : wr; // вычесть 4-байтовый AF_INET заголовок
}
// Get poll fd for uasync
int tun_platform_get_poll_fd(struct tun_if* tun) {

Loading…
Cancel
Save