From 173ae865e9bd4efcca1d3a87bcdc91b6fd849398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E5=A4=9C?= Date: Sun, 3 Mar 2024 23:32:10 +0800 Subject: [PATCH] Add files via upload --- RDPInterceptor/API/NetworkInterceptor.cs | 20 ++++++++---- RDPInterceptor/API/WebService.cs | 23 ++++++++++--- RDPInterceptor/Web/Data.html | 20 ++++++------ RDPInterceptor/Web/Login.html | 41 +++++++++++++----------- 4 files changed, 65 insertions(+), 39 deletions(-) diff --git a/RDPInterceptor/API/NetworkInterceptor.cs b/RDPInterceptor/API/NetworkInterceptor.cs index cb14ee8..120b47c 100644 --- a/RDPInterceptor/API/NetworkInterceptor.cs +++ b/RDPInterceptor/API/NetworkInterceptor.cs @@ -30,6 +30,8 @@ public class NetworkInterceptor private static WinDivert? Divert { get; set; } private static readonly SemaphoreSlim semaphore = new(1); + + private static readonly SemaphoreSlim semaphoreLogFile = new(1); private static WinDivertPacket? Packet { get; set; } @@ -219,17 +221,19 @@ private static void LogConnections(bool isLogConnection, string content) Logger.Debug(content); } } - - private static async Task LogConnectionAsync(IPAddress srcIpAddr) + + public static async Task LogConnectionAsync(IPAddress srcIpAddr) { try { + await semaphoreLogFile.WaitAsync(); + string logFilePath = "Connectionlist.log"; if (File.Exists(logFilePath)) { string[] lines = await File.ReadAllLinesAsync(logFilePath); - if (lines.Contains(srcIpAddr.ToString())) + if (Array.Exists(lines, line => line.Equals(srcIpAddr.ToString()))) { return; } @@ -240,16 +244,20 @@ private static async Task LogConnectionAsync(IPAddress srcIpAddr) fs.Close(); } - using (StreamWriter writer = File.AppendText(logFilePath)) + await using (StreamWriter writer = File.AppendText(logFilePath)) { await writer.WriteLineAsync(srcIpAddr.ToString()); } - } + } catch (Exception e) { - Logger.Error(e.Message + e.StackTrace); + Console.WriteLine(e.Message); throw; } + finally + { + semaphoreLogFile.Release(); + } } public static async void ReadLinesFromFileAsync() diff --git a/RDPInterceptor/API/WebService.cs b/RDPInterceptor/API/WebService.cs index 026b145..be1023a 100644 --- a/RDPInterceptor/API/WebService.cs +++ b/RDPInterceptor/API/WebService.cs @@ -107,6 +107,7 @@ public async Task StartCapture() catch (Exception ex) { Logger.Error(ex.Message + ex.StackTrace); + throw; } } @@ -194,10 +195,24 @@ public async Task PostNewIp() using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { string ipAddr = reader.ReadToEndAsync().Result; + + TaskCompletionSource tcs = new TaskCompletionSource(); - Application.Current.Dispatcher.Invoke(() => { NetworkInterceptor.AddIpIntoList(ipAddr); }); + Application.Current.Dispatcher.InvokeAsync(() => + { + try + { + NetworkInterceptor.AddIpIntoList(ipAddr); + tcs.SetResult(Ok("IP has been added.")); + } + catch (Exception ex) + { + Logger.Error(ex.Message + ex.StackTrace); + throw; + } + }); - return Ok(); + return Ok("IP has been added."); } } catch (Exception e) @@ -329,11 +344,11 @@ await HttpContext.SignInAsync( Logger.Log("Login success."); - return Ok(); + return Ok("Sucess."); } else { - return Unauthorized(); + return Ok("Failed."); } } diff --git a/RDPInterceptor/Web/Data.html b/RDPInterceptor/Web/Data.html index eb9713f..701cb4d 100644 --- a/RDPInterceptor/Web/Data.html +++ b/RDPInterceptor/Web/Data.html @@ -91,12 +91,12 @@ if (response.ok) { return response.text(); } else { - console.error('Failed to start.'); + alert('Failed to start.'); } }).then(data => { console.log('Response:', data); }).catch(error => { - console.error('Network error:', error); + alert('Network error:', error); }); } @@ -114,7 +114,7 @@ console.error('Failed on stop capture.'); } }).catch(error => { - console.error('Network error:', error); + alert('Network error:', error); }); } @@ -147,12 +147,12 @@ body: JSON.stringify(settingsObj) }).then(response => { if (response.ok) { - console.log('Settings applied successfully.'); + alert('Settings applied successfully.'); } else { - console.error('Failed to apply settings.'); + alert('Failed to apply settings.'); } }).catch(error => { - console.error('Network error:', error); + alert('Network error:', error); }); $('#settingsModal').modal('hide'); @@ -179,10 +179,10 @@ currentIpAddrList.splice(selectedIndex, 1); return response.text(); } else { - console.error('Failed to delete IP.'); + alert('Failed to delete IP. Possibly a null item.'); } }).catch(error => { - console.error('Network error:', error); + alert('Network error:', error); }); } } @@ -202,10 +202,10 @@ inputBox.value = ""; return response.text(); } else { - console.error('Failed to add IP.'); + alert('Invalid IP/Domain address or IP has already exist.'); } }).catch(error => { - console.error('Network error:', error); + alert('Network error:', error); }); } diff --git a/RDPInterceptor/Web/Login.html b/RDPInterceptor/Web/Login.html index 4b7a0e3..168a61f 100644 --- a/RDPInterceptor/Web/Login.html +++ b/RDPInterceptor/Web/Login.html @@ -18,35 +18,33 @@

Login

- + - +