fix tun_platform_write return value on FreeBSD: subtract 4-byte AF_INET header from writev result
This commit is contained in:
1 parent
c4b1436919
commit
01254406d8
1 file changed
+2
-1
+2
-1
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user