You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Alfis/src/dns/netutil.rs

20 lines
511 B
Rust

use std::io::{Read, Result, Write};
use std::net::TcpStream;
pub fn read_packet_length(stream: &mut TcpStream) -> Result<u16> {
let mut len_buffer = [0; 2];
stream.read_exact(&mut len_buffer)?;
Ok(((len_buffer[0] as u16) << 8) | (len_buffer[1] as u16))
}
pub fn write_packet_length(stream: &mut TcpStream, len: usize) -> Result<()> {
let mut len_buffer = [0; 2];
len_buffer[0] = (len >> 8) as u8;
len_buffer[1] = (len & 0xFF) as u8;
stream.write_all(&len_buffer)?;
Ok(())
}