From d238d48ca3351ecd58195aa58f4beb62a2385d0b Mon Sep 17 00:00:00 2001 From: Furior Date: Tue, 28 Jan 2025 03:54:05 +0700 Subject: [PATCH] fix stuff or idk --- src/error.rs | 2 +- src/http.rs | 7 +++++-- tests/dm/http.dme | 7 +++++++ tests/dm/regexp.dme | 1 - 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/error.rs b/src/error.rs index f818095..5bc89f7 100644 --- a/src/error.rs +++ b/src/error.rs @@ -20,7 +20,7 @@ pub enum Error { JsonSerialization(#[from] serde_json::Error), #[cfg(feature = "http")] #[error(transparent)] - Request(#[from] Box), + Response(#[from] ureq::Transport), } impl From for Error { diff --git a/src/http.rs b/src/http.rs index bfbd3b7..91802e6 100644 --- a/src/http.rs +++ b/src/http.rs @@ -1,8 +1,10 @@ use crate::{error::Result, jobs}; use serde::{Deserialize, Serialize}; +use ureq::OrAnyStatus; use std::cell::RefCell; use std::collections::{BTreeMap, HashMap}; use std::io::Write; +use std::time::Duration; // ---------------------------------------------------------------------------- // Interface @@ -95,7 +97,8 @@ fn construct_request( "head" => client.head(url), _ => client.get(url), } - .set("User-Agent", &format!("{PKG_NAME}/{VERSION}")); + .set("User-Agent", &format!("{PKG_NAME}/{VERSION}")) + .timeout(Duration::from_secs(30)); let mut final_body = body.as_bytes().to_vec(); @@ -138,7 +141,7 @@ fn construct_request( } fn submit_request(prep: RequestPrep) -> Result { - let response = prep.req.send_bytes(&prep.body).map_err(Box::new)?; + let response = prep.req.send_bytes(&prep.body).or_any_status()?; let body; let mut resp = Response { diff --git a/tests/dm/http.dme b/tests/dm/http.dme index 6b03aad..bec0ef7 100644 --- a/tests/dm/http.dme +++ b/tests/dm/http.dme @@ -26,3 +26,10 @@ /test/proc/test_400() var/list/L = execute_request(STATUS400URL) ASSERT(L["status_code"] == 400) + +/test/proc/nonexistent() + try + var/list/L = execute_request("http://nonexistent.nonexistent") + CRASH("Should have failed") + catch + return diff --git a/tests/dm/regexp.dme b/tests/dm/regexp.dme index 3acd128..ec00c13 100644 --- a/tests/dm/regexp.dme +++ b/tests/dm/regexp.dme @@ -15,5 +15,4 @@ var/expected_error = "Words replace." /test/proc/crash() var/output = rustutils_regex_replace(input, pattern, incorrect_pattern_flags, replacement) - world.log << output ASSERT(output == expected_error)