src/examples/simple_router/routing-table.rb in trema-0.4.5 vs src/examples/simple_router/routing-table.rb in trema-0.4.6
- old
+ new
@@ -15,51 +15,44 @@
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
+require 'pio'
-require "ipaddr"
-
-
class RoutingTable
ADDR_LEN = 32
-
def initialize route = []
- @db = Array.new( ADDR_LEN + 1 ) { Hash.new }
- route.each do | each |
- add( each )
+ @db = Array.new(ADDR_LEN + 1) { Hash.new }
+ route.each do |each|
+ add(each)
end
end
-
def add options
- dest = IPAddr.new( options[ :destination ] )
- masklen = options[ :masklen ]
- prefix = dest.mask( masklen )
- @db[ masklen ][ prefix.to_i ] = IPAddr.new( options[ :nexthop ] )
+ dest = Pio::IPv4Address.new(options[:destination])
+ masklen = options[:masklen]
+ prefix = dest.mask(masklen)
+ @db[masklen][prefix.to_i] = Pio::IPv4Address.new(options[:nexthop])
end
-
def delete options
- dest = IPAddr.new( options[ :destination ] )
- masklen = options[ :masklen ]
- prefix = dest.mask( masklen )
- @db[ masklen ].delete( prefix.to_i )
+ dest = Pio::IPv4Address.new(options[:destination])
+ masklen = options[:masklen]
+ prefix = dest.mask(masklen)
+ @db[masklen].delete(prefix.to_i)
end
-
def lookup dest
- ( 0..ADDR_LEN ).reverse_each do | masklen |
- prefix = dest.mask( masklen )
- entry = @db[ masklen ][ prefix.to_i ]
+ (0..ADDR_LEN).reverse_each do |masklen|
+ prefix = dest.mask(masklen)
+ entry = @db[masklen][prefix.to_i]
return entry if entry
end
nil
end
end
-
### Local variables:
### mode: Ruby
### coding: utf-8-unix
### indent-tabs-mode: nil