diff --git a/database/graphite/database.go b/database/graphite/database.go index c567c62e..396bd72b 100644 --- a/database/graphite/database.go +++ b/database/graphite/database.go @@ -35,9 +35,7 @@ func (c Config) Prefix() string { } func Connect(configuration map[string]interface{}) (database.Connection, error) { - var config Config - - config = configuration + config := Config(configuration) con := &Connection{ client: graphigo.Client{ diff --git a/database/graphite/utils.go b/database/graphite/utils.go index 7e678ca6..72d65caf 100644 --- a/database/graphite/utils.go +++ b/database/graphite/utils.go @@ -4,7 +4,7 @@ import ( "regexp" ) -var reInvalidChars = regexp.MustCompile("(?i)[^a-z0-9\\-]") +var reInvalidChars = regexp.MustCompile(`(?i)[^a-z0-9\\-]`) func replaceInvalidChars(name string) string { return reInvalidChars.ReplaceAllString(name, "_") diff --git a/database/influxdb/database.go b/database/influxdb/database.go index 3feb1533..25cb132a 100644 --- a/database/influxdb/database.go +++ b/database/influxdb/database.go @@ -6,7 +6,7 @@ import ( "github.com/bdlm/log" "github.com/influxdata/influxdb1-client/models" - "github.com/influxdata/influxdb1-client/v2" + client "github.com/influxdata/influxdb1-client/v2" "github.com/FreifunkBremen/yanic/database" ) @@ -62,8 +62,7 @@ func init() { database.RegisterAdapter("influxdb", Connect) } func Connect(configuration map[string]interface{}) (database.Connection, error) { - var config Config - config = configuration + config := Config(configuration) // Make client c, err := client.NewHTTPClient(client.HTTPConfig{ diff --git a/database/influxdb/node.go b/database/influxdb/node.go index 73e3dee9..06572636 100644 --- a/database/influxdb/node.go +++ b/database/influxdb/node.go @@ -2,6 +2,7 @@ package influxdb import ( "fmt" + "log" "strconv" "time" @@ -15,7 +16,9 @@ import ( func (conn *Connection) PruneNodes(deleteAfter time.Duration) { for _, measurement := range []string{MeasurementNode, MeasurementLink} { query := fmt.Sprintf("delete from %s where time < now() - %ds", measurement, deleteAfter/time.Second) - conn.client.Query(client.NewQuery(query, conn.config.Database(), "m")) + if _, err := conn.client.Query(client.NewQuery(query, conn.config.Database(), "m")); err != nil { + log.Println(err) + } } } @@ -197,6 +200,4 @@ func (conn *Connection) InsertNode(node *runtime.Node) { conn.addPoint(MeasurementDHCP, tags, fields, time) } - - return } diff --git a/database/logging/file.go b/database/logging/file.go index c9745b0f..31167d9d 100644 --- a/database/logging/file.go +++ b/database/logging/file.go @@ -7,6 +7,7 @@ package logging */ import ( "fmt" + "log" "os" "time" @@ -31,8 +32,7 @@ func init() { } func Connect(configuration map[string]interface{}) (database.Connection, error) { - var config Config - config = configuration + config := Config(configuration) file, err := os.OpenFile(config.Path(), os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600) if err != nil { @@ -63,6 +63,8 @@ func (conn *Connection) Close() { } func (conn *Connection) log(v ...interface{}) { - fmt.Println(v...) - conn.file.WriteString(fmt.Sprintln("[", time.Now().String(), "]", v)) + _, err := fmt.Fprintf(conn.file, "[%s] %v", time.Now().String(), v) + if err != nil { + log.Println(err) + } } diff --git a/database/respondd/main.go b/database/respondd/main.go index 1f38c2c0..f47ab7ab 100644 --- a/database/respondd/main.go +++ b/database/respondd/main.go @@ -38,8 +38,7 @@ func init() { } func Connect(configuration map[string]interface{}) (database.Connection, error) { - var config Config - config = configuration + config := Config(configuration) conn, err := net.Dial(config.Type(), config.Address()) if err != nil { diff --git a/output/filter/blocklist/blocklist_test.go b/output/filter/blocklist/blocklist_test.go index 89b5d386..f2253f05 100644 --- a/output/filter/blocklist/blocklist_test.go +++ b/output/filter/blocklist/blocklist_test.go @@ -14,9 +14,11 @@ func TestFilterBlocklist(t *testing.T) { // invalid config filter, err := build(3) assert.Error(err) + assert.Nil(filter) filter, err = build([]interface{}{2, "a"}) assert.Error(err) + assert.Nil(filter) // tests with empty list filter, err = build([]interface{}{}) diff --git a/output/filter/domainappendsite/domainappendsite_test.go b/output/filter/domainappendsite/domainappendsite_test.go index c99e8f7e..3cadbe2b 100644 --- a/output/filter/domainappendsite/domainappendsite_test.go +++ b/output/filter/domainappendsite/domainappendsite_test.go @@ -12,11 +12,12 @@ func TestFilter(t *testing.T) { assert := assert.New(t) // invalid config - filter, err := build("nope") + _, err := build("nope") assert.Error(err) // delete owner by configuration - filter, _ = build(true) + filter, err := build(true) + assert.NoError(err) n := filter.Apply(&runtime.Node{Nodeinfo: &data.Nodeinfo{ System: data.System{ SiteCode: "ffhb", diff --git a/output/filter/domainassite/domainassite_test.go b/output/filter/domainassite/domainassite_test.go index c17e8bf8..fe5a9039 100644 --- a/output/filter/domainassite/domainassite_test.go +++ b/output/filter/domainassite/domainassite_test.go @@ -12,11 +12,12 @@ func TestFilter(t *testing.T) { assert := assert.New(t) // invalid config - filter, err := build("nope") + _, err := build("nope") assert.Error(err) // delete owner by configuration - filter, _ = build(true) + filter, err := build(true) + assert.NoError(err) n := filter.Apply(&runtime.Node{Nodeinfo: &data.Nodeinfo{ System: data.System{ SiteCode: "ffhb", diff --git a/output/filter/filter.go b/output/filter/filter.go index c83ec7c4..f18385e3 100644 --- a/output/filter/filter.go +++ b/output/filter/filter.go @@ -38,7 +38,7 @@ func New(configs map[string]interface{}) (set Set, errs []error) { return } - f, _ := filters[name] + f := filters[name] if f == nil { errs = append(errs, fmt.Errorf("unknown filter: %s", name)) } else if filter, err := f(config); err != nil { diff --git a/output/filter/haslocation/haslocation_test.go b/output/filter/haslocation/haslocation_test.go index 2f37b280..3770c073 100644 --- a/output/filter/haslocation/haslocation_test.go +++ b/output/filter/haslocation/haslocation_test.go @@ -12,11 +12,11 @@ func TestFilterHasLocation(t *testing.T) { assert := assert.New(t) // invalid config - filter, err := build(3) + _, err := build(3) assert.Error(err) // test to drop nodes without location - filter, err = build(true) + filter, err := build(true) assert.NoError(err) // node has location (with 0,0) -> keep it diff --git a/output/filter/noowner/noowner_test.go b/output/filter/noowner/noowner_test.go index 73a1f5f9..b5efc86a 100644 --- a/output/filter/noowner/noowner_test.go +++ b/output/filter/noowner/noowner_test.go @@ -12,11 +12,12 @@ func TestFilter(t *testing.T) { assert := assert.New(t) // invalid config - filter, err := build("nope") + _, err := build("nope") assert.Error(err) // delete owner by configuration - filter, _ = build(true) + filter, err := build(true) + assert.NoError(err) n := filter.Apply(&runtime.Node{Nodeinfo: &data.Nodeinfo{ Owner: &data.Owner{ Contact: "blub", diff --git a/output/filter/site/site_test.go b/output/filter/site/site_test.go index 51344ef1..903a2b85 100644 --- a/output/filter/site/site_test.go +++ b/output/filter/site/site_test.go @@ -12,13 +12,13 @@ func TestFilterSite(t *testing.T) { assert := assert.New(t) // invalid config - filter, err := build("ffhb") + _, err := build("ffhb") assert.Error(err) - filter, err = build([]interface{}{3, "ffhb"}) + _, err = build([]interface{}{3, "ffhb"}) assert.Error(err) - filter, err = build([]interface{}{"ffhb"}) + filter, err := build([]interface{}{"ffhb"}) assert.NoError(err) // wronge node diff --git a/output/geojson/geojson_test.go b/output/geojson/geojson_test.go index b73196bc..b9a1382f 100644 --- a/output/geojson/geojson_test.go +++ b/output/geojson/geojson_test.go @@ -9,11 +9,6 @@ import ( "github.com/FreifunkBremen/yanic/runtime" ) -const ( - testNodeDescription string = "Online\nClients: 42\nModel: TP-Link 841\n" + - "Site: mysite\nDomain: domain_42\n" -) - func TestTransform(t *testing.T) { testNodes := createTestNodes() nodes := transform(testNodes) @@ -41,7 +36,7 @@ func TestTransform(t *testing.T) { nodePoint.Properties["clients"], ) assert.Equal( - testNodeDescription, + "Online\nClients: 42\nModel: TP-Link 841\nSite: mysite\nDomain: domain_42\n", nodePoint.Properties["description"], ) } diff --git a/output/geojson/output.go b/output/geojson/output.go index d3c10688..620ba6bb 100644 --- a/output/geojson/output.go +++ b/output/geojson/output.go @@ -26,8 +26,7 @@ func init() { } func Register(configuration map[string]interface{}) (output.Output, error) { - var config Config - config = configuration + config := Config(configuration) if path := config.Path(); path != "" { return &Output{ diff --git a/output/meshviewer-ffrgb/meshviewer_test.go b/output/meshviewer-ffrgb/meshviewer_test.go index b73ddb67..2715aea9 100644 --- a/output/meshviewer-ffrgb/meshviewer_test.go +++ b/output/meshviewer-ffrgb/meshviewer_test.go @@ -165,8 +165,6 @@ func TestTransform(t *testing.T) { assert.Equal("node:b:mac:lan", link.TargetAddress) assert.Equal(float32(0.2), link.SourceTQ) assert.Equal(float32(0), link.TargetTQ) - break - case "node:a:mac:wifi": assert.Equal("wifi", link.Type) assert.Equal("node:b:mac:wifi", link.TargetAddress) @@ -177,7 +175,6 @@ func TestTransform(t *testing.T) { assert.Equal("node:c:mac:lan", link.TargetAddress) assert.Equal(float32(0.8), link.SourceTQ) assert.Equal(float32(0.4), link.TargetTQ) - break default: assert.False(true, "invalid link.SourceAddress found") } diff --git a/output/meshviewer-ffrgb/output.go b/output/meshviewer-ffrgb/output.go index ad6ab435..2a673b93 100644 --- a/output/meshviewer-ffrgb/output.go +++ b/output/meshviewer-ffrgb/output.go @@ -26,8 +26,7 @@ func init() { } func Register(configuration map[string]interface{}) (output.Output, error) { - var config Config - config = configuration + config := Config(configuration) if path := config.Path(); path != "" { return &Output{ diff --git a/output/meshviewer/output.go b/output/meshviewer/output.go index b37e7de5..e99d04b2 100644 --- a/output/meshviewer/output.go +++ b/output/meshviewer/output.go @@ -45,8 +45,7 @@ func init() { } func Register(configuration map[string]interface{}) (output.Output, error) { - var config Config - config = configuration + config := Config(configuration) builder := nodeFormats[config.Version()] if builder == nil { diff --git a/output/nodelist/output.go b/output/nodelist/output.go index 3ed9eb74..53b9e328 100644 --- a/output/nodelist/output.go +++ b/output/nodelist/output.go @@ -26,8 +26,7 @@ func init() { } func Register(configuration map[string]interface{}) (output.Output, error) { - var config Config - config = configuration + config := Config(configuration) if path := config.Path(); path != "" { return &Output{ diff --git a/output/raw-jsonl/output.go b/output/raw-jsonl/output.go index 9334da12..64ecd840 100644 --- a/output/raw-jsonl/output.go +++ b/output/raw-jsonl/output.go @@ -26,8 +26,7 @@ func init() { } func Register(configuration map[string]interface{}) (output.Output, error) { - var config Config - config = configuration + config := Config(configuration) if path := config.Path(); path != "" { return &Output{ diff --git a/output/raw-jsonl/raw_jsonl_test.go b/output/raw-jsonl/raw_jsonl_test.go index 2ea6aed8..190939e7 100644 --- a/output/raw-jsonl/raw_jsonl_test.go +++ b/output/raw-jsonl/raw_jsonl_test.go @@ -9,11 +9,6 @@ import ( "github.com/FreifunkBremen/yanic/runtime" ) -const ( - testNodeDescription string = "Online\nClients: 42\nModel: TP-Link 841\n" + - "Site: mysite\nDomain: domain_42\n" -) - func TestTransform(t *testing.T) { testNodes := createTestNodes() result := transform(testNodes) diff --git a/output/raw/output.go b/output/raw/output.go index 9c5fcbc9..51035842 100644 --- a/output/raw/output.go +++ b/output/raw/output.go @@ -26,8 +26,7 @@ func init() { } func Register(configuration map[string]interface{}) (output.Output, error) { - var config Config - config = configuration + config := Config(configuration) if path := config.Path(); path != "" { return &Output{ diff --git a/respond/collector.go b/respond/collector.go index 79472b12..8ba6eab4 100644 --- a/respond/collector.go +++ b/respond/collector.go @@ -89,7 +89,9 @@ func (coll *Collector) listenUDP(iface InterfaceConfig) { if err != nil { log.Panic(err) } - conn.SetReadBuffer(MaxDataGramSize) + if err := conn.SetReadBuffer(MaxDataGramSize); err != nil { + log.Println("failed to set read buffer:", err) + } raw, err := conn.SyscallConn() if err != nil { diff --git a/rrd/rrd.go b/rrd/rrd.go index 91311939..ff92e5f6 100644 --- a/rrd/rrd.go +++ b/rrd/rrd.go @@ -13,7 +13,7 @@ import ( "github.com/bdlm/log" ) -var linePattern = regexp.MustCompile("^ ([^<]+)([^<]+)") +var linePattern = regexp.MustCompile(`^ ([^<]+)([^<]+)`) // Dataset a timestemp with values (node and clients) type Dataset struct { diff --git a/runtime/nodes.go b/runtime/nodes.go index 55d871df..082631e1 100644 --- a/runtime/nodes.go +++ b/runtime/nodes.go @@ -56,7 +56,7 @@ func (nodes *Nodes) Update(nodeID string, res *data.ResponseData) *Node { now := jsontime.Now() nodes.Lock() - node, _ := nodes.List[nodeID] + node := nodes.List[nodeID] if node == nil { node = &Node{ @@ -213,7 +213,7 @@ func (nodes *Nodes) readIfaces(nodeinfo *data.Nodeinfo, warning bool) { if addr == "" { continue } - if oldNodeID, _ := nodes.ifaceToNodeID[addr]; oldNodeID != nodeID { + if oldNodeID := nodes.ifaceToNodeID[addr]; oldNodeID != nodeID { if oldNodeID != "" && warning { log.Warnf("override nodeID from %s to %s on MAC address %s", oldNodeID, nodeID, addr) } diff --git a/runtime/nodes_test.go b/runtime/nodes_test.go index a6c6c1d6..e572840c 100644 --- a/runtime/nodes_test.go +++ b/runtime/nodes_test.go @@ -135,7 +135,7 @@ func TestSelectNodes(t *testing.T) { }) assert.Len(selectedNodes, 1) time := jsontime.Time{} - time.UnmarshalJSON([]byte("2017-03-10T12:12:01")) + assert.NoError(time.UnmarshalJSON([]byte("\"2017-03-10T12:12:01\""))) assert.Equal(time, selectedNodes[0].Firstseen) }