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