apply transformation (Arc<Option> -> Option<Arc>) suggested by @funbringer

This commit is contained in:
Dmitry Rodionov
2021-08-19 20:04:30 +03:00
committed by Dmitry
parent b135723994
commit f2f02a8af0
3 changed files with 12 additions and 13 deletions

View File

@@ -10,7 +10,6 @@ use std::{
path::{Path, PathBuf},
process::exit,
str::FromStr,
sync::Arc,
thread,
time::Duration,
};
@@ -327,17 +326,17 @@ fn start_pageserver(conf: &'static PageServerConf) -> Result<()> {
// initialize authentication for incoming connections
let auth = match &conf.auth_type {
AuthType::Trust | AuthType::MD5 => Arc::new(None),
AuthType::Trust | AuthType::MD5 => None,
AuthType::ZenithJWT => {
// unwrap is ok because check is performed when creating config, so path is set and file exists
let key_path = conf.auth_validation_public_key_path.as_ref().unwrap();
Arc::new(Some(JwtAuth::from_key_path(key_path)?))
Some(JwtAuth::from_key_path(key_path)?.into())
}
};
info!("Using auth: {:#?}", conf.auth_type);
// Spawn a new thread for the http endpoint
let cloned = Arc::clone(&auth);
let cloned = auth.clone();
thread::Builder::new()
.name("http_endpoint_thread".into())
.spawn(move || {

View File

@@ -27,12 +27,12 @@ use crate::{
#[derive(Debug)]
struct State {
conf: &'static PageServerConf,
auth: Arc<Option<JwtAuth>>,
auth: Option<Arc<JwtAuth>>,
allowlist_routes: Vec<Uri>,
}
impl State {
fn new(conf: &'static PageServerConf, auth: Arc<Option<JwtAuth>>) -> Self {
fn new(conf: &'static PageServerConf, auth: Option<Arc<JwtAuth>>) -> Self {
let allowlist_routes = ["/v1/status", "/v1/doc", "/swagger.yml"]
.iter()
.map(|v| v.parse().unwrap())
@@ -141,7 +141,7 @@ async fn handler_404(_: Request<Body>) -> Result<Response<Body>, ApiError> {
pub fn make_router(
conf: &'static PageServerConf,
auth: Arc<Option<JwtAuth>>,
auth: Option<Arc<JwtAuth>>,
) -> RouterBuilder<hyper::Body, ApiError> {
let spec = include_bytes!("openapi_spec.yml");
let mut router = attach_openapi_ui(endpoint::make_router(), spec, "/swagger.yml", "/v1/doc");
@@ -151,7 +151,7 @@ pub fn make_router(
if state.allowlist_routes.contains(request.uri()) {
None
} else {
Option::as_ref(&state.auth)
state.auth.as_deref()
}
}))
}

View File

@@ -145,7 +145,7 @@ impl PagestreamBeMessage {
///
pub fn thread_main(
conf: &'static PageServerConf,
auth: Arc<Option<JwtAuth>>,
auth: Option<Arc<JwtAuth>>,
listener: TcpListener,
auth_type: AuthType,
) -> anyhow::Result<()> {
@@ -153,7 +153,7 @@ pub fn thread_main(
let (socket, peer_addr) = listener.accept()?;
debug!("accepted connection from {}", peer_addr);
socket.set_nodelay(true).unwrap();
let local_auth = Arc::clone(&auth);
let local_auth = auth.clone();
thread::spawn(move || {
if let Err(err) = page_service_conn_main(conf, local_auth, socket, auth_type) {
error!("error: {}", err);
@@ -164,7 +164,7 @@ pub fn thread_main(
fn page_service_conn_main(
conf: &'static PageServerConf,
auth: Arc<Option<JwtAuth>>,
auth: Option<Arc<JwtAuth>>,
socket: TcpStream,
auth_type: AuthType,
) -> anyhow::Result<()> {
@@ -185,7 +185,7 @@ fn page_service_conn_main(
#[derive(Debug)]
struct PageServerHandler {
conf: &'static PageServerConf,
auth: Arc<Option<JwtAuth>>,
auth: Option<Arc<JwtAuth>>,
claims: Option<Claims>,
}
@@ -208,7 +208,7 @@ lazy_static! {
}
impl PageServerHandler {
pub fn new(conf: &'static PageServerConf, auth: Arc<Option<JwtAuth>>) -> Self {
pub fn new(conf: &'static PageServerConf, auth: Option<Arc<JwtAuth>>) -> Self {
PageServerHandler {
conf,
auth,