/Horizon/MainForm.cs |
@@ -173,6 +173,7 @@ |
_horizonNetworkShare.Events.ClientConnected += Events_ClientConnected; |
_horizonNetworkShare.Events.ClientDisconnected += Events_ClientDisconnected; |
_horizonNetworkShare.Events.MessageReceived += Events_MessageReceived; |
_horizonNetworkShare.Events.ExceptionEncountered += Events_ExceptionEncountered; |
#pragma warning disable CS4014 |
_horizonNetworkShare.Start(); |
#pragma warning restore CS4014 |
@@ -196,6 +197,11 @@ |
case CheckState.Unchecked: |
if (_horizonNetworkShare != null) |
{ |
_horizonNetworkShare.Events.ClientConnected -= Events_ClientConnected; |
_horizonNetworkShare.Events.ClientDisconnected -= Events_ClientDisconnected; |
_horizonNetworkShare.Events.MessageReceived -= Events_MessageReceived; |
_horizonNetworkShare.Events.ExceptionEncountered -= Events_ExceptionEncountered; |
|
_horizonNetworkShare.Dispose(); |
_horizonNetworkShare = null; |
} |
@@ -215,11 +221,16 @@ |
async () => { await SaveConfiguration(); }, _cancellationToken); |
} |
|
private void Events_ExceptionEncountered(object sender, ExceptionEventArgs e) |
{ |
Log.Error(e.Exception,$"Client threw exception."); |
} |
|
private async void Events_MessageReceived(object sender, MessageReceivedEventArgs e) |
{ |
Log.Information($"Client {e.Client.IpPort} sent {e.Data.Length} bytes via network sharing."); |
Log.Information($"Client {e.Client?.IpPort} sent {e.Data?.Length} bytes via network sharing."); |
|
if (e.Data.Length == 0) |
if (e.Data?.Length == 0) |
{ |
return; |
} |
@@ -232,22 +243,22 @@ |
|
await _snapshotDatabase.ApplyTransferSnapshotAsync(completeSnapshot, _cancellationToken); |
|
Log.Information($"Stored {completeSnapshot.Name} from {e.Client.IpPort}"); |
Log.Information($"Stored {completeSnapshot.Name} from {e.Client?.IpPort}"); |
} |
catch (Exception exception) |
{ |
Log.Error(exception, $"Failed to process network share from {e.Client.IpPort}."); |
Log.Error(exception, $"Failed to process network share from {e.Client?.IpPort}."); |
} |
} |
|
private void Events_ClientDisconnected(object sender, WatsonTcp.DisconnectionEventArgs e) |
{ |
Log.Information($"Client {e.Client.IpPort} disconnected from network sharing."); |
Log.Information($"Client {e.Client?.IpPort} disconnected from network sharing."); |
} |
|
private void Events_ClientConnected(object sender, WatsonTcp.ConnectionEventArgs e) |
{ |
Log.Information($"Client {e.Client.IpPort} connected to network sharing."); |
Log.Information($"Client {e.Client?.IpPort} connected to network sharing."); |
} |
|
private void WindowToolStripMenuItem_Click(object sender, EventArgs e) |