Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. use std::sync::{Arc, Mutex};
  2. use std::thread;
  3. use hyper::rt::{self, Future};
  4. use hyper::service::service_fn;
  5. use hyper::{Body, Request, Response, Server};
  6.  
  7. pub struct ChallengeState;
  8. pub struct ChallengeResponse;
  9.  
  10. type BoxFut<'a> = Box<Future<Item = Response<Body>, Error = hyper::Error> + Send + 'a>;
  11.  
  12. fn handle<'a>(
  13. _: &Arc<Mutex<ChallengeState>>,
  14. ) -> BoxFut<'a> {
  15. unimplemented!()
  16. }
  17.  
  18. pub fn run_listener(
  19. challenge: Arc<Mutex<ChallengeState>>,
  20. ) -> thread::JoinHandle<()> {
  21. let addr = ([127, 0, 0, 1], 9999).into();
  22.  
  23. let listener_service = move || {
  24. service_fn(move |_: Request<Body>| {
  25. let challenge = Arc::clone(&challenge);
  26. handle(&challenge)
  27. })
  28. };
  29.  
  30. let server = Server::bind(&addr)
  31. .serve(listener_service)
  32. .map_err(|_| () );
  33.  
  34. thread::spawn(move || {
  35. rt::run(server);
  36. })
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement