From 529ad564c38cf8ae765e23870e10aa3557bf4016 Mon Sep 17 00:00:00 2001 From: Andy Moran Date: Tue, 24 Jan 2017 01:09:14 -0600 Subject: [PATCH] refactor(header): Change to base64 serialize Replace rustc-serialize with base64 crate. Closes #1028 --- Cargo.toml | 2 +- src/header/common/authorization.rs | 12 ++++-------- src/lib.rs | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 20d92b08..2ddf410c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,7 @@ keywords = ["http", "hyper", "hyperium"] categories = ["web-programming::http-client", "web-programming::http-server"] [dependencies] +base64 = "0.3.0" futures = "0.1.7" futures-cpupool = "0.1" httparse = "1.0" @@ -19,7 +20,6 @@ language-tags = "0.2" log = "0.3" mime = "0.2" relay = "0.1" -rustc-serialize = "0.3" time = "0.1" tokio-core = "0.1" tokio-proto = "0.1" diff --git a/src/header/common/authorization.rs b/src/header/common/authorization.rs index c5c874f6..b4c99fc8 100644 --- a/src/header/common/authorization.rs +++ b/src/header/common/authorization.rs @@ -2,7 +2,7 @@ use std::any::Any; use std::fmt::{self, Display}; use std::str::{FromStr, from_utf8}; use std::ops::{Deref, DerefMut}; -use serialize::base64::{ToBase64, FromBase64, Standard, Config, Newline}; +use base64::{encode, decode}; use header::{Header, Raw}; /// `Authorization` header, defined in [RFC7235](https://tools.ietf.org/html/rfc7235#section-4.2) @@ -152,19 +152,15 @@ impl Scheme for Basic { if let Some(ref pass) = self.password { text.push_str(&pass[..]); } - f.write_str(&text.as_bytes().to_base64(Config { - char_set: Standard, - newline: Newline::CRLF, - pad: true, - line_length: None - })[..]) + + f.write_str(&encode(text.as_ref())) } } impl FromStr for Basic { type Err = ::Error; fn from_str(s: &str) -> ::Result { - match s.from_base64() { + match decode(s) { Ok(decoded) => match String::from_utf8(decoded) { Ok(text) => { let mut parts = &mut text.split(':'); diff --git a/src/lib.rs b/src/lib.rs index 08c14c73..a683d0dd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,7 +21,7 @@ extern crate httparse; #[macro_use] extern crate log; #[macro_use] pub extern crate mime; extern crate relay; -extern crate rustc_serialize as serialize; +extern crate base64; extern crate time; #[macro_use] extern crate tokio_core as tokio; extern crate tokio_proto;