comparison modules/firewall/lib/puppet/util/ipcidr.rb @ 39:d6f2a0ee45c0 puppet-3.6

Add "Firewall" module
author IBBoard <dev@ibboard.co.uk>
date Sat, 14 Mar 2015 20:58:03 +0000
parents
children d9352a684e62
comparison
equal deleted inserted replaced
38:a1960fb961c5 39:d6f2a0ee45c0
1 require 'ipaddr'
2
3 # IPCidr object wrapper for IPAddr
4 module Puppet
5 module Util
6 class IPCidr < IPAddr
7 def initialize(ipaddr)
8 begin
9 super(ipaddr)
10 rescue ArgumentError => e
11 if e.message =~ /invalid address/
12 raise ArgumentError, "Invalid address from IPAddr.new: #{ipaddr}"
13 else
14 raise e
15 end
16 end
17 end
18
19 def netmask
20 _to_string(@mask_addr)
21 end
22
23 def prefixlen
24 m = case @family
25 when Socket::AF_INET
26 IN4MASK
27 when Socket::AF_INET6
28 IN6MASK
29 else
30 raise "unsupported address family"
31 end
32 return $1.length if /\A(1*)(0*)\z/ =~ (@mask_addr & m).to_s(2)
33 raise "bad addr_mask format"
34 end
35
36 def cidr
37 cidr = sprintf("%s/%s", self.to_s, self.prefixlen)
38 cidr
39 end
40 end
41 end
42 end