walk (SNMP::Manager)

    # File lib/snmp/manager.rb, line 389
        def walk(object_list, index_column=0)
            raise ArgumentError, "expected a block to be given" unless block_given?
            vb_list = @mib.varbind_list(object_list, :NullValue)
            raise ArgumentError, "index_column is past end of varbind list" if index_column >= vb_list.length
            is_single_vb = object_list.respond_to?(:to_str) ||
                           object_list.respond_to?(:to_varbind)
            start_list = vb_list
            start_oid = vb_list[index_column].name
            last_oid = start_oid
            loop do
                vb_list = get_next(vb_list).vb_list
                index_vb = vb_list[index_column]
                break if EndOfMibView == index_vb.value
                stop_oid = index_vb.name
                if stop_oid <= last_oid
                    warn "OIDs are not increasing, #{last_oid} followed by #{stop_oid}"
                    break
                end
                break unless stop_oid.subtree_of?(start_oid)
                last_oid = stop_oid
                if is_single_vb
                    yield index_vb
                else
                    vb_list = validate_row(vb_list, start_list, index_column)
                    yield vb_list
                end
            end
        end