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

This commit is contained in:
Evgeny committed 2026-05-31 00:53:19 +03:00
1 parent c4b1436919
commit 01254406d8
1 file changed
+2 -1
+2 -1
View File
@@ -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) {