Horizon

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 20  →  ?path2? @ 21
/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)