/** * Does the necessary actions, when this as a query. */ boolean handleQuery(JmDNS dns, long expirationTime) { DNSRecord.Address dnsAddress = dns.getLocalHost().getDNSAddressRecord(this); if (dnsAddress != null) { if (dnsAddress.sameType(this) && dnsAddress.sameName(this) && (!dnsAddress.sameValue(this))) { logger.finer("handleQuery() Conflicting probe detected. dns state " + dns.getState() + " lex compare " + lexCompare(dnsAddress)); // Tie-breaker test if (dns.getState().isProbing() && lexCompare(dnsAddress) >= 0) { // We lost the tie-break. We have to choose a different name. dns.getLocalHost().incrementHostName(); dns.getCache().clear(); for (Iterator i = dns.services.values().iterator(); i.hasNext();) { ServiceInfo info = (ServiceInfo) i.next(); info.revertState(); } } dns.revertState(); return true; } } return false; }