Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. fn handle_stream(stream: TcpStream) {
  2. info!("received connection from {}", stream.peer_addr().unwrap());
  3.  
  4. let five_seconds = Some(Duration::new(5, 0));
  5. let _ = stream.set_read_timeout(five_seconds);
  6.  
  7. let stream_buffer = BufReader::new(stream);
  8.  
  9. let mut hdrlen_buffer = Vec::new();
  10.  
  11. let mut stream_handler = stream_buffer.take(10);
  12. let _ = stream_handler.read_until(b'{', &mut hdrlen_buffer);
  13. let _ = hdrlen_buffer.pop(); // drop '{'
  14. let hdrlen_str = match str::from_utf8(&hdrlen_buffer) {
  15. Ok(s) => s,
  16. Err(e) => {
  17. error!("bad UTF-8 {}", e);
  18. return;
  19. }
  20. };
  21. let hdrlen: u64 = match hdrlen_str.parse() {
  22. Ok(l) => l,
  23. Err(e) => {
  24. error!("expected integer header length: {}", e);
  25. return;
  26. }
  27. };
  28.  
  29. // FIXME: info -> debug
  30. info!("extracting header of length {:?}", hdrlen);
  31.  
  32. stream_handler = stream_buffer.take(hdrlen - 1);
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement