0.34.13_cleaup_code
This commit is contained in:
1 parent
ec46a96a29
commit
5c2e50ec06
87 files changed
+4890
-1338
No files matched your search
+25
-6
@@ -1,11 +1,11 @@
|
||||
mod mmdb;
|
||||
mod update;
|
||||
mod update_http;
|
||||
pub(crate) use update::{poll_loop as update_poll_loop, update_now};
|
||||
pub use update::{
|
||||
UpdateResult, UpdateSettings, DEFAULT_INTERVAL_SECONDS, DEFAULT_IPV4_URL, DEFAULT_IPV6_URL,
|
||||
DEFAULT_MAX_BYTES, DEFAULT_MMDB_URL,
|
||||
};
|
||||
pub(crate) use update::{poll_loop as update_poll_loop, update_now};
|
||||
|
||||
use anyhow::{bail, ensure, Context, Result};
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -46,7 +46,10 @@ impl Default for DatabaseFormat {
|
||||
|
||||
#[derive(Debug)]
|
||||
enum Backend {
|
||||
Csv { ipv4: Box<[V4Range]>, ipv6: Box<[V6Range]> },
|
||||
Csv {
|
||||
ipv4: Box<[V4Range]>,
|
||||
ipv6: Box<[V6Range]>,
|
||||
},
|
||||
Mmdb(mmdb::Database),
|
||||
}
|
||||
|
||||
@@ -64,7 +67,12 @@ pub struct View {
|
||||
}
|
||||
impl Database {
|
||||
pub fn empty() -> Self {
|
||||
Self { backend: Backend::Csv { ipv4: Box::new([]), ipv6: Box::new([]) } }
|
||||
Self {
|
||||
backend: Backend::Csv {
|
||||
ipv4: Box::new([]),
|
||||
ipv6: Box::new([]),
|
||||
},
|
||||
}
|
||||
}
|
||||
pub fn load(directory: &Path) -> Result<Self> {
|
||||
if directory.join("country.mmdb").is_file() {
|
||||
@@ -78,11 +86,22 @@ impl Database {
|
||||
DatabaseFormat::CsvPair => {
|
||||
let ipv4 = parse_v4(&directory.join("user-country-ipv4.csv"))?;
|
||||
let ipv6 = parse_v6(&directory.join("user-country-ipv6.csv"))?;
|
||||
ensure!(!ipv4.is_empty() && !ipv6.is_empty(), "GeoIP country database is empty");
|
||||
Ok(Self { backend: Backend::Csv { ipv4: ipv4.into_boxed_slice(), ipv6: ipv6.into_boxed_slice() } })
|
||||
ensure!(
|
||||
!ipv4.is_empty() && !ipv6.is_empty(),
|
||||
"GeoIP country database is empty"
|
||||
);
|
||||
Ok(Self {
|
||||
backend: Backend::Csv {
|
||||
ipv4: ipv4.into_boxed_slice(),
|
||||
ipv6: ipv6.into_boxed_slice(),
|
||||
},
|
||||
})
|
||||
}
|
||||
DatabaseFormat::Mmdb => Ok(Self {
|
||||
backend: Backend::Mmdb(mmdb::Database::load(&directory.join("country.mmdb"), MAX_FILE_BYTES)?),
|
||||
backend: Backend::Mmdb(mmdb::Database::load(
|
||||
&directory.join("country.mmdb"),
|
||||
MAX_FILE_BYTES,
|
||||
)?),
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user