From c94284482a8b02f4dac1451399e0f255e75c03d4 Mon Sep 17 00:00:00 2001 From: guyo13 Date: Sun, 22 May 2022 20:51:58 +0300 Subject: [PATCH] Return Err on deadline checked_add overflow instead of panic (#517) --- src/request.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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()), + )) + } + } } };