Improved log message
This commit is contained in:
parent
ef42d8aa6c
commit
196846e8e4
3 changed files with 22 additions and 19 deletions
|
|
@ -116,7 +116,7 @@ public class MulticastDnsServer extends ThreadedUDPNetwork implements ThreadedUD
|
||||||
|
|
||||||
// Just handle queries and no responses
|
// Just handle queries and no responses
|
||||||
if ( ! dnsPacket.getHeader().flagQueryResponse) {
|
if ( ! dnsPacket.getHeader().flagQueryResponse) {
|
||||||
DnsPacket response = handleReceivedPacket(dnsPacket);
|
DnsPacket response = handleReceivedPacket(packet.getAddress(), dnsPacket);
|
||||||
if (response != null){
|
if (response != null){
|
||||||
ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
|
ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
|
||||||
BinaryStructOutputStream out = new BinaryStructOutputStream(outBuffer);
|
BinaryStructOutputStream out = new BinaryStructOutputStream(outBuffer);
|
||||||
|
|
@ -135,45 +135,48 @@ public class MulticastDnsServer extends ThreadedUDPNetwork implements ThreadedUD
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected DnsPacket handleReceivedPacket(DnsPacket request){
|
protected DnsPacket handleReceivedPacket(InetAddress address, DnsPacket request){
|
||||||
DnsPacket response = new DnsPacket();
|
DnsPacket response = new DnsPacket();
|
||||||
response.getHeader().setDefaultResponseData();
|
response.getHeader().setDefaultResponseData();
|
||||||
for (DnsPacketQuestion question : request.getQuestions()){
|
for (DnsPacketQuestion question : request.getQuestions()){
|
||||||
if (question.name == null) continue;
|
if (question.name == null) continue;
|
||||||
|
|
||||||
switch (question.type){
|
switch (question.type){
|
||||||
|
// ------------------------------------------
|
||||||
// Normal Domain Name Resolution
|
// Normal Domain Name Resolution
|
||||||
|
// ------------------------------------------
|
||||||
|
|
||||||
case DnsConstants.TYPE.A:
|
case DnsConstants.TYPE.A:
|
||||||
if (entries.containsKey(question.name)){
|
if (entries.containsKey(question.name)){
|
||||||
logger.finer("Received request for domain: " + question.name);
|
logger.finer("Received request for domain: '" + question.name + "' from source: " + address);
|
||||||
response.addAnswerRecord(entries.get(question.name));
|
response.addAnswerRecord(entries.get(question.name));
|
||||||
} else {
|
} else {
|
||||||
logger.finest("Received request for unknown domain: " + question.name);
|
logger.finest("Received request for unknown domain: '" + question.name + "' from source: " + address);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Service Name Resolution
|
// ------------------------------------------
|
||||||
|
// Service Name Resolution (Reverse DNS)
|
||||||
|
// ------------------------------------------
|
||||||
|
|
||||||
case DnsConstants.TYPE.PTR:
|
case DnsConstants.TYPE.PTR:
|
||||||
if (question.name.startsWith("_service.")){
|
if (question.name.startsWith("_service.")){
|
||||||
String postFix = question.name.substring(9);
|
String postFix = question.name.substring(9);
|
||||||
for (String domain : entries.keySet()){
|
for (String domain : entries.keySet()){
|
||||||
if (domain.endsWith(postFix)) {
|
if (domain.endsWith(postFix)) {
|
||||||
logger.finer("Received request for service: " + question.name);
|
logger.finer("Received request for service: '" + question.name + "' from source: " + address);
|
||||||
response.addAnswerRecord(entries.get(domain));
|
response.addAnswerRecord(entries.get(domain));
|
||||||
} else {
|
} else {
|
||||||
logger.finest("Received request for unknown service: " + question.name);
|
logger.finest("Received request for unknown service: '" + question.name + "' from source: " + address);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (entries.containsKey(question.name)){
|
} else if (entries.containsKey(question.name)){
|
||||||
logger.finer("Received request for service: " + question.name);
|
logger.finer("Received request for service: '" + question.name + "' from source: " + address);
|
||||||
response.addAnswerRecord(entries.get(question.name));
|
response.addAnswerRecord(entries.get(question.name));
|
||||||
} else {
|
} else {
|
||||||
logger.finer("Received request for unknown pointer: " + question.name);
|
logger.finer("Received request for unknown pointer: '" + question.name + "' from source: " + address);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
|
||||||
logger.finest("Unknown request type: " + question.type);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ public final class DnsConstants {
|
||||||
public static final int NULL = 10;
|
public static final int NULL = 10;
|
||||||
/** a well known service description */
|
/** a well known service description */
|
||||||
public static final int WKS = 11;
|
public static final int WKS = 11;
|
||||||
/** a domain name pointer */
|
/** a domain name pointer, generally used for reverse DNS */
|
||||||
public static final int PTR = 12;
|
public static final int PTR = 12;
|
||||||
/** host information */
|
/** host information */
|
||||||
public static final int HINFO = 13;
|
public static final int HINFO = 13;
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,12 @@ public class MulticastDnsServerTest {
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void domainLookupNoEntries(){
|
public void domainLookupNoEntries() throws UnknownHostException {
|
||||||
DnsPacket request = creatRequestDnsPacket(
|
DnsPacket request = creatRequestDnsPacket(
|
||||||
"example.com",
|
"example.com",
|
||||||
DnsConstants.TYPE.A);
|
DnsConstants.TYPE.A);
|
||||||
|
|
||||||
DnsPacket response = server.handleReceivedPacket(request);
|
DnsPacket response = server.handleReceivedPacket(InetAddress.getLocalHost(), request);
|
||||||
assertNull(response);
|
assertNull(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -38,19 +38,19 @@ public class MulticastDnsServerTest {
|
||||||
DnsConstants.TYPE.A);
|
DnsConstants.TYPE.A);
|
||||||
|
|
||||||
server.addEntry("example.com", InetAddress.getLocalHost());
|
server.addEntry("example.com", InetAddress.getLocalHost());
|
||||||
DnsPacket response = server.handleReceivedPacket(request);
|
DnsPacket response = server.handleReceivedPacket(InetAddress.getLocalHost(), request);
|
||||||
assertNotNull(response);
|
assertNotNull(response);
|
||||||
assertEquals("example.com", response.getAnswerRecords().get(0).name);
|
assertEquals("example.com", response.getAnswerRecords().get(0).name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void serviceDiscoveryNoEntries(){
|
public void serviceDiscoveryNoEntries() throws UnknownHostException {
|
||||||
DnsPacket request = creatRequestDnsPacket(
|
DnsPacket request = creatRequestDnsPacket(
|
||||||
"_service._tcp.local",
|
"_service._tcp.local",
|
||||||
DnsConstants.TYPE.PTR);
|
DnsConstants.TYPE.PTR);
|
||||||
|
|
||||||
DnsPacket response = server.handleReceivedPacket(request);
|
DnsPacket response = server.handleReceivedPacket(InetAddress.getLocalHost(), request);
|
||||||
assertNull(response);
|
assertNull(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -62,7 +62,7 @@ public class MulticastDnsServerTest {
|
||||||
DnsConstants.TYPE.PTR);
|
DnsConstants.TYPE.PTR);
|
||||||
|
|
||||||
server.addEntry("_http._tcp.local", InetAddress.getLocalHost());
|
server.addEntry("_http._tcp.local", InetAddress.getLocalHost());
|
||||||
DnsPacket response = server.handleReceivedPacket(request);
|
DnsPacket response = server.handleReceivedPacket(InetAddress.getLocalHost(), request);
|
||||||
assertNotNull(response);
|
assertNotNull(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue