Procházet zdrojové kódy

case insensitive matching for DNS records. add negation matcher

tags/2.0.1
Jonathan Cobb před 5 roky
rodič
revize
17f98db570
2 změnil soubory, kde provedl 14 přidání a 5 odebrání
  1. +3
    -2
      src/main/java/org/cobbzilla/util/dns/DnsRecordBase.java
  2. +11
    -3
      src/main/java/org/cobbzilla/util/dns/DnsRecordMatch.java

+ 3
- 2
src/main/java/org/cobbzilla/util/dns/DnsRecordBase.java Zobrazit soubor

@@ -31,9 +31,10 @@ public class DnsRecordBase {
@Getter @Setter protected String value;
public boolean hasValue () { return !empty(value); }

@JsonIgnore
public DnsRecordMatch getMatcher() {
@JsonIgnore public DnsRecordMatch getMatcher() {
return (DnsRecordMatch) new DnsRecordMatch().setFqdn(fqdn).setType(type).setValue(value);
}

@JsonIgnore public DnsRecordMatch getNonMatcher() { return DnsRecordMatch.invert(getMatcher()); }

}

+ 11
- 3
src/main/java/org/cobbzilla/util/dns/DnsRecordMatch.java Zobrazit soubor

@@ -39,12 +39,20 @@ public class DnsRecordMatch extends DnsRecordBase {

public DnsRecordMatch(String fqdn) { this(null, fqdn); }

public static DnsRecordMatch invert(DnsRecordMatch other) {
return new DnsRecordMatch() {
@Override public boolean matches(DnsRecord record) {
return !other.matches(record);
}
};
}

public boolean matches (DnsRecord record) {
if (hasType() && !getType().equals(record.getType())) return false;
if (hasFqdn() && !getFqdn().equals(record.getFqdn())) return false;
if (hasSubdomain() && record.hasFqdn() && !record.getFqdn().endsWith(getSubdomain())) return false;
if (hasFqdn() && !getFqdn().equalsIgnoreCase(record.getFqdn())) return false;
if (hasSubdomain() && record.hasFqdn() && !record.getFqdn().toLowerCase().endsWith(getSubdomain().toLowerCase())) return false;
if (hasPattern() && record.hasFqdn() && !get_pattern().matcher(record.getFqdn()).find()) return false;
if (hasFqdns() && record.hasFqdn() && !getFqdns().contains(record.getFqdn())) return false;
if (hasFqdns() && record.hasFqdn() && getFqdns().stream().noneMatch(f -> record.getFqdn().equalsIgnoreCase(f))) return false;
return true;
}



Načítá se…
Zrušit
Uložit