feat: print remote addr

This commit is contained in:
2022-07-29 00:08:36 +08:00
parent ad38744930
commit f598db686b

View File

@@ -1,9 +1,11 @@
use std::net::SocketAddr;
use std::sync::Mutex;
use clap::{App, Arg, ArgMatches, SubCommand};
use hyper::{Body, Client, Method, Request, Response, Server, StatusCode};
use hyper::body::Buf;
use hyper::client::HttpConnector;
use hyper::server::conn::AddrStream;
use hyper::service::{make_service_fn, service_fn};
use josekit::jwk::alg::rsa::RsaKeyPair;
use josekit::jwk::KeyPair;
@@ -45,11 +47,12 @@ impl Command for CommandImpl {
rt.block_on(async {
let addr = listen.parse().expect(&format!("Parse listen error: {}", listen));
let client = Client::new();
let new_service = make_service_fn(move |_| {
let new_service = make_service_fn(move |conn: &AddrStream| {
let remote_addr = conn.remote_addr();
let client = client.clone();
async {
async move {
Ok::<_, GenericError>(service_fn(move |req| {
response_requests(req, client.to_owned())
response_requests(remote_addr, req, client.to_owned())
}))
}
});
@@ -67,9 +70,11 @@ impl Command for CommandImpl {
// ref: https://github.com/hyperium/hyper/blob/master/examples/web_api.rs
// ref: https://crates.io/crates/rusqlite
async fn response_requests(
remote_addr: SocketAddr,
req: Request<Body>,
_client: Client<HttpConnector>,
) -> Result<Response<Body>> {
information!("Receive request: {}, from: {}", req.uri(), remote_addr);
match (req.method(), req.uri().path()) {
(&Method::POST, "/init") => init(req).await,
(&Method::POST, "/update") => update().await,