From a442da2ba8f32355b98f7a6ed9cd298f701aacbc Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Thu, 5 Apr 2012 18:03:19 +0100 Subject: [PATCH] Fix for SF-3072580 and ensure UTF-8 encoding is used instead of ASCII. Thanks to Akkarin Dryke for the 3072580 fix. --- trunk/Helpers/HTTPRequest.cs | 26 +++++++++++++++++++++----- trunk/Resource/ReleaseNotes.htm | 12 +++++++++++- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/trunk/Helpers/HTTPRequest.cs b/trunk/Helpers/HTTPRequest.cs index ca1568b..8fde113 100644 --- a/trunk/Helpers/HTTPRequest.cs +++ b/trunk/Helpers/HTTPRequest.cs @@ -42,6 +42,8 @@ // ******** // */ using System; +using System.IO; +using System.IO.Compression; using System.Net; using System.Text; @@ -63,7 +65,7 @@ namespace LSLEditor public static void Request(WebProxy proxy, SecondLife secondlife, string strUrl, SecondLife.list parameters, string postData, SecondLife.key key) { string strMethod = "GET"; - string strContentType = "text/plain;charset=utf-8"; + string strContentType = "text/plain; charset=utf-8"; for (int intI = 0; intI < parameters.Count; intI += 2) { @@ -94,7 +96,7 @@ namespace LSLEditor wc.Headers.Add("Content-Type", strContentType); wc.Headers.Add("Accept", "text/*"); - wc.Headers.Add("Accept-Charset", "utf-8;q=1.0, *;q=0.5"); + wc.Headers.Add("Accept-Charset", "utf-8; q=1.0, *; q=0.5"); wc.Headers.Add("Accept-Encoding", "deflate, gzip"); wc.Headers.Add("User-Agent", "Second Life LSL/1.19.0(12345) (http://secondlife.com)"); @@ -172,7 +174,9 @@ namespace LSLEditor else { if (e.Result != null) - strResult = Encoding.ASCII.GetString(e.Result); + { + strResult = Encoding.UTF8.GetString(e.Result); + } } userState.secondlife.host.ExecuteSecondLife("http_response", userState.httpkey, (SecondLife.integer)intStatusCode, new SecondLife.list(), (SecondLife.String)strResult); } @@ -194,10 +198,22 @@ namespace LSLEditor else { if (e.Result != null) - strResult = Encoding.ASCII.GetString(e.Result); + { + string strEncoding = ((System.Net.WebClient)sender).ResponseHeaders["Content-Encoding"]; + if (strEncoding == "gzip") + { + GZipStream tempE = new GZipStream(new System.IO.MemoryStream(e.Result), CompressionMode.Decompress); + + var sr = new StreamReader(tempE); + strResult = sr.ReadToEnd(); + } + else + { + strResult = Encoding.UTF8.GetString(e.Result); + } + } } userState.secondlife.host.ExecuteSecondLife("http_response", userState.httpkey, (SecondLife.integer)intStatusCode, new SecondLife.list(), (SecondLife.String)strResult); } - } } diff --git a/trunk/Resource/ReleaseNotes.htm b/trunk/Resource/ReleaseNotes.htm index 734b2f2..d447676 100644 --- a/trunk/Resource/ReleaseNotes.htm +++ b/trunk/Resource/ReleaseNotes.htm @@ -7,9 +7,19 @@
+
+

<2012-04-00 - Release 2.46.0

+
+ * Fixed: +
    +
  • SF ID: 3072580 - HTTP Request response returned gzip compressed string. (Thanks to Akkarin Dryke).
  • +
  • Also fixed HTTP Request response returning UTF-8 (instead of ASCII).
  • +
+
+

2012-03-18 - Release 2.45.1

-
- Fixed: Problem with updater. Our BZip2 decompression code did not work, which prevented the updater creating the new file.
+
* Fixed: Problem with updater. Our BZip2 decompression code did not work, which prevented the updater creating the new file.

2012-03-14 - Release 2.45.0