Feat--auth-static (#684)

* feat: static server

* WIP: Idea (#685)

* wip: New Idea

Use tokens as proofs.
Use proofs as arguments.
Return proofs as indication of side effects?
Forced constructor pattern?

* chore: Use the has notation for reciepts

* chore: Example to main db mod

* feat: Content headers

* polish

Co-authored-by: Aiden McClelland <me@drbonez.dev>
This commit is contained in:
J M
2021-10-18 11:45:42 -06:00
committed by Aiden McClelland
parent cc2e937216
commit 516ce9672c
11 changed files with 408 additions and 128 deletions

View File

@@ -13,7 +13,7 @@ use embassy::net::tor::tor_health_check;
use embassy::shutdown::Shutdown;
use embassy::status::{check_all, synchronize_all};
use embassy::util::{daemon, Invoke};
use embassy::{Error, ErrorKind, ResultExt};
use embassy::{static_server, Error, ErrorKind, ResultExt};
use futures::{FutureExt, TryFutureExt};
use reqwest::{Client, Proxy};
use rpc_toolkit::hyper::{Body, Response, Server, StatusCode};
@@ -164,6 +164,16 @@ async fn inner_main(cfg_path: Option<&str>) -> Result<Option<Shutdown>, Error> {
}
});
let file_server_ctx = rpc_ctx.clone();
let file_server = {
static_server::init(file_server_ctx, {
let mut shutdown = rpc_ctx.shutdown.subscribe();
async move {
shutdown.recv().await.expect("context dropped");
}
})
};
let status_ctx = rpc_ctx.clone();
let status_daemon = daemon(
move || {
@@ -227,6 +237,7 @@ async fn inner_main(cfg_path: Option<&str>) -> Result<Option<Shutdown>, Error> {
ErrorKind::Unknown
)),
ws_server.map_err(|e| Error::new(e, ErrorKind::Network)),
file_server.map_err(|e| Error::new(e, ErrorKind::Network)),
status_daemon.map_err(|e| Error::new(
e.wrap_err("Status Sync daemon panicked!"),
ErrorKind::Unknown