-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathresolver.js
More file actions
27 lines (23 loc) · 839 Bytes
/
resolver.js
File metadata and controls
27 lines (23 loc) · 839 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
export default class Resolver {
constructor(doh_server) {
this.doh_server = doh_server
}
lookup(type, name, callback) {
const req = new XMLHttpRequest();
req.open("GET", this.doh_server+"?name="+encodeURIComponent(name)+"&type="+encodeURIComponent(type),true);
req.setRequestHeader('accept', 'application/dns-json')
req.addEventListener('load', function (event) {
try {
var results = JSON.parse(req.responseText)
} catch (error) {
callback(null, error) // TODO: this might work better as 'Promises'
return
}
callback(results, null)
})
req.addEventListener('error',function (event) {
callback(null, new Error('DNS Error'))
})
req.send()
}
}