import "code.pfad.fr/rvcodns"
package rvcodns provides a Go client for Release Version Check over DNS (RVCoDNS).
// SPDX-FileCopyrightText: 2023 Olivier Charvin <git@olivier.pfad.fr> // SPDX-License-Identifier: CC0-1.0 package main import ( "fmt" "code.pfad.fr/rvcodns" ) var domain = "example.rvcodns.pfad.fr" func main() { releases, err := rvcodns.LookupRelease(domain) if err != nil { panic(err) // network or parsing error (to handle) } for _, r := range releases { fmt.Println(r.Version) // compare with own version (to inform the user about available updates) } }
Output:
1.2.3
var DefaultResolver = Resolver{net.DefaultResolver.LookupTXT}
DefaultResolver is the resolver used by the package-level LookupRelease function.
func DKIMQuotedPrintableEncode(str string) string
DKIMQuotedPrintableEncode encodes a strings as a DKIM-Quoted-Printable string.
See Value.String for decoding.
type Release struct { Version string // decoded version string AllTags []Tag // raw tags in the order they appeared }
Release represents a release record
func LookupRelease(domain string) ([]Release, error)
LookupRelease looks up and parses supported releases by DNS-querying _release.{domain}
LookupRelease uses context.Background internally; to specify the context, use Resolver.LookupRelease.
func Parse(record string) (Release, error)
Parse parses a DNS records into a Release
type Resolver struct { LookupTXT func(ctx context.Context, name string) ([]string, error) }
Resolver allows to specify the LookupTXT function to use (usually net.DefaultResolver.LookupTXT)
func (r Resolver) LookupRelease(ctx context.Context, domain string) ([]Release, error)
LookupRelease looks up and parses supported releases by querying the DNS TXT "_release.{domain}" records.
type Tag struct { Key string Value Value }
Tag represents a key-value tag pair of the DNS record
type Value string
Value represents a raw DNS value. Use String() to get the decoded value.
func (v Value) String() string
String parses the value as a DKIM-Quoted-Printable string. It removes whitespaces and decodes hex-octets "=XX".
See DKIMQuotedPrintableEncode for encoding.
encoding.go parse.go rvcodns.go
Path | Synopsis |
---|---|
cmd/dkim-encode-pairs | dkim-encode-pairs endodes key-value pairs for usage in [Release Version Check over DNS (RVCoDNS)]. |
cmd/get-releases | get-releases retrieves and prints out the currently supported releases using [Release Version Check over DNS (RVCoDNS)]. |
https://codeberg.org/pfad.fr/rvcodns
git clone
https://codeberg.org/pfad.fr/rvcodns.git git@codeberg.org:pfad.fr/rvcodns.git