Fix interoptests and rewrite decode

This commit is contained in:
Lucio Franco
2019-08-28 17:24:53 -04:00
parent a9e2f0e250
commit f750dfa111
33 changed files with 370 additions and 1047 deletions
+9 -6
View File
@@ -1,5 +1,7 @@
use tokio::net::TcpStream;
use tower_h2::{add_origin::AddOrigin, Connection};
use hyper::client::conn::Builder;
use hyper::client::connect::HttpConnector;
use hyper::client::service::{Connect, MakeService};
use tonic::service::add_origin::AddOrigin;
pub mod hello_world {
include!(concat!(env!("OUT_DIR"), "/helloworld.rs"));
@@ -8,12 +10,13 @@ pub mod hello_world {
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let addr = "[::1]:50051".parse()?;
let io = TcpStream::connect(&addr).await?;
let origin = http::Uri::from_static("http://[::1]:50051");
let origin = http::Uri::from_shared(format!("http://{}", addr).into()).unwrap();
let settings = Builder::new().http2_only(true).clone();
let mut maker = Connect::new(HttpConnector::new(1), settings);
let svc = maker.make_service(origin.clone()).await?;
let svc = Connection::handshake(io).await?;
let svc = AddOrigin::new(svc, origin);
let mut client = hello_world::GreeterClient::new(svc);
+6 -14
View File
@@ -1,7 +1,7 @@
use hyper::Server;
use std::time::Duration;
use tokio::{net::TcpListener, timer::Delay};
use tokio::timer::Delay;
use tonic::{Request, Response, Status};
use tower_h2::Server;
pub mod hello_world {
include!(concat!(env!("OUT_DIR"), "/helloworld.rs"));
@@ -39,20 +39,12 @@ impl MyGreeter {
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let addr = "[::1]:50051".parse().unwrap();
let mut bind = TcpListener::bind(&addr)?;
let greeter = MyGreeter::default();
let mut server = Server::new(GreeterServer::new(greeter), Default::default());
while let Ok((sock, _addr)) = bind.accept().await {
if let Err(e) = sock.set_nodelay(true) {
return Err(e.into());
}
if let Err(e) = server.serve(sock).await {
println!("H2 ERROR: {}", e);
}
}
Server::bind(&addr)
.http2_only(true)
.serve(GreeterServer::new(greeter))
.await?;
Ok(())
}
+9 -6
View File
@@ -1,9 +1,12 @@
use futures::TryStreamExt;
use hyper::client::conn::Builder;
use hyper::client::connect::HttpConnector;
use hyper::client::service::{Connect, MakeService};
use route_guide::{Point, RouteNote};
use std::time::{Duration, Instant};
use tokio::{net::TcpStream, timer::Interval};
use tokio::timer::Interval;
use tonic::service::add_origin::AddOrigin;
use tonic::Request;
use tower_h2::{add_origin::AddOrigin, Connection};
mod route_guide {
include!(concat!(env!("OUT_DIR"), "/routeguide.rs"));
@@ -12,12 +15,12 @@ mod route_guide {
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let addr = "[::1]:10000".parse()?;
let io = TcpStream::connect(&addr).await?;
let origin = http::Uri::from_static("http://[::1]:10000");
let origin = http::Uri::from_shared(format!("http://{}", addr).into()).unwrap();
let settings = Builder::new().http2_only(true).clone();
let mut maker = Connect::new(HttpConnector::new(1), settings);
let svc = Connection::handshake(io).await?;
let svc = maker.make_service(origin.clone()).await?;
let svc = AddOrigin::new(svc, origin);
let mut client = route_guide::RouteGuideClient::new(svc);
+7 -17
View File
@@ -1,16 +1,13 @@
mod data;
use futures::{Stream, StreamExt};
use hyper::Server;
use std::collections::HashMap;
use std::hash::{Hash, Hasher};
use std::sync::Arc;
use std::time::Instant;
use tokio::{
net::TcpListener,
sync::{mpsc, Lock},
};
use tokio::sync::{mpsc, Lock};
use tonic::{Request, Response, Status};
use tower_h2::Server;
pub mod routeguide {
include!(concat!(env!("OUT_DIR"), "/routeguide.rs"));
@@ -151,9 +148,8 @@ impl RouteGuide {
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let addr = "[::1]:10000".parse().unwrap();
let mut bind = TcpListener::bind(&addr)?;
println!("Listening on: {}", bind.local_addr()?);
println!("Listening on: {}", addr);
let route_guide = RouteGuide {
state: State {
@@ -162,17 +158,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
notes: Lock::new(HashMap::new()),
},
};
let mut server = Server::new(RouteGuideServer::new(route_guide), Default::default());
while let Ok((sock, _addr)) = bind.accept().await {
if let Err(e) = sock.set_nodelay(true) {
return Err(e.into());
}
if let Err(e) = server.serve(sock).await {
println!("H2 ERROR: {}", e);
}
}
Server::bind(&addr)
.http2_only(true)
.serve(RouteGuideServer::new(route_guide))
.await?;
Ok(())
}