    # File lib/chef/provider/route.rb, line 63
        def load_current_resource
          is_running = nil

          # cidr or quad dot mask
          if @new_resource.netmask
            new_ip = IPAddr.new("#{@new_resource.target}/#{@new_resource.netmask}")
          else
            new_ip = IPAddr.new(@new_resource.target)
          end

          # pull routes from proc
          if node[:os] == "linux"
            route_file = ::File.open("/proc/net/route", "r")
            while (line = route_file.gets)
              # proc layout
              iface,destination,gateway,flags,refcnt,use,metric,mask,mtu,window,irtt = line.split

              # need to convert packed adresses int quad dot
              #  the addrs are reversed hex packed decimal addrs. so this unwraps them. tho you could
              #  do this without ipaddr using unpack. ipaddr has no htoa method.
              #
              destination = IPAddr.new(destination.scan(/../).reverse.to_s.hex, Socket::AF_INET).to_s
              gateway = IPAddr.new(gateway.scan(/../).reverse.to_s.hex, Socket::AF_INET).to_s
              mask = IPAddr.new(mask.scan(/../).reverse.to_s.hex, Socket::AF_INET).to_s
              Chef::Log.debug("#{@new_resource} system has route: dest=#{destination} mask=#{mask} gw=#{gateway}")

              # check if what were trying to configure is already there
              # use an ipaddr object with ip/mask this way we can have
              # a new resource be in cidr format (i don't feel like
              # expanding bitmask by hand.
              #
              running_ip = IPAddr.new("#{destination}/#{mask}")
              Chef::Log.debug("#{@new_resource} new ip: #{new_ip.inspect} running ip: #{running_ip.inspect}")
              is_running = true if running_ip == new_ip
            end
          route_file.close
          end
        end