mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 22:36:09 +03:00
udp: Fix mmsghdr struct initializer
On OpenWrt x64 there are paddings fields in the struct, making the initializer list not work.
This commit is contained in:
parent
fc36ebaf4f
commit
bd08115aee
@ -1160,8 +1160,12 @@ SendResult UDPSocketPosixSender::InternalSendmmsgBuffers(
|
|||||||
for (auto& buffer : buffers)
|
for (auto& buffer : buffers)
|
||||||
msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()});
|
msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()});
|
||||||
msgvec->reserve(buffers.size());
|
msgvec->reserve(buffers.size());
|
||||||
for (size_t j = 0; j < buffers.size(); j++)
|
for (size_t j = 0; j < buffers.size(); j++) {
|
||||||
msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0});
|
struct mmsghdr hdr = {};
|
||||||
|
hdr.msg_hdr.msg_iov = &msg_iov[j];
|
||||||
|
hdr.msg_hdr.msg_iovlen = 1;
|
||||||
|
msgvec->push_back(hdr);
|
||||||
|
}
|
||||||
int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0));
|
int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0));
|
||||||
SendResult send_result(0, 0, std::move(buffers));
|
SendResult send_result(0, 0, std::move(buffers));
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user