Skip to content

Commit 2dc536a

Browse files
authoredNov 25, 2021
🤖 Merge PR DefinitelyTyped#57357 fix(dns2): support for CNAME responses by @rschick
1 parent d24edca commit 2dc536a

File tree

2 files changed

+37
-35
lines changed

2 files changed

+37
-35
lines changed
 

‎types/dns2/dns2-tests.ts

+33-23
Original file line numberDiff line numberDiff line change
@@ -6,45 +6,55 @@ import DNS = require('dns2');
66
const dns = new DNS();
77

88
(async () => {
9-
const result = await dns.resolveA('google.com');
10-
console.log(result.answers);
9+
const result = await dns.resolveA('google.com');
10+
console.log(result.answers);
11+
12+
const result2 = await dns.resolveCNAME('google.com');
13+
console.log(result2.answers.filter(answer => answer.domain));
1114
})();
1215

1316
const { Packet } = DNS;
1417

1518
const server = DNS.createServer({
16-
udp: true,
17-
handle: (request, send, rinfo) => {
18-
const response = Packet.createResponseFromRequest(request);
19-
const [ question ] = request.questions;
20-
const { name } = question;
21-
response.answers.push({
22-
name,
23-
type: Packet.TYPE.A,
24-
class: Packet.CLASS.IN,
25-
ttl: 300,
26-
address: '8.8.8.8'
27-
});
28-
send(response);
29-
}
19+
udp: true,
20+
handle: (request, send, rinfo) => {
21+
const response = Packet.createResponseFromRequest(request);
22+
const [question] = request.questions;
23+
const { name } = question;
24+
response.answers.push({
25+
name,
26+
type: Packet.TYPE.A,
27+
class: Packet.CLASS.IN,
28+
ttl: 300,
29+
address: '8.8.8.8',
30+
});
31+
response.answers.push({
32+
name,
33+
type: Packet.TYPE.CNAME,
34+
class: Packet.CLASS.IN,
35+
ttl: 300,
36+
domain: 'another-name.example.com',
37+
});
38+
send(response);
39+
},
3040
});
3141

3242
server.on('request', (request, response, rinfo) => {
33-
console.log(request.header.id, request.questions[0]);
43+
console.log(request.header.id, request.questions[0]);
3444
});
3545

3646
server.listen({ udp: 5333 });
3747

3848
const udpServer = new DNS.UDPServer((request, send, rinfo) => {
39-
const response = Packet.createResponseFromRequest(request);
40-
send(response);
49+
const response = Packet.createResponseFromRequest(request);
50+
send(response);
4151
});
4252

43-
udpServer.listen(5353, "127.0.0.1");
53+
udpServer.listen(5353, '127.0.0.1');
4454

4555
const tcpServer = DNS.createTCPServer((request, send, rinfo) => {
46-
const response = Packet.createResponseFromRequest(request);
47-
send(response);
56+
const response = Packet.createResponseFromRequest(request);
57+
send(response);
4858
});
4959

50-
tcpServer.listen(5454, "127.0.0.1");
60+
tcpServer.listen(5454, '127.0.0.1');

‎types/dns2/index.d.ts

+4-12
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ declare namespace DNS {
7070
type: number;
7171
class: number;
7272
ttl: number;
73-
address: string;
73+
address?: string;
74+
domain?: string;
7475
}
7576

7677
type DnsHandler = (
@@ -87,11 +88,7 @@ declare class DnsServer extends EventEmitter {
8788
doh?: net.AddressInfo;
8889
};
8990

90-
listen(ports: {
91-
udp?: number,
92-
tcp?: number,
93-
doh?: number
94-
}): Promise<void>;
91+
listen(ports: { udp?: number; tcp?: number; doh?: number }): Promise<void>;
9592

9693
close(): Promise<void>;
9794
}
@@ -106,12 +103,7 @@ declare class TcpDnsServer extends net.Server {
106103
}
107104

108105
declare class DNS {
109-
static createServer(options: {
110-
udp?: boolean,
111-
tcp?: boolean,
112-
doh?: boolean,
113-
handle: DNS.DnsHandler
114-
}): DnsServer;
106+
static createServer(options: { udp?: boolean; tcp?: boolean; doh?: boolean; handle: DNS.DnsHandler }): DnsServer;
115107

116108
static Packet: typeof Packet;
117109

0 commit comments

Comments
 (0)
Please sign in to comment.