diff options
| author | Shulhan <ms@kilabit.info> | 2022-05-22 21:51:15 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-05-22 21:53:46 +0700 |
| commit | e62bf6a1a77f87487ad1fbeae5f30730d441cda4 (patch) | |
| tree | 80da12ca42df2325d3faa49e2531454fa12091f4 /cmd | |
| parent | 3a38245a6a418b2ddbe4dfcd916ab83708b6f500 (diff) | |
| download | rescached-e62bf6a1a77f87487ad1fbeae5f30730d441cda4.tar.xz | |
cmd/resolver: implement command to list hosts in block.d
Given the following command
$ resolver block.d
It will print all hosts in block.d in the JSON format, for example
{
"pgl.yoyo.org": {
"Name": "pgl.yoyo.org",
"URL": "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts\u0026showintro=0\u0026startdate[day]=\u0026startdate[month]=\u0026startdate[year]=\u0026mimetype=plaintext",
"LastUpdated": "2022-04-20 01:54:30 WIB",
"IsEnabled": false
},
"someonewhocares.org": {
"Name": "someonewhocares.org",
"URL": "http://someonewhocares.org/hosts/hosts",
"LastUpdated": "2022-04-20 00:53:22 WIB",
"IsEnabled": false
},
"winhelp2002.mvps.org": {
"Name": "winhelp2002.mvps.org",
"URL": "http://winhelp2002.mvps.org/hosts.txt",
"LastUpdated": "2022-04-20 01:35:38 WIB",
"IsEnabled": false
}
}
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/resolver/doc.go | 1 | ||||
| -rw-r--r-- | cmd/resolver/resolver.go | 30 |
2 files changed, 22 insertions, 9 deletions
diff --git a/cmd/resolver/doc.go b/cmd/resolver/doc.go index d24b331..03222c0 100644 --- a/cmd/resolver/doc.go +++ b/cmd/resolver/doc.go @@ -67,6 +67,7 @@ Query the DNS server, Managing block.d files, + block.d # List all hosts in block.d. block.d disable <name> block.d enable <name> block.d update <name> diff --git a/cmd/resolver/resolver.go b/cmd/resolver/resolver.go index b22bee1..977b391 100644 --- a/cmd/resolver/resolver.go +++ b/cmd/resolver/resolver.go @@ -47,22 +47,34 @@ type resolver struct { } func (rsol *resolver) doCmdBlockd(args []string) { - if len(args) == 0 { - log.Fatalf("resolver: %s: missing sub command", rsol.cmd) - } - var ( resc = rsol.newRescachedClient() - hb interface{} - hbjson []byte - subCmd string - err error + hostBlockd map[string]*rescached.Blockd + hb interface{} + hbjson []byte + subCmd string + err error ) - subCmd = strings.ToLower(args[0]) + if len(args) > 0 { + subCmd = strings.ToLower(args[0]) + } switch subCmd { + case "": + hostBlockd, err = resc.Blockd() + if err != nil { + log.Fatalf("resolver: %s: %s", rsol.cmd, err) + } + + hbjson, err = json.MarshalIndent(hostBlockd, "", " ") + if err != nil { + log.Fatalf("resolver: %s: %s", rsol.cmd, err) + } + + fmt.Println(string(hbjson)) + case subCmdDisable: args = args[1:] if len(args) == 0 { |
