[#47383] [ruby-trunk - Feature #8469][Open] ABI checker とか導入しませんか — "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...>

21 messages 2013/06/01
[#47394] [ruby-trunk - Feature #8469] ABI checker とか導入しませんか — "usa (Usaku NAKAMURA)" <usa@...> 2013/06/04

[#47395] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか — KOSAKI Motohiro <kosaki.motohiro@...> 2013/06/04

> CIに組み込んでもらえるとちょー助かる感じですぅ

[#47396] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか — Tanaka Akira <akr@...> 2013/06/04

2013年6月4日 14:23 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:

[#47397] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか — KOSAKI Motohiro <kosaki.motohiro@...> 2013/06/04

>> CI って誰に相談すればいいんですかね。今のツールだと比較対象のバイナリまたは

[#47399] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか — Tanaka Akira <akr@...> 2013/06/05

2013年6月4日 15:26 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:

[#47402] Re: [ruby-trunk - Feature #8469] ABI checker とか導入しませんか — KOSAKI Motohiro <kosaki.motohiro@...> 2013/06/05

>>> 比較対象を用意しないといけないのが面倒くさそうでほったらかしてたんですが。

[#47422] [ruby-trunk - Feature #8526][Open] Removing tk from Ruby repository — "naruse (Yui NARUSE)" <naruse@...>

26 messages 2013/06/14

[ruby-dev:47391] [ruby-trunk - Feature #8047][Assigned] IPAddr makes host address with netmask

From: "zzak (Zachary Scott)" <zachary@...>
Date: 2013-06-02 06:25:00 UTC
List: ruby-dev #47391
Issue #8047 has been updated by zzak (Zachary Scott).

Category set to lib
Status changed from Open to Assigned
Assignee set to knu (Akinori MUSHA)
Target version set to current: 2.1.0


----------------------------------------
Feature #8047: IPAddr makes host address with netmask
https://bugs.ruby-lang.org/issues/8047#change-39624

Author: nori_nori (Tadanori Kojima)
Status: Assigned
Priority: Normal
Assignee: knu (Akinori MUSHA)
Category: lib
Target version: current: 2.1.0


現状のIPAddrはネットマスク付きの場合、

IPAddr.new("192.168.1.99/24")
 => #<IPAddr: IPv4:192.168.1.0/255.255.255.0> 

のようにネットワークアドレスとして生成されますが、
マスク付きの場合にマスクされないホストとして生成する
モードを提案します
(=ホストのIPアドレスとどのネットワークかを把握したい)
ex.
IPAddr.new("192.168.1.99/24")
 => #<IPAddr: IPv4:192.168.1.99/255.255.255.0> 


newの第二引数にfamilyが指定されていれば32bitマスクのホストアドレスなので、
引数がAF_INET/INET6または:Hostならばホストとして生成させます

- IPAddr.new(int, family)
IPAddr.new(3232235875, Socket::AF_INET)
 => #<IPAddr: IPv4:192.168.1.99/255.255.255.255>

- IPAddr.new(ip, :Host)
IPAddr.new("192.168.1.99/24", :Host)
 => #<IPAddr: IPv4:192.168.1.99/255.255.255.0> 

引数の構成とシンボル名がイマイチですが既存との両立ということで
以下がパッチになります


--- ipaddr.rb.orig      2013-03-08 13:59:07.000000000 +0900
+++ ipaddr.rb   2013-03-08 14:35:06.000000000 +0900
@@ -440,7 +440,7 @@
     else
       raise AddressFamilyError, "unsupported address family"
     end
-    @addr = ((@addr >> masklen) << masklen)
+    @addr = ((@addr >> masklen) << masklen) if @host_mode == false
     return self
   end
 
@@ -477,6 +477,14 @@
         raise AddressFamilyError, "unsupported address family: #{family}"
       end
     end
+
+    if family == :Host 
+      @host_mode = true
+      family = Socket::AF_UNSPEC
+    else
+      @host_mode = false
+    end
+
     prefix, prefixlen = addr.split('/')
     if prefix =~ /^\[(.*)\]$/i
       prefix = $1


-- 
http://bugs.ruby-lang.org/

In This Thread