]>
git.proxmox.com Git - proxmox-backup.git/blob - src/bin/h2server.rs
4 // Simple H2 server to test H2 speed with h2client.rs
6 use tokio
::net
::TcpListener
;
8 use proxmox_backup
::client
::pipe_to_stream
::*;
10 pub fn main() -> Result
<(), Error
> {
17 pub fn start_h2_server() -> Result
<(), Error
> {
19 let listener
= TcpListener
::bind(&"127.0.0.1:8008".parse().unwrap()).unwrap();
21 println
!("listening on {:?}", listener
.local_addr());
23 let server
= listener
.incoming().for_each(move |socket
| {
25 let connection
= h2
::server
::handshake(socket
)
28 println
!("H2 connection bound");
32 .for_each(|(request
, mut respond
)| {
33 println
!("GOT request: {:?}", request
);
35 let response
= http
::Response
::builder().status(http
::StatusCode
::OK
).body(()).unwrap();
37 let send
= respond
.send_response(response
, false).unwrap();
38 let data
= vec
![65u8; 1024*1024];
39 PipeToSendStream
::new(bytes
::Bytes
::from(data
), send
)
41 println
!("DATA SENT");
47 println
!("H2 connection CLOSE !");
52 println
!(" -> err={:?}", e
);
57 tokio
::spawn(Box
::new(connection
));
60 .map_err(|e
| eprintln
!("accept error: {}", e
));