[前][次][番号順一覧][スレッド一覧]

ruby-changes:37002

From: akr <ko1@a...>
Date: Wed, 31 Dec 2014 17:50:26 +0900 (JST)
Subject: [ruby-changes:37002] akr:r49083 (trunk): * lib/resolv.rb (Resolv::DNS::Label::Str#initialize): Set encoding

akr	2014-12-31 17:50:10 +0900 (Wed, 31 Dec 2014)

  New Revision: 49083

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=49083

  Log:
    * lib/resolv.rb (Resolv::DNS::Label::Str#initialize): Set encoding
      ASCII-8BIT before downcase.  case insensivity of DNS labels doesn't
      apply non-ASCII characters.  [RFC 4343]

  Modified files:
    trunk/ChangeLog
    trunk/lib/resolv.rb
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 49082)
+++ ChangeLog	(revision 49083)
@@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Wed Dec 31 17:48:43 2014  Tanaka Akira  <akr@f...>
+
+	* lib/resolv.rb (Resolv::DNS::Label::Str#initialize): Set encoding
+	  ASCII-8BIT before downcase.  case insensivity of DNS labels doesn't
+	  apply non-ASCII characters.  [RFC 4343]
+
 Wed Dec 31 16:48:44 2014  Nobuyoshi Nakada  <nobu@r...>
 
 	* parse.y (gettable_gen): disable warnings of possible reference
Index: lib/resolv.rb
===================================================================
--- lib/resolv.rb	(revision 49082)
+++ lib/resolv.rb	(revision 49083)
@@ -1170,7 +1170,9 @@ class Resolv https://github.com/ruby/ruby/blob/trunk/lib/resolv.rb#L1170
       class Str # :nodoc:
         def initialize(string)
           @string = string
-          @downcase = string.downcase
+          # case insensivity of DNS labels doesn't apply non-ASCII characters. [RFC 4343]
+          # This assumes @string is given in ASCII compatible encoding.
+          @downcase = string.dup.force_encoding('ASCII-8BIT').downcase
         end
         attr_reader :string, :downcase
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]