fix: service mode error

This commit is contained in:
GyDi 2022-05-13 02:11:03 +08:00
parent b93284bc2f
commit 31c6cbc0a2
No known key found for this signature in database
GPG Key ID: 1C95E0D3467B3084
2 changed files with 131 additions and 108 deletions

View File

@ -300,7 +300,9 @@ pub mod win_service {
/// stop service /// stop service
pub async fn stop_service() -> Result<()> { pub async fn stop_service() -> Result<()> {
let url = format!("{SERVICE_URL}/stop_service"); let url = format!("{SERVICE_URL}/stop_service");
let res = reqwest::Client::new() let res = reqwest::ClientBuilder::new()
.no_proxy()
.build()?
.post(url) .post(url)
.send() .send()
.await? .await?
@ -318,7 +320,11 @@ pub mod win_service {
/// check the windows service status /// check the windows service status
pub async fn check_service() -> Result<JsonResponse> { pub async fn check_service() -> Result<JsonResponse> {
let url = format!("{SERVICE_URL}/get_clash"); let url = format!("{SERVICE_URL}/get_clash");
let response = reqwest::get(url) let response = reqwest::ClientBuilder::new()
.no_proxy()
.build()?
.get(url)
.send()
.await? .await?
.json::<JsonResponse>() .json::<JsonResponse>()
.await .await
@ -351,7 +357,9 @@ pub mod win_service {
map.insert("log_file", log_path); map.insert("log_file", log_path);
let url = format!("{SERVICE_URL}/start_clash"); let url = format!("{SERVICE_URL}/start_clash");
let res = reqwest::Client::new() let res = reqwest::ClientBuilder::new()
.no_proxy()
.build()?
.post(url) .post(url)
.json(&map) .json(&map)
.send() .send()
@ -370,7 +378,9 @@ pub mod win_service {
/// stop the clash by service /// stop the clash by service
pub(super) async fn stop_clash_by_service() -> Result<()> { pub(super) async fn stop_clash_by_service() -> Result<()> {
let url = format!("{SERVICE_URL}/stop_clash"); let url = format!("{SERVICE_URL}/stop_clash");
let res = reqwest::Client::new() let res = reqwest::ClientBuilder::new()
.no_proxy()
.build()?
.post(url) .post(url)
.send() .send()
.await? .await?

View File

@ -65,6 +65,13 @@ const ServiceMode = (props: Props) => {
} }
}); });
// fix unhandle error of the service mode
const onDisable = useLockFn(async () => {
await patchVergeConfig({ enable_service_mode: false });
mutate("checkService");
onClose();
});
return ( return (
<Dialog open={open} onClose={onClose}> <Dialog open={open} onClose={onClose}>
<DialogTitle>{t("Service Mode")}</DialogTitle> <DialogTitle>{t("Service Mode")}</DialogTitle>
@ -84,6 +91,12 @@ const ServiceMode = (props: Props) => {
spacing={1} spacing={1}
sx={{ mt: 4, justifyContent: "flex-end" }} sx={{ mt: 4, justifyContent: "flex-end" }}
> >
{state === "uninstall" && enable && (
<Button variant="contained" onClick={onDisable}>
Disable Service Mode
</Button>
)}
{state === "uninstall" && ( {state === "uninstall" && (
<Button variant="contained" onClick={onInstall}> <Button variant="contained" onClick={onInstall}>
Install Install