chore: refactor interface

This commit is contained in:
Jun Kurihara 2024-01-23 03:10:10 +09:00
commit 4bdaf0d4cc
No known key found for this signature in database
GPG key ID: 48ADFD173ED22B03
2 changed files with 10 additions and 10 deletions

View file

@ -8,7 +8,7 @@ use rpxy_lib::{
use std::{ use std::{
fs::File, fs::File,
io::{self, BufReader, Cursor, Read}, io::{self, BufReader, Cursor, Read},
path::PathBuf, path::{Path, PathBuf},
}; };
#[derive(Builder, Debug, Clone)] #[derive(Builder, Debug, Clone)]
@ -28,16 +28,16 @@ pub struct CryptoFileSource {
} }
impl CryptoFileSourceBuilder { impl CryptoFileSourceBuilder {
pub fn tls_cert_path(&mut self, v: &str) -> &mut Self { pub fn tls_cert_path<T: AsRef<Path>>(&mut self, v: T) -> &mut Self {
self.tls_cert_path = Some(PathBuf::from(v)); self.tls_cert_path = Some(v.as_ref().to_path_buf());
self self
} }
pub fn tls_cert_key_path(&mut self, v: &str) -> &mut Self { pub fn tls_cert_key_path<T: AsRef<Path>>(&mut self, v: T) -> &mut Self {
self.tls_cert_key_path = Some(PathBuf::from(v)); self.tls_cert_key_path = Some(v.as_ref().to_path_buf());
self self
} }
pub fn client_ca_cert_path(&mut self, v: &Option<String>) -> &mut Self { pub fn client_ca_cert_path<T: AsRef<Path>>(&mut self, v: Option<T>) -> &mut Self {
self.client_ca_cert_path = Some(v.to_owned().as_ref().map(PathBuf::from)); self.client_ca_cert_path = Some(v.map(|p| p.as_ref().to_path_buf()));
self self
} }
} }
@ -167,11 +167,11 @@ mod tests {
async fn read_server_crt_key_files_with_client_ca_crt() { async fn read_server_crt_key_files_with_client_ca_crt() {
let tls_cert_path = "../example-certs/server.crt"; let tls_cert_path = "../example-certs/server.crt";
let tls_cert_key_path = "../example-certs/server.key"; let tls_cert_key_path = "../example-certs/server.key";
let client_ca_cert_path = Some("../example-certs/client.ca.crt".to_string()); let client_ca_cert_path = Some("../example-certs/client.ca.crt");
let crypto_file_source = CryptoFileSourceBuilder::default() let crypto_file_source = CryptoFileSourceBuilder::default()
.tls_cert_key_path(tls_cert_key_path) .tls_cert_key_path(tls_cert_key_path)
.tls_cert_path(tls_cert_path) .tls_cert_path(tls_cert_path)
.client_ca_cert_path(&client_ca_cert_path) .client_ca_cert_path(client_ca_cert_path)
.build(); .build();
assert!(crypto_file_source.is_ok()); assert!(crypto_file_source.is_ok());

View file

@ -217,7 +217,7 @@ impl Application {
let inner = CryptoFileSourceBuilder::default() let inner = CryptoFileSourceBuilder::default()
.tls_cert_path(tls.tls_cert_path.as_ref().unwrap()) .tls_cert_path(tls.tls_cert_path.as_ref().unwrap())
.tls_cert_key_path(tls.tls_cert_key_path.as_ref().unwrap()) .tls_cert_key_path(tls.tls_cert_key_path.as_ref().unwrap())
.client_ca_cert_path(&tls.client_ca_cert_path) .client_ca_cert_path(tls.client_ca_cert_path.as_deref())
.build()?; .build()?;
let https_redirection = if tls.https_redirection.is_none() { let https_redirection = if tls.https_redirection.is_none() {