···
49
-
#[error(transparent)]
50
-
pub struct AuthSetupError(#[from] atrium_oauth::Error);
49
+
pub enum AuthSetupError {
50
+
#[error("failed to intiialize atrium client: {0}")]
51
+
AtriumClientError(atrium_oauth::Error),
52
+
#[error("failed to initialize hickory dns resolver: {0}")]
53
+
HickoryResolverError(hickory_resolver::ResolveError),
···
http_client: http_client.clone(),
100
+
let dns_txt_resolver =
101
+
HickoryDnsTxtResolver::new().map_err(AuthSetupError::HickoryResolverError)?;
let client_config = OAuthClientConfig {
client_metadata: AtprotoLocalhostClientMetadata {
redirect_uris: Some(vec![String::from("http://127.0.0.1:9997/authorized")]),
···
resolver: OAuthResolverConfig {
did_resolver: did_resolver(),
handle_resolver: AtprotoHandleResolver::new(AtprotoHandleResolverConfig {
105
-
dns_txt_resolver: HickoryDnsTxtResolver::default(),
http_client: Arc::clone(&http_client),
authorization_server_metadata: Default::default(),
···
session_store: MemorySessionStore::default(),
115
-
let client = OAuthClient::new(client_config)?;
121
+
let client = OAuthClient::new(client_config).map_err(AuthSetupError::AtriumClientError)?;
client: Arc::new(client),
···
188
-
pub struct HickoryDnsTxtResolver {
189
-
resolver: TokioResolver,
194
+
pub struct HickoryDnsTxtResolver(TokioResolver);
192
-
impl Default for HickoryDnsTxtResolver {
193
-
fn default() -> Self {
195
-
resolver: TokioResolver::builder_tokio()
196
-
.expect("failed to create resolver")
196
+
impl HickoryDnsTxtResolver {
197
+
fn new() -> Result<Self, hickory_resolver::ResolveError> {
198
+
let resolver = TokioResolver::builder_tokio()?.build();
···
) -> core::result::Result<Vec<String>, Box<dyn std::error::Error + Send + Sync>> {