Fixed #411 (very big DNS result over DoH).
This commit is contained in:
@@ -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
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user