|
|
|
@ -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[0].iov_len = sizeof(family); |
|
|
|
iv[1].iov_base = (void*)buf; |
|
|
|
iv[1].iov_base = (void*)buf; |
|
|
|
iv[1].iov_len = len; |
|
|
|
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
|
|
|
|
// Get poll fd for uasync
|
|
|
|
int tun_platform_get_poll_fd(struct tun_if* tun) { |
|
|
|
int tun_platform_get_poll_fd(struct tun_if* tun) { |
|
|
|
|