Fixed #411 (very big DNS result over DoH).

This commit is contained in:
Revertron
2026-04-04 15:37:25 +02:00
parent cfb3cf6cf8
commit c90458eaaf
2 changed files with 10 additions and 1 deletions
+9
View File
@@ -166,6 +166,9 @@ impl VectorPacketBuffer {
impl PacketBuffer for VectorPacketBuffer {
fn read(&mut self) -> Result<u8> {
if self.pos >= self.buffer.len() {
return Err(BufferError::EndOfBuffer);
}
let res = self.buffer[self.pos];
self.pos += 1;
@@ -173,10 +176,16 @@ impl PacketBuffer for VectorPacketBuffer {
}
fn get(&mut self, pos: usize) -> Result<u8> {
if pos >= self.buffer.len() {
return Err(BufferError::EndOfBuffer);
}
Ok(self.buffer[pos])
}
fn get_range(&mut self, start: usize, len: usize) -> Result<&[u8]> {
if start + len > self.buffer.len() {
return Err(BufferError::EndOfBuffer);
}
Ok(&self.buffer[start..start + len as usize])
}
+1 -1
View File
@@ -617,7 +617,7 @@ impl DnsClient for HttpsDnsClient {
Ok(size) => {
let mut bytes: Vec<u8> = Vec::with_capacity(size);
response.into_body().into_reader()
.take(4096)
.take(65535)
.read_to_end(&mut bytes)?;
let mut buffer = VectorPacketBuffer::new();
buffer.buffer.extend_from_slice(bytes.as_slice());