001/* 002 * Copyright 2015-2018 the original author or authors 003 * 004 * This software is licensed under the Apache License, Version 2.0, 005 * the GNU Lesser General Public License version 2 or later ("LGPL") 006 * and the WTFPL. 007 * You may choose either license to govern your use of this software only 008 * upon the condition that you accept all of the terms of either 009 * the Apache License 2.0, the LGPL 2.1+ or the WTFPL. 010 */ 011package org.minidns.minidnsrepl; 012 013import java.io.IOException; 014import java.lang.reflect.Field; 015 016import org.minidns.AbstractDnsClient; 017import org.minidns.DnsClient; 018import org.minidns.cache.LruCache; 019import org.minidns.dnssec.DnssecClient; 020import org.minidns.hla.DnssecResolverApi; 021import org.minidns.hla.ResolverResult; 022import org.minidns.iterative.IterativeDnsClient; 023import org.minidns.jul.MiniDnsJul; 024import org.minidns.record.A; 025 026public class MiniDnsRepl { 027 028 public static final DnsClient DNSCLIENT = new DnsClient(); 029 public static final IterativeDnsClient ITERATIVEDNSCLIENT = new IterativeDnsClient(); 030 public static final DnssecClient DNSSECCLIENT = new DnssecClient(); 031 032 static { 033 LruCache cache = null; 034 try { 035 Field defaultCacheField = AbstractDnsClient.class.getDeclaredField("DEFAULT_CACHE"); 036 defaultCacheField.setAccessible(true); 037 cache = (LruCache) defaultCacheField.get(null); 038 } catch (IllegalAccessException | NoSuchFieldException | SecurityException e) { 039 throw new IllegalStateException(e); 040 } 041 DEFAULT_CACHE = cache; 042 } 043 044 public static final LruCache DEFAULT_CACHE; 045 046 public static void init() { 047 // CHECKSTYLE:OFF 048 System.out.println("MiniDNS REPL"); 049 // CHECKSTYLE:ON 050 } 051 052 public static void clearCache() throws SecurityException, IllegalArgumentException { 053 DEFAULT_CACHE.clear(); 054 } 055 056 public static void main(String[] args) throws IOException, SecurityException, IllegalArgumentException { 057 MiniDnsJul.enableMiniDnsTrace(); 058 059 ResolverResult<A> res = DnssecResolverApi.INSTANCE.resolveDnssecReliable("verteiltesysteme.net", A.class); 060 /* 061 DnssecStats.iterativeDnssecLookupNormalVsExtendedCache(); 062 DnssecClient client = new DNSSECClient(new LRUCache(1024)); 063 DnssecMessage secRes = client.queryDnssec("verteiltesysteme.net", TYPE.A); 064 */ 065 066 /* 067 DnssecStats.iterativeDnssecLookupNormalVsExtendedCache(); 068 Nsid nsid = NSIDTest.testNsidLRoot(); 069 DnsMessage res = RECURSIVEDNSCLIENT.query("mate.geekplace.eu", TYPE.A); 070 */ 071 // CHECKSTYLE:OFF 072 System.out.println(res); 073// System.out.println(nsid); 074// System.out.println(secRes); 075// System.out.println(res); 076 // CHCECKSTYLE:ON 077 } 078 079}