Skip to content

Commit 983a61a

Browse files
committed
Rust 2024
1 parent 8865432 commit 983a61a

File tree

9 files changed

+407
-243
lines changed

9 files changed

+407
-243
lines changed

Cargo.lock

+370-215
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ resolver = "2"
55
[workspace.dependencies]
66
base64 = "0.22.1"
77
clap = { version = "4.5", features = ["derive"] }
8-
cloudflare = { version = "0.11", features = ["rustls-tls"] }
8+
cloudflare = { version = "0.13", features = ["rustls-tls"] }
99
color-eyre = "0.6"
1010
futures = "0.3"
1111
heck = "0.5"

config.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ domainName = "bunkerlab.net"
33
encryptionKey = "bunkerlab"
44

55
[cloudflare]
6-
apiKey = "changeme"
7-
zoneId = "changeme"
6+
apiKey = "t9eq7RmAHmhrMSk1wiYf5ezSJxfT28mth4iJqO8Y"
7+
zoneId = "511186bc1f225fa035f02f5595c1fcf9"

dnfs-lib/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "dnfs-lib"
33
version = "0.1.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
base64.workspace = true

dnfs-lib/src/file.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,23 @@ use std::{
99
use base64::prelude::*;
1010
use cloudflare::framework::async_api;
1111
use color_eyre::{
12-
eyre::{OptionExt, WrapErr},
1312
Result,
13+
eyre::{OptionExt, WrapErr},
1414
};
1515
use futures::stream::{self, StreamExt};
1616
use heck::ToKebabCase;
1717
use hickory_resolver::{
18+
AsyncResolver,
1819
name_server::{GenericConnector, TokioRuntimeProvider},
1920
proto::rr::rdata::TXT,
20-
AsyncResolver,
2121
};
2222
use magic_crypt::MagicCryptTrait;
2323
use securefmt::Debug;
2424
use tracing::debug;
2525

2626
use crate::{
2727
file_record::FileRecord,
28-
helpers::{write_txt_record, DNFSError, MAX_CHUNK_SIZE},
28+
helpers::{DNFSError, MAX_CHUNK_SIZE, write_txt_record},
2929
};
3030

3131
#[derive(Debug, Clone)]

dnfs-lib/src/file_record.rs

+11-10
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22
#![forbid(unsafe_code)]
33

44
use cloudflare::{endpoints::dns, framework::async_api};
5-
use color_eyre::{eyre::WrapErr, Result};
5+
use color_eyre::{Result, eyre::WrapErr};
66
use futures::stream::{self, StreamExt};
77
use hickory_resolver::{
8+
AsyncResolver,
89
name_server::{GenericConnector, TokioRuntimeProvider},
910
proto::rr::rdata::TXT,
10-
AsyncResolver,
1111
};
1212
use securefmt::Debug;
1313
use tracing::{debug, info};
1414

1515
use crate::{
1616
file::File,
17-
helpers::{get_all_files, get_record_id, write_txt_record, DNFSError},
17+
helpers::{DNFSError, get_all_files, get_record_id, write_txt_record},
1818
};
1919

2020
#[derive(Debug, Clone)]
@@ -120,13 +120,14 @@ impl FileRecord {
120120
) -> Result<String> {
121121
let fqdn = format!("{name}.dnfs.{domain_name}", name = self.name);
122122
let content = format!(
123-
"v={version} chunks={chunks} size={size} sha256hash={sha256} mime={mime} extension={extension}",
124-
version = self.version,
125-
chunks = self.chunks,
126-
size = self.size,
127-
sha256 = self.sha256,
128-
mime = self.mime,
129-
extension = self.extension.clone().unwrap_or_default());
123+
"v={version} chunks={chunks} size={size} sha256hash={sha256} mime={mime} extension={extension}",
124+
version = self.version,
125+
chunks = self.chunks,
126+
size = self.size,
127+
sha256 = self.sha256,
128+
mime = self.mime,
129+
extension = self.extension.clone().unwrap_or_default()
130+
);
130131
write_txt_record(&fqdn, &content, cf_client, zone_identifier, dry_run).await
131132
}
132133

dnfs-lib/src/helpers.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
use cloudflare::{endpoints::dns, framework::async_api};
55
use color_eyre::eyre::Result;
66
use hickory_resolver::{
7+
AsyncResolver,
78
name_server::{GenericConnector, TokioRuntimeProvider},
89
proto::rr::rdata::TXT,
9-
AsyncResolver,
1010
};
1111
use securefmt::Debug;
1212
use thiserror::Error;

dnfs/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "dnfs"
33
version = "0.1.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
dnfs-lib = { path = "../dnfs-lib" }

dnfs/src/main.rs

+17-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
// This is extremely safe, it says so right here!
2-
#![forbid(unsafe_code)]
2+
#![deny(unsafe_code)]
33

44
use std::{
55
io::{self, Write},
66
path::Path,
77
};
88

9-
use clap::{arg, Args, Parser, Subcommand};
10-
use cloudflare::framework::{async_api, auth, Environment, HttpApiClientConfig};
9+
use clap::{Args, Parser, Subcommand, arg};
10+
use cloudflare::framework::{Environment, HttpApiClientConfig, async_api, auth};
1111
use color_eyre::eyre::Result;
1212
use config::Config;
1313
use dnfs_lib::{
@@ -16,8 +16,8 @@ use dnfs_lib::{
1616
helpers::{check_usage_agreement, get_all_files},
1717
};
1818
use hickory_resolver::{
19-
config::{ResolverConfig, ResolverOpts},
2019
TokioAsyncResolver,
20+
config::{ResolverConfig, ResolverOpts},
2121
};
2222
use securefmt::Debug;
2323
use tracing::{debug, warn};
@@ -90,15 +90,21 @@ async fn main() -> Result<()> {
9090

9191
// Default log level is `info`
9292
if std::env::var("RUST_LOG").is_err() {
93-
std::env::set_var("RUST_LOG", "info");
93+
#[allow(unsafe_code)]
94+
unsafe {
95+
std::env::set_var("RUST_LOG", "info");
96+
}
9497
}
9598
tracing_subscriber::fmt()
9699
.with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
97100
.with_writer(io::stderr)
98101
.init();
99102

100103
// Default number of jobs for streams is 4
101-
std::env::set_var("JOBS", cli.global.jobs.to_string());
104+
#[allow(unsafe_code)]
105+
unsafe {
106+
std::env::set_var("JOBS", cli.global.jobs.to_string());
107+
}
102108

103109
// Load config
104110
let config = Config::new(Path::new("config.toml"))?;
@@ -191,7 +197,9 @@ async fn main() -> Result<()> {
191197
} else {
192198
warn!("BE CAREFUL!");
193199
warn!("This will purge all DNFS Files from the DNS zone");
194-
print!("Are you sure you want to purge all data? This action cannot be undone. (y/N): ");
200+
print!(
201+
"Are you sure you want to purge all data? This action cannot be undone. (y/N): "
202+
);
195203
io::stdout().flush().unwrap();
196204

197205
let mut input = String::new();
@@ -220,11 +228,11 @@ async fn main() -> Result<()> {
220228
mod tests {
221229
use std::path::Path;
222230

223-
use hickory_resolver::{config, TokioAsyncResolver};
231+
use hickory_resolver::{TokioAsyncResolver, config};
224232

225233
use crate::File;
226234

227-
use super::{check_usage_agreement, Config};
235+
use super::{Config, check_usage_agreement};
228236

229237
#[test]
230238
fn test_config() {

0 commit comments

Comments
 (0)