From 2489b81383dae08b9ddf5809286ceee08d091fcc Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 7 Apr 2015 10:35:25 +0200 Subject: [PATCH] fix(update-dependencies): rustup + dep-up * updated to rustc (be9bd7c93 2015-04-05) * use latest hyper The latter required us to deal with HttpError not being clonable anymore. --- Cargo.toml | 4 ++-- src/common.rs | 4 ++-- src/device.rs | 11 ++++++----- src/helper.rs | 6 +++--- src/lib.rs | 6 +++--- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ea48667..1f11b39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "yup-oauth2" -version = "0.3.1" +version = "0.3.2" authors = ["Sebastian Thiel "] repository = "https://github.com/Byron/yup-oauth2" description = "A partial oauth2 implementation, providing the 'device' authorization flow" @@ -20,5 +20,5 @@ rustc-serialize = "*" [dev-dependencies] getopts = "*" -yup-hyper-mock = ">= 0.1.3" +yup-hyper-mock = ">= 0.1.4" open = "*" diff --git a/src/common.rs b/src/common.rs index d5684ce..a0bf758 100644 --- a/src/common.rs +++ b/src/common.rs @@ -45,7 +45,7 @@ pub struct Scheme { } impl hyper::header::Scheme for Scheme { - fn scheme(_: Option) -> Option<&'static str> { + fn scheme() -> Option<&'static str> { None } @@ -128,7 +128,7 @@ impl Token { } /// All known authentication types, for suitable constants -#[derive(Copy)] +#[derive(Clone, Copy)] pub enum FlowType { /// [device authentication](https://developers.google.com/youtube/v3/guides/authentication#devices) Device, diff --git a/src/device.rs b/src/device.rs index 6ea6fc0..4cb08bd 100644 --- a/src/device.rs +++ b/src/device.rs @@ -1,6 +1,7 @@ use std::iter::IntoIterator; use std::time::Duration; use std::default::Default; +use std::rc::Rc; use hyper; use hyper::header::ContentType; @@ -61,7 +62,7 @@ pub struct PollInformation { #[derive(Clone)] pub enum RequestResult { /// Indicates connection failure - Error(hyper::HttpError), + Error(Rc), /// The OAuth client was not found InvalidClient, /// Some requested scopes were invalid. String contains the scopes as part of @@ -85,7 +86,7 @@ impl RequestResult { #[derive(Clone)] pub enum PollResult { /// Connection failure - retry if you think it's worth it - Error(hyper::HttpError), + Error(Rc), /// See `PollInformation` AuthorizationPending(PollInformation), /// indicates we are expired, including the expiration date @@ -98,7 +99,7 @@ pub enum PollResult { impl Default for PollResult { fn default() -> PollResult { - PollResult::Error(hyper::HttpError::HttpStatusError) + PollResult::Error(Rc::new(hyper::HttpError::HttpStatusError)) } } @@ -166,7 +167,7 @@ impl DeviceFlow .body(req.as_slice()) .send() { Err(err) => { - return RequestResult::Error(err); + return RequestResult::Error(Rc::new(err)); } Ok(mut res) => { @@ -266,7 +267,7 @@ impl DeviceFlow .body(req.as_slice()) .send() { Err(err) => { - return PollResult::Error(err); + return PollResult::Error(Rc::new(err)); } Ok(mut res) => { let mut json_str = String::new(); diff --git a/src/helper.rs b/src/helper.rs index a931031..1652ec9 100644 --- a/src/helper.rs +++ b/src/helper.rs @@ -133,7 +133,7 @@ impl Authenticator &self.secret.client_secret, scopes.iter()); match res { RequestResult::Error(err) => { - match self.delegate.connection_error(err) { + match self.delegate.connection_error(&*err) { Retry::Abort => return None, Retry::After(d) => sleep(d), } @@ -154,7 +154,7 @@ impl Authenticator loop { match flow.poll_token() { PollResult::Error(err) => { - match self.delegate.connection_error(err) { + match self.delegate.connection_error(&*err) { Retry::Abort => return None, Retry::After(d) => sleep(d), } @@ -269,7 +269,7 @@ pub trait AuthenticatorDelegate { /// Called whenever there is an HttpError, usually if there are network problems. /// /// Return retry information. - fn connection_error(&mut self, hyper::HttpError) -> Retry { + fn connection_error(&mut self, &hyper::HttpError) -> Retry { Retry::Abort } diff --git a/src/lib.rs b/src/lib.rs index 183e8a9..575cd1c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(old_io, std_misc, core, hash)] +#![feature(old_io, std_misc, core)] #![allow(deprecated)] //! This library can be used to acquire oauth2.0 authentication for services. //! At the time of writing, only one way of doing so is implemented, the [device flow](https://developers.google.com/youtube/v3/guides/authentication#devices), along with a flow @@ -68,11 +68,11 @@ extern crate hyper; #[macro_use] extern crate log; #[cfg(test)] #[macro_use] -extern crate "yup-hyper-mock" as hyper_mock; +extern crate yup_hyper_mock as hyper_mock; extern crate mime; extern crate url; extern crate itertools; -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize as rustc_serialize; mod device;