icinga-powershell-framework/lib/webserver/New-IcingaTCPSocket.psm1

42 lines
1.1 KiB
PowerShell
Raw Normal View History

2020-03-24 07:42:14 -04:00
function New-IcingaTCPSocket()
{
param (
[string]$Address = '',
[int]$Port = 0,
[switch]$Start = $FALSE
2020-03-24 07:42:14 -04:00
);
if ($Port -eq 0) {
throw 'Please specify a valid port to open a TCP socket for';
}
# Listen on localhost by default
$ListenAddress = New-Object System.Net.IPEndPoint([IPAddress]::Loopback, $Port);
if ([string]::IsNullOrEmpty($Address) -eq $FALSE) {
$ListenAddress = New-Object System.Net.IPEndPoint([IPAddress]::Parse($Address), $Port);
}
$TCPSocket = New-Object 'System.Net.Sockets.TcpListener' $ListenAddress;
2020-03-24 07:42:14 -04:00
Write-IcingaDebugMessage -Message (
[string]::Format(
'Creating new TCP socket on Port {0}. Endpoint configuration {1}',
$Port,
$TCPSocket.LocalEndpoint
)
);
2020-03-24 07:42:14 -04:00
if ($Start) {
Write-IcingaDebugMessage -Message (
[string]::Format(
'Starting TCP socket for endpoint {0}',
$TCPSocket.LocalEndpoint
)
);
2020-03-24 07:42:14 -04:00
$TCPSocket.Start();
}
return $TCPSocket;
}