From bb90671979bdf0831d49581ca5a50c4fb98ca2c7 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Sat, 7 Sep 2024 18:08:56 +0800 Subject: [PATCH] Fix --- v2rayN/ServiceLib/Handler/WebDavHandler.cs | 36 ++++++++++------------ 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/v2rayN/ServiceLib/Handler/WebDavHandler.cs b/v2rayN/ServiceLib/Handler/WebDavHandler.cs index 7473b289..526a7028 100644 --- a/v2rayN/ServiceLib/Handler/WebDavHandler.cs +++ b/v2rayN/ServiceLib/Handler/WebDavHandler.cs @@ -11,7 +11,7 @@ namespace ServiceLib.Handler private Config? _config; private WebDavClient? _client; private string? _lastDescription; - private string _webDir = "mywebdir"; + private string _webDir = Global.AppName + "_backup"; private string _webFileName = "backup.zip"; private string _logTitle = "WebDav--"; @@ -51,17 +51,12 @@ namespace ServiceLib.Handler return await Task.FromResult(true); } - private async Task CheckProp() + private async Task TryCreateDir() { if (_client is null) return false; try { - var result = await _client.Propfind(_webDir); - if (result.IsSuccessful) - { - return true; - } - var result2 = await _client.Mkcol(_webDir); // create a directory + var result2 = await _client.Mkcol(_webDir); if (result2.IsSuccessful) { return true; @@ -93,12 +88,20 @@ namespace ServiceLib.Handler { return false; } - if (await CheckProp() == false) + await TryCreateDir(); + + var testName = "readme_test"; + var myContent = new StringContent(testName); + var result = await _client.PutFile($"{_webDir}/{testName}", myContent); + if (result.IsSuccessful) + { + await _client.Delete($"{_webDir}/{testName}"); + return true; + } + else { return false; } - - return true; } public async Task PutFile(string fileName) @@ -107,10 +110,7 @@ namespace ServiceLib.Handler { return false; } - if (await CheckProp() == false) - { - return false; - } + await TryCreateDir(); try { @@ -136,10 +136,8 @@ namespace ServiceLib.Handler { return false; } - if (await CheckProp() == false) - { - return false; - } + await TryCreateDir(); + try { var response = await _client.GetRawFile($"{_webDir}/{_webFileName}");