lib/netdisco/snmp.rb in netdisco-0.0.7 vs lib/netdisco/snmp.rb in netdisco-0.0.8
- old
+ new
@@ -42,17 +42,19 @@
# @return [Array(SNMP::VarBind)]
def bulkwalk(root)
# 初始化变量
last, oid, results = false, root.dup, []
# 将点分10进制字串转换为数组对象
- root = root.split(".").map { |chr| chr.to_i }
+ # root = root.split(".").map { |chr| chr.to_i }
+
# 遍历 root_oid
until last
vbs = snmp(:get_bulk, 0, CFG.snmp.bulkrows, oid).varbind_list
vbs.each do |vb|
- oid = vb.oid
+ oid = vb.name.to_str
# 解析到的 oid 不匹配 root 跳出循环
- (last = true; break) unless oid[0..root.size - 1] == root
+ (last = true; break) unless oid.match?(/^#{Regexp.quote(root)}/)
+ # (last = true; break) unless oid[0..root.size - 1] == root
results << vb
end
end
results
end