summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addr.go16
-rw-r--r--dns.go7
-rw-r--r--main.go31
-rw-r--r--netlink.go6
-rw-r--r--update.go36
5 files changed, 48 insertions, 48 deletions
diff --git a/addr.go b/addr.go
index c99a94c..6b90c4a 100644
--- a/addr.go
+++ b/addr.go
@@ -1,19 +1,19 @@
package main
import (
- "net"
- "github.com/vishvananda/netlink"
"fmt"
- "log"
+ "github.com/vishvananda/netlink"
"io"
+ "log"
+ "net"
)
type AddrSet struct {
- linkAttrs netlink.LinkAttrs
- linkChan chan netlink.LinkUpdate
- addrChan chan netlink.AddrUpdate
+ linkAttrs netlink.LinkAttrs
+ linkChan chan netlink.LinkUpdate
+ addrChan chan netlink.AddrUpdate
- addrs map[string]net.IP
+ addrs map[string]net.IP
}
func (addrs *AddrSet) String() string {
@@ -21,7 +21,7 @@ func (addrs *AddrSet) String() string {
}
func (addrs *AddrSet) testFlag(flag net.Flags) bool {
- return addrs.linkAttrs.Flags & flag != 0
+ return addrs.linkAttrs.Flags&flag != 0
}
func (addrs *AddrSet) Up() bool {
diff --git a/dns.go b/dns.go
index ff3a109..e4128c5 100644
--- a/dns.go
+++ b/dns.go
@@ -1,18 +1,19 @@
package main
import (
- "github.com/miekg/dns"
"fmt"
- "time"
+ "github.com/miekg/dns"
"log"
"net"
+ "time"
)
const TSIG_FUDGE_SECONDS = 300
+
type TSIGAlgorithm string
func (t *TSIGAlgorithm) UnmarshalFlag(value string) error {
- switch (value) {
+ switch value {
case "hmac-md5", "md5":
*t = dns.HmacMD5
case "hmac-sha1", "sha1":
diff --git a/main.go b/main.go
index 6cc5b0c..a6c2733 100644
--- a/main.go
+++ b/main.go
@@ -8,24 +8,25 @@ import (
)
type Options struct {
- Verbose bool `long:"verbose" short:"v"`
- Watch bool `long:"watch" description:"Watch for interface changes"`
+ Verbose bool `long:"verbose" short:"v"`
+ Watch bool `long:"watch" description:"Watch for interface changes"`
- Interface string `long:"interface" short:"i" value-name:"IFACE" description:"Use address from interface"`
- InterfaceFamily Family `long:"interface-family" value-name:"ipv4|ipv6|all" description:"Limit to interface addreses of given family"`
+ // Netlink Interface
+ Interface string `long:"interface" short:"i" value-name:"IFACE" description:"Use address from interface"`
+ InterfaceFamily Family `long:"interface-family" value-name:"ipv4|ipv6|all" description:"Limit to interface addreses of given family"`
- Server string `long:"server" value-name:"HOST[:PORT]" description:"Server for UPDATE query, default is discovered from zone SOA"`
- Timeout time.Duration `long:"timeout" value-name:"DURATION" default:"10s" description:"Timeout for sever queries"`
- Retry time.Duration `long:"retry" value-name:"DURATION" default:"30s" description:"Retry interval, increased for each retry attempt"`
- TSIGName string `long:"tsig-name" value-name:"FQDN"`
- TSIGSecret string `long:"tsig-secret" value-name:"BASE-64" env:"TSIG_SECRET" description:"base64-encoded shared TSIG secret key"`
+ // DNS Update
+ Server string `long:"server" value-name:"HOST[:PORT]" description:"Server for UPDATE query, default is discovered from zone SOA"`
+ Timeout time.Duration `long:"timeout" value-name:"DURATION" default:"10s" description:"Timeout for sever queries"`
+ Retry time.Duration `long:"retry" value-name:"DURATION" default:"30s" description:"Retry interval, increased for each retry attempt"`
+ TSIGName string `long:"tsig-name" value-name:"FQDN"`
+ TSIGSecret string `long:"tsig-secret" value-name:"BASE-64" env:"TSIG_SECRET" description:"base64-encoded shared TSIG secret key"`
TSIGAlgorithm TSIGAlgorithm `long:"tsig-algorithm" value-name:"hmac-{md5,sha1,sha256,sha512}" default:"hmac-sha1."`
+ Zone string `long:"zone" value-name:"FQDN" description:"Zone to update, default is derived from name"`
+ TTL time.Duration `long:"ttl" value-name:"DURATION" default:"60s" description:"TTL for updated records"`
- Zone string `long:"zone" value-name:"FQDN" description:"Zone to update, default is derived from name"`
- TTL time.Duration `long:"ttl" value-name:"DURATION" default:"60s" description:"TTL for updated records"`
-
- Args struct {
- Name string `value-name:"FQDN" description:"DNS Name to update"`
+ Args struct {
+ Name string `value-name:"FQDN" description:"DNS Name to update"`
} `positional-args:"yes"`
}
@@ -38,7 +39,7 @@ func main() {
}
var update = Update{
- ttl: int(options.TTL.Seconds()),
+ ttl: int(options.TTL.Seconds()),
timeout: options.Timeout,
retry: options.Retry,
verbose: options.Verbose,
diff --git a/netlink.go b/netlink.go
index 028c9df..ed33e89 100644
--- a/netlink.go
+++ b/netlink.go
@@ -1,15 +1,15 @@
package main
import (
- "github.com/vishvananda/netlink"
"fmt"
+ "github.com/vishvananda/netlink"
)
// zero value is unspec=all
type Family int
func (f *Family) UnmarshalFlag(value string) error {
- switch (value) {
+ switch value {
case "unspec", "all":
*f = netlink.FAMILY_ALL
case "inet", "ipv4":
@@ -22,5 +22,3 @@ func (f *Family) UnmarshalFlag(value string) error {
return nil
}
-
-
diff --git a/update.go b/update.go
index e9750a7..2e37108 100644
--- a/update.go
+++ b/update.go
@@ -1,31 +1,31 @@
package main
import (
- "github.com/miekg/dns"
- "time"
"fmt"
- "net"
+ "github.com/miekg/dns"
"log"
+ "net"
+ "time"
)
type updateState struct {
- updateZone string
- removeNames []dns.RR
- inserts []dns.RR
+ updateZone string
+ removeNames []dns.RR
+ inserts []dns.RR
}
type Update struct {
- ttl int
- timeout time.Duration
- retry time.Duration
- verbose bool
+ ttl int
+ timeout time.Duration
+ retry time.Duration
+ verbose bool
- zone string
- name string
+ zone string
+ name string
- tsig map[string]string
+ tsig map[string]string
tsigAlgo TSIGAlgorithm
- server string
+ server string
updateChan chan updateState
doneChan chan error
@@ -77,7 +77,7 @@ func (u *Update) buildAddr(ip net.IP) dns.RR {
if ip4 := ip.To4(); ip4 != nil {
return &dns.A{
Hdr: dns.RR_Header{Name: u.name, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: uint32(u.ttl)},
- A: ip4,
+ A: ip4,
}
}
@@ -93,10 +93,10 @@ func (u *Update) buildAddr(ip net.IP) dns.RR {
func (u *Update) buildState(addrs *AddrSet) (state updateState, err error) {
state.updateZone = u.zone
state.removeNames = []dns.RR{
- &dns.RR_Header{Name:u.name},
+ &dns.RR_Header{Name: u.name},
}
- addrs.Each(func(ip net.IP){
+ addrs.Each(func(ip net.IP) {
state.inserts = append(state.inserts, u.buildAddr(ip))
})
@@ -173,7 +173,7 @@ func (u *Update) run() {
var updateChan = u.updateChan
var updateError error
- defer func(){u.doneChan <-updateError}()
+ defer func() { u.doneChan <- updateError }()
for {
select {