File tree Expand file tree Collapse file tree 2 files changed +10
-1
lines changed
Expand file tree Collapse file tree 2 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -381,7 +381,9 @@ def ipv4_compat
381381 if !ipv4?
382382 raise InvalidAddressError , "not an IPv4 address: #{ @addr } "
383383 end
384- return self . clone . set ( @addr , Socket ::AF_INET6 )
384+ clone = self . clone . set ( @addr , Socket ::AF_INET6 )
385+ clone . instance_variable_set ( :@mask_addr , @mask_addr | 0xffffffffffffffffffffffff00000000 )
386+ clone
385387 end
386388
387389 # Returns a new ipaddr built by converting the IPv6 address into a
Original file line number Diff line number Diff line change @@ -196,6 +196,13 @@ def test_ipv4_compat
196196 }
197197 assert_equal ( "::192.168.1.2" , b . to_s )
198198 assert_equal ( Socket ::AF_INET6 , b . family )
199+ assert_equal ( 128 , b . prefix )
200+
201+ a = IPAddr . new ( "192.168.0.0/16" )
202+ b = a . ipv4_compat
203+ assert_equal ( "::192.168.0.0" , b . to_s )
204+ assert_equal ( Socket ::AF_INET6 , b . family )
205+ assert_equal ( 112 , b . prefix )
199206 end
200207
201208 def test_ipv4_mapped
You can’t perform that action at this time.
0 commit comments