(packet: &mut Vec<u8>, max_payload_size: u16)
| 405 | } |
| 406 | |
| 407 | fn add_edns_section(packet: &mut Vec<u8>, max_payload_size: u16) -> Result<(), Error> { |
| 408 | let opt_rr: [u8; 11] = [ |
| 409 | 0, |
| 410 | (DNS_TYPE_OPT >> 8) as u8, |
| 411 | DNS_TYPE_OPT as u8, |
| 412 | (max_payload_size >> 8) as u8, |
| 413 | max_payload_size as u8, |
| 414 | 0, |
| 415 | 0, |
| 416 | 0, |
| 417 | 0, |
| 418 | 0, |
| 419 | 0, |
| 420 | ]; |
| 421 | ensure!( |
| 422 | DNS_MAX_PACKET_SIZE - packet.len() >= opt_rr.len(), |
| 423 | "Packet would be too large to add a new record" |
| 424 | ); |
| 425 | arcount_inc(packet)?; |
| 426 | packet.extend(opt_rr); |
| 427 | Ok(()) |
| 428 | } |
| 429 | |
| 430 | pub fn set_edns_max_payload_size(packet: &mut Vec<u8>, max_payload_size: u16) -> Result<(), Error> { |
| 431 | let packet_len = packet.len(); |
no test coverage detected