From 94a2cfa9f560a1caede24195755ae95068648210 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 16 May 2015 23:17:23 -0400 Subject: updated translations --- .../Udp/UdpServer.cs | 47 +++++++++++++++------- 1 file changed, 33 insertions(+), 14 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Udp') diff --git a/MediaBrowser.Server.Implementations/Udp/UdpServer.cs b/MediaBrowser.Server.Implementations/Udp/UdpServer.cs index 84b6d37088..40c4deb193 100644 --- a/MediaBrowser.Server.Implementations/Udp/UdpServer.cs +++ b/MediaBrowser.Server.Implementations/Udp/UdpServer.cs @@ -30,7 +30,7 @@ namespace MediaBrowser.Server.Implementations.Udp private bool _isDisposed; - private readonly List>> _responders = new List>>(); + private readonly List>> _responders = new List>>(); private readonly IServerApplicationHost _appHost; private readonly IJsonSerializer _json; @@ -49,16 +49,16 @@ namespace MediaBrowser.Server.Implementations.Udp _appHost = appHost; _json = json; - AddMessageResponder("who is MediaBrowserServer?", RespondToV1Message); - AddMessageResponder("who is MediaBrowserServer_v2?", RespondToV2Message); AddMessageResponder("who is EmbyServer?", RespondToV2Message); + AddMessageResponder("who is MediaBrowserServer_v2?", RespondToV2Message); + AddMessageResponder("who is MediaBrowserServer?", RespondToV1Message); } - private void AddMessageResponder(string message, Action responder) + private void AddMessageResponder(string message, Action responder) { var expectedMessageBytes = Encoding.UTF8.GetBytes(message); - _responders.Add(new Tuple>(expectedMessageBytes, responder)); + _responders.Add(new Tuple>(message, expectedMessageBytes, responder)); } /// @@ -67,13 +67,25 @@ namespace MediaBrowser.Server.Implementations.Udp /// The instance containing the event data. private void OnMessageReceived(UdpMessageReceivedEventArgs e) { - var responder = _responders.FirstOrDefault(i => i.Item1.SequenceEqual(e.Bytes)); + var responder = _responders.FirstOrDefault(i => i.Item2.SequenceEqual(e.Bytes)); + var encoding = Encoding.UTF8; + + if (responder == null) + { + var text = Encoding.Unicode.GetString(e.Bytes); + responder = _responders.FirstOrDefault(i => string.Equals(i.Item1, text, StringComparison.OrdinalIgnoreCase)); + + if (responder != null) + { + encoding = Encoding.Unicode; + } + } if (responder != null) { try { - responder.Item2(e.RemoteEndPoint); + responder.Item3(e.RemoteEndPoint, encoding); } catch (Exception ex) { @@ -82,7 +94,7 @@ namespace MediaBrowser.Server.Implementations.Udp } } - private async void RespondToV1Message(string endpoint) + private async void RespondToV1Message(string endpoint, Encoding encoding) { var localAddress = _appHost.LocalApiUrl; @@ -107,7 +119,7 @@ namespace MediaBrowser.Server.Implementations.Udp } } - private async void RespondToV2Message(string endpoint) + private async void RespondToV2Message(string endpoint, Encoding encoding) { var localUrl = _appHost.LocalApiUrl; @@ -120,7 +132,7 @@ namespace MediaBrowser.Server.Implementations.Udp Name = _appHost.FriendlyName }; - await SendAsync(Encoding.UTF8.GetBytes(_json.SerializeToString(response)), endpoint); + await SendAsync(encoding.GetBytes(_json.SerializeToString(response)), endpoint); } else { @@ -196,11 +208,18 @@ namespace MediaBrowser.Server.Implementations.Udp } var bytes = message.Buffer; - OnMessageReceived(new UdpMessageReceivedEventArgs + try + { + OnMessageReceived(new UdpMessageReceivedEventArgs + { + Bytes = bytes, + RemoteEndPoint = message.RemoteEndPoint.ToString() + }); + } + catch (Exception ex) { - Bytes = bytes, - RemoteEndPoint = message.RemoteEndPoint.ToString() - }); + _logger.ErrorException("Error handling UDP message", ex); + } } /// -- cgit v1.2.3