2020-03-24 07:42:14 -04:00
|
|
|
function Close-IcingaTCPConnection()
|
|
|
|
|
{
|
|
|
|
|
param(
|
2023-11-15 08:31:40 -05:00
|
|
|
[hashtable]$Connection = @{ }
|
2020-03-24 07:42:14 -04:00
|
|
|
);
|
|
|
|
|
|
2023-11-15 08:31:40 -05:00
|
|
|
if ($null -eq $Connection -Or $Connection.Count -eq 0) {
|
|
|
|
|
$Connection = $null;
|
|
|
|
|
|
2020-03-24 07:42:14 -04:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2020-03-24 10:32:14 -04:00
|
|
|
Write-IcingaDebugMessage -Message (
|
|
|
|
|
[string]::Format(
|
|
|
|
|
'Closing client connection for endpoint {0}',
|
2023-11-15 08:31:40 -05:00
|
|
|
(Get-IcingaTCPClientRemoteEndpoint -Client $Connection.Client)
|
2020-03-24 10:32:14 -04:00
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
|
2023-11-15 08:31:40 -05:00
|
|
|
try {
|
|
|
|
|
if ($null -ne $Connection.Stream) {
|
|
|
|
|
$Connection.Stream.Close();
|
|
|
|
|
$Connection.Stream.Dispose();
|
|
|
|
|
$Connection.Stream = $null;
|
|
|
|
|
}
|
|
|
|
|
} catch {
|
|
|
|
|
$Connection.Stream = $null;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
if ($null -ne $Connection.Client) {
|
|
|
|
|
$Connection.Client.Close();
|
|
|
|
|
$Connection.Client.Dispose();
|
|
|
|
|
$Connection.Client = $null;
|
|
|
|
|
}
|
|
|
|
|
} catch {
|
|
|
|
|
$Connection.Client = $null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$Connection = $null;
|
2020-03-24 07:42:14 -04:00
|
|
|
}
|