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

ruby-changes:68290

From: Espartaco <ko1@a...>
Date: Thu, 7 Oct 2021 18:35:45 +0900 (JST)
Subject: [ruby-changes:68290] b23fba91ae (master): [ruby/ipaddr] Removing superfluos assingments & return

https://git.ruby-lang.org/ruby.git/commit/?id=b23fba91ae

From b23fba91ae60c71649cb5e5f8b63c87e6a63020f Mon Sep 17 00:00:00 2001
From: Espartaco Palma <esparta@g...>
Date: Sat, 27 Oct 2018 17:13:31 -0700
Subject: [ruby/ipaddr] Removing superfluos assingments & return

Also adding test for ntop

https://github.com/ruby/ipaddr/commit/0ba16cca10
---
 lib/ipaddr.rb       |  5 ++---
 test/test_ipaddr.rb | 17 +++++++++++++++++
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb
index 7fff54b9d0..6fe6c1f318 100644
--- a/lib/ipaddr.rb
+++ b/lib/ipaddr.rb
@@ -112,13 +112,12 @@ class IPAddr https://github.com/ruby/ruby/blob/trunk/lib/ipaddr.rb#L112
   def self.ntop(addr)
     case addr.size
     when 4
-      s = addr.unpack('C4').join('.')
+      addr.unpack('C4').join('.')
     when 16
-      s = IN6FORMAT % addr.unpack('n8')
+      IN6FORMAT % addr.unpack('n8')
     else
       raise AddressFamilyError, "unsupported address family"
     end
-    return s
   end
 
   # Returns a new ipaddr built by bitwise AND.
diff --git a/test/test_ipaddr.rb b/test/test_ipaddr.rb
index 7b3a199bf3..e2243dc542 100644
--- a/test/test_ipaddr.rb
+++ b/test/test_ipaddr.rb
@@ -116,6 +116,23 @@ class TC_IPAddr < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/test_ipaddr.rb#L116
     assert_equal("192.168.2.1", IPAddr.new_ntoh(a.hton).to_s)
   end
 
+  def test_ntop
+    # IPv4
+    assert_equal("192.168.1.1", IPAddr.ntop("\xC0\xA8\x01\x01"))
+    # IPv6
+    assert_equal("0000:0000:0000:0000:0000:0000:0000:0001",
+                 IPAddr.ntop("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"))
+
+    # Invalid parameters
+    assert_raise(IPAddr::AddressFamilyError) {
+      IPAddr.ntop("192.168.1.1")
+    }
+
+    assert_raise(IPAddr::AddressFamilyError) {
+      IPAddr.ntop("\xC0\xA8\x01\xFF1")
+    }
+  end
+
   def test_ipv4_compat
     a = IPAddr.new("::192.168.1.2")
     assert_equal("::192.168.1.2", a.to_s)
-- 
cgit v1.2.1


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

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