# File common/lib/symbiosis/ipaddr.rb, line 93 def cidr_mask # # Hmm.. this is a bit horrid. But without a log2 function, there's not # much else we can do.. case @family when Socket::AF_INET @mask_addr = IN4MASK if @mask_addr > IN4MASK n_addresses = ((~@mask_addr) & IN4MASK) + 1 32 - (0..32).find{|m| 2**m == n_addresses} when Socket::AF_INET6 @mask_addr = IN6MASK if @mask_addr > IN6MASK n_addresses = ((~@mask_addr) & IN6MASK) + 1 128 - (0..128).find{|m| 2**m == n_addresses} end end