diff --git a/src/zutil/net/dns/MulticastDNSClient.java b/src/zutil/net/dns/MulticastDNSClient.java index a14e8df..d9b09c6 100755 --- a/src/zutil/net/dns/MulticastDNSClient.java +++ b/src/zutil/net/dns/MulticastDNSClient.java @@ -64,6 +64,7 @@ public class MulticastDNSClient extends ThreadedUDPNetwork implements ThreadedUD BinaryStructOutputStream out = new BinaryStructOutputStream(buffer); DNSPacket dnsPacket = new DNSPacket(); + dnsPacket.getHeader().id = (int)(Math.random() * 0xFFFF); dnsPacket.getHeader().setDefaultQueryData(); dnsPacket.addQuestion(new DNSPacketQuestion( service, diff --git a/test/zutil/net/dns/DNSPacketTest.java b/test/zutil/net/dns/DNSPacketTest.java index 32ea129..afc6b72 100755 --- a/test/zutil/net/dns/DNSPacketTest.java +++ b/test/zutil/net/dns/DNSPacketTest.java @@ -205,7 +205,27 @@ Domain Name System (query) Type: A (Host address) Class: IN (0x0001) */ -// TODO + DNSPacket packet = new DNSPacket(); + DNSPacketHeader header = packet.getHeader(); + header.id = 0x241a; + header.flagRecursionDesired = true; + header.countQuestion = 1; + + DNSPacketQuestion question = new DNSPacketQuestion(); + question.qName = "www.google.com"; + question.qType = QTYPE_A; + question.qClass = QCLASS_IN; + packet.addQuestion(question); + + ByteArrayOutputStream buff = new ByteArrayOutputStream(); + BinaryStructOutputStream out = new BinaryStructOutputStream(buff); + packet.write(out); + byte[] data = buff.toByteArray(); + assertEquals(( + "241a 01 00 00 01 00 00 00 00 00 00 " + + "03 77 77 77 06 67 6f 6f 67 6c 65 03 63 6f 6d 00 0001 0001" + ).replace(" ",""), + Converter.toHexString(data)); } @Test diff --git a/test/zutil/net/dns/MulticastDNSClientTest.java b/test/zutil/net/dns/MulticastDNSClientTest.java index d9ca5c5..ae17e8c 100755 --- a/test/zutil/net/dns/MulticastDNSClientTest.java +++ b/test/zutil/net/dns/MulticastDNSClientTest.java @@ -13,6 +13,7 @@ public class MulticastDNSClientTest { MulticastDNSClient mdns = new MulticastDNSClient(); mdns.start(); //mdns.sendProbe("appletv.local"); - mdns.sendProbe("_services._dns-sd._udp.local"); + //mdns.sendProbe("_services._dns-sd._udp.local"); + mdns.sendProbe("_googlecast._tcp.local"); } }