mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 21:27:34 +00:00
LookupServer: Use DuplexMemoryStream instead of BufferStream.
This commit is contained in:
parent
3fa0bba4b4
commit
8f06e4aaa4
1 changed files with 5 additions and 7 deletions
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include "DNSRequest.h"
|
#include "DNSRequest.h"
|
||||||
#include "DNSPacket.h"
|
#include "DNSPacket.h"
|
||||||
#include <AK/BufferStream.h>
|
#include <AK/MemoryStream.h>
|
||||||
#include <AK/StringBuilder.h>
|
#include <AK/StringBuilder.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
@ -77,22 +77,20 @@ ByteBuffer DNSRequest::to_byte_buffer() const
|
||||||
request_header.set_recursion_desired(true);
|
request_header.set_recursion_desired(true);
|
||||||
request_header.set_question_count(m_questions.size());
|
request_header.set_question_count(m_questions.size());
|
||||||
|
|
||||||
auto buffer = ByteBuffer::create_uninitialized(m_questions.size() * 4096);
|
DuplexMemoryStream stream;
|
||||||
BufferStream stream(buffer);
|
|
||||||
|
|
||||||
stream << ByteBuffer::wrap(&request_header, sizeof(request_header));
|
stream << ReadonlyBytes { &request_header, sizeof(request_header) };
|
||||||
|
|
||||||
for (auto& question : m_questions) {
|
for (auto& question : m_questions) {
|
||||||
auto parts = question.name().split('.');
|
auto parts = question.name().split('.');
|
||||||
for (auto& part : parts) {
|
for (auto& part : parts) {
|
||||||
stream << (u8)part.length();
|
stream << (u8)part.length();
|
||||||
stream << part;
|
stream << part.bytes();
|
||||||
}
|
}
|
||||||
stream << '\0';
|
stream << '\0';
|
||||||
stream << htons(question.record_type());
|
stream << htons(question.record_type());
|
||||||
stream << htons(question.class_code());
|
stream << htons(question.class_code());
|
||||||
}
|
}
|
||||||
stream.snip();
|
|
||||||
|
|
||||||
return buffer;
|
return stream.copy_into_contiguous_buffer();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue