mirror of
https://codeberg.org/slatian/service.echoip-slatecave.git
synced 2025-07-17 22:43:33 +02:00
Deduplication for dns records
This commit is contained in:
@ -41,13 +41,13 @@ pub struct DnsLookupResult {
|
||||
timeout: bool,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, serde::Serialize, Clone)]
|
||||
#[derive(serde::Deserialize, serde::Serialize, Clone, PartialEq)]
|
||||
pub struct MxRecord {
|
||||
preference: u16,
|
||||
exchange: String,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, serde::Serialize, Clone)]
|
||||
#[derive(serde::Deserialize, serde::Serialize, Clone, PartialEq)]
|
||||
pub struct SoaRecord {
|
||||
mname: String,
|
||||
rname: String,
|
||||
@ -58,7 +58,7 @@ pub struct SoaRecord {
|
||||
minimum: u32,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, serde::Serialize, Clone)]
|
||||
#[derive(serde::Deserialize, serde::Serialize, Clone, PartialEq)]
|
||||
pub struct SrvRecord {
|
||||
priority: u16,
|
||||
weight: u16,
|
||||
@ -95,12 +95,12 @@ pub async fn reverse_lookup(
|
||||
}
|
||||
}
|
||||
|
||||
pub fn opush<T>(opt_vec: &mut Option<Vec<T>>, data: T) {
|
||||
pub fn opush<T: std::cmp::PartialEq>(opt_vec: &mut Option<Vec<T>>, data: T) {
|
||||
if opt_vec.is_none() {
|
||||
*opt_vec = Some(Default::default());
|
||||
}
|
||||
match opt_vec {
|
||||
Some(vec) => vec.push(data),
|
||||
Some(vec) => if !vec.contains(&data) { vec.push(data) },
|
||||
None => {},
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user