+ results = dict()
+ for ip in nsips:
+ newres = ub_ctx()
+ newres.set_fwd(ip)
+ s, result = newres.resolve(name, rrtype=RR_TYPE_SOA)
+ if 0 != s:
+ ub_strerror(s)
+ return 3
+
+ s, result = ldns.ldns_wire2pkt(result.packet)
+ soas = list(result.rr_list_by_type(RR_TYPE_SOA,
+ ldns.LDNS_SECTION_ANSWER).rrs())
+
+ if len(soas) != 1:
+ return 3
+ serial = str(soas[0]).split()[6]
+ results[serial] = results.get(serial, []) + [ip]
+
+ if len(results) == 1:
+ return 0
+ else:
+ print("CRIT (different SOAs): %s", results)
+ return 2