public override ConnectionInfo GetConnectionInfo()
{
ConnectionStatus status;
switch (state) {
case ConnectionState.Waiting: status = ConnectionStatus.Connecting; break;
case ConnectionState.Connected: status = ConnectionStatus.Connecting; break;
case ConnectionState.Receiving: status = ConnectionStatus.Connected; break;
case ConnectionState.Error: status = ConnectionStatus.Error; break;
default: status = ConnectionStatus.Idle; break;
}
IPEndPoint endpoint = null;
if (connection!=null) {
endpoint = connection.RemoteEndPoint;
}
return new ConnectionInfo(
"RTMP Source",
ConnectionType.Source,
status,
SourceUri.ToString(),
endpoint,
(endpoint!=null && endpoint.Address.IsSiteLocal()) ? RemoteHostStatus.Local : RemoteHostStatus.None,
flvBuffer.Position,
RecvRate,
SendRate,
null,
null,
clientName);
}