diff --git a/src/request.rs b/src/request.rs index ed2a987..adb866c 100644 --- a/src/request.rs +++ b/src/request.rs @@ -3,12 +3,13 @@ use std::{fmt, time}; use url::{form_urlencoded, ParseError, Url}; +use crate::agent::Agent; use crate::body::Payload; +use crate::error::{Error, ErrorKind}; use crate::header::{self, Header}; use crate::middleware::MiddlewareNext; use crate::unit::{self, Unit}; use crate::Response; -use crate::{agent::Agent, error::Error}; pub type Result = std::result::Result; @@ -123,7 +124,15 @@ impl Request { None => None, Some(timeout) => { let now = time::Instant::now(); - Some(now.checked_add(timeout).unwrap()) + match now.checked_add(timeout) { + Some(dl) => Some(dl), + None => { + return Err(Error::new( + ErrorKind::Io, + Some("Request deadline overflowed".to_string()), + )) + } + } } };