From d71c5d3b86442e2e6607cfe75ec7fd0d25c8d745 Mon Sep 17 00:00:00 2001 From: ty Date: Wed, 12 Jun 2024 12:52:39 +0800 Subject: [PATCH] feat: check online-config response status code --- .../src/local/online_config/mod.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crates/shadowsocks-service/src/local/online_config/mod.rs b/crates/shadowsocks-service/src/local/online_config/mod.rs index 31b891f2..40e615c3 100644 --- a/crates/shadowsocks-service/src/local/online_config/mod.rs +++ b/crates/shadowsocks-service/src/local/online_config/mod.rs @@ -14,6 +14,7 @@ use crate::{ }; use futures::StreamExt; +use http::StatusCode; use http_body_util::BodyExt; use log::{debug, error, trace, warn}; use mime::Mime; @@ -108,6 +109,19 @@ impl OnlineConfigService { let fetch_time = Instant::now(); + // Check status=200 + if rsp.status() != StatusCode::OK { + error!( + "server-loader task failed to get {}, status: {}", + self.config_url, + rsp.status() + ); + return Err(io::Error::new( + io::ErrorKind::Other, + format!("status: {}", rsp.status()), + )); + } + // Content-Type: application/json; charset=utf-8 // mandatory in standard SIP008 match rsp.headers().get("Content-Type") {