Kernel: Set message flags in UDP and TCP recvmsg

This commit is contained in:
Bananymous 2025-11-10 21:50:21 +02:00
parent c1e2c660bf
commit bb86520094
2 changed files with 7 additions and 0 deletions

View File

@ -214,6 +214,8 @@ namespace Kernel
TRY(Thread::current().block_or_eintr_indefinite(m_thread_blocker, &m_mutex));
}
message.msg_flags = 0;
size_t total_recv = 0;
for (int i = 0; i < message.msg_iovlen; i++)
{

View File

@ -120,12 +120,17 @@ namespace Kernel
auto* packet_buffer = reinterpret_cast<uint8_t*>(m_packet_buffer->vaddr());
message.msg_flags = 0;
size_t total_recv = 0;
for (int i = 0; i < message.msg_iovlen; i++)
{
const size_t nrecv = BAN::Math::min<size_t>(message.msg_iov[i].iov_len, packet_info.packet_size - total_recv);
memcpy(message.msg_iov[i].iov_base, packet_buffer + total_recv, nrecv);
total_recv += nrecv;
if (nrecv < packet_info.packet_size)
message.msg_flags |= MSG_TRUNC;
}
memmove(