Update of hyper

* hyper::UriError was moved to http::InvalidUri

* tokio_core::reactor::Handle is no longer used by the new hyper version;
  tokio_core can get dropped completely
This commit is contained in:
Jörg Sommer 2018-08-25 16:08:51 +02:00
parent 799d8e8d77
commit 66037a9339
4 changed files with 22 additions and 22 deletions

View File

@ -12,22 +12,22 @@ version = "0.1.0"
[dependencies]
futures = "0.1.14"
hyper = "0.11.1"
http = "0.1"
hyper = "0.12"
ruma-api = "0.4.0"
ruma-client-api = "0.1.0"
ruma-identifiers = "0.11.0"
serde_json = "1.0.2"
serde_urlencoded = "0.5.1"
tokio-core = "0.1.8"
url = "1.5.1"
[dependencies.hyper-tls]
optional = true
version = "0.1.2"
version = "0.3.0"
[dependencies.native-tls]
optional = true
version = "0.1.4"
version = "0.2.1"
[dev-dependencies]
futures-await = { git = 'https://github.com/alexcrichton/futures-await' }

View File

@ -20,7 +20,7 @@ macro_rules! endpoint {
#[$($attr)+]
pub mod $inner_mod {
use futures::Future;
use hyper::client::Connect;
use hyper::client::connect::Connect;
use ruma_client_api::$($outer_mod::)*$inner_mod::Endpoint;
$(use super::$super_import;)*
pub use ruma_client_api::$($outer_mod::)*$inner_mod::{
@ -37,7 +37,7 @@ macro_rules! endpoint {
request: Request,
) -> impl Future<Item = Response, Error = Error>
where
C: Connect,
C: Connect + 'static,
{
client.request::<Endpoint>(request)
}

View File

@ -1,4 +1,5 @@
use hyper::error::{Error as HyperError, UriError};
use http::uri::InvalidUri;
use hyper::error::Error as HyperError;
use ruma_api::Error as RumaApiError;
use serde_json::Error as SerdeJsonError;
use serde_urlencoded::ser::Error as SerdeUrlEncodedSerializeError;
@ -12,7 +13,7 @@ pub enum Error {
/// An error at the HTTP layer.
Hyper(HyperError),
/// An error when parsing a string as a URI.
Uri(UriError),
Uri(InvalidUri),
/// An error when parsing a string as a URL.
Url(ParseError),
/// An error converting between ruma_client_api types and Hyper types.
@ -29,8 +30,8 @@ impl From<HyperError> for Error {
}
}
impl From<UriError> for Error {
fn from(error: UriError) -> Error {
impl From<InvalidUri> for Error {
fn from(error: InvalidUri) -> Error {
Error::Uri(error)
}
}

View File

@ -5,6 +5,7 @@
#![feature(try_from)]
extern crate futures;
extern crate http;
extern crate hyper;
#[cfg(feature = "tls")]
extern crate hyper_tls;
@ -15,7 +16,6 @@ extern crate ruma_client_api;
extern crate ruma_identifiers;
extern crate serde_json;
extern crate serde_urlencoded;
extern crate tokio_core;
extern crate url;
use std::cell::RefCell;
@ -26,13 +26,13 @@ use std::str::FromStr;
use futures::future::{Future, FutureFrom, IntoFuture};
use futures::stream::{self, Stream};
use hyper::{Client as HyperClient, Uri};
use hyper::client::{Connect, HttpConnector};
use hyper::client::HttpConnector;
use hyper::client::connect::Connect;
#[cfg(feature = "hyper-tls")]
use hyper_tls::HttpsConnector;
#[cfg(feature = "hyper-tls")]
use native_tls::Error as NativeTlsError;
use ruma_api::Endpoint;
use tokio_core::reactor::Handle;
use url::Url;
pub use error::Error;
@ -60,10 +60,10 @@ where
impl Client<HttpConnector> {
/// Creates a new client for making HTTP requests to the given homeserver.
pub fn new(handle: &Handle, homeserver_url: Url, session: Option<Session>) -> Self {
pub fn new(homeserver_url: Url, session: Option<Session>) -> Self {
Client(Rc::new(ClientData {
homeserver_url: homeserver_url,
hyper: HyperClient::configure().keep_alive(true).build(handle),
hyper: HyperClient::builder().keep_alive(true).build_http(),
session: RefCell::new(session),
}))
}
@ -72,16 +72,15 @@ impl Client<HttpConnector> {
#[cfg(feature = "tls")]
impl Client<HttpsConnector<HttpConnector>> {
/// Creates a new client for making HTTPS requests to the given homeserver.
pub fn https(handle: &Handle, homeserver_url: Url, session: Option<Session>) -> Result<Self, NativeTlsError> {
let connector = HttpsConnector::new(4, handle)?;
pub fn https(homeserver_url: Url, session: Option<Session>) -> Result<Self, NativeTlsError> {
let connector = HttpsConnector::new(4)?;
Ok(Client(Rc::new(ClientData {
homeserver_url: homeserver_url,
hyper: {
HyperClient::configure()
.connector(connector)
HyperClient::builder()
.keep_alive(true)
.build(handle)
.build(connector)
},
session: RefCell::new(session),
})))
@ -90,7 +89,7 @@ impl Client<HttpsConnector<HttpConnector>> {
impl<C> Client<C>
where
C: Connect,
C: Connect + 'static,
{
/// Creates a new client using the given `hyper::Client`.
///
@ -261,7 +260,7 @@ where
.map_err(Error::from)
})
.and_then(move |(uri, mut hyper_request)| {
hyper_request.set_uri(uri);
*hyper_request.uri_mut() = uri;
data2.hyper
.request(hyper_request)