diff --git a/go.mod b/go.mod index b1b2dfc3..8357a982 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,6 @@ require ( github.com/google/gousb v1.1.3 github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.3 - github.com/grandcat/zeroconf v1.0.0 github.com/hashicorp/go-bexpr v0.1.14 github.com/inconshreveable/go-vhost v1.0.0 github.com/jpillora/go-tld v1.2.1 diff --git a/go.sum b/go.sum index a2930b76..6c53e293 100644 --- a/go.sum +++ b/go.sum @@ -55,8 +55,6 @@ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/grandcat/zeroconf v1.0.0 h1:uHhahLBKqwWBV6WZUDAT71044vwOTL+McW0mBJvo6kE= -github.com/grandcat/zeroconf v1.0.0/go.mod h1:lTKmG1zh86XyCoUeIHSA4FJMBwCJiQmGfcP2PdzytEs= github.com/hashicorp/go-bexpr v0.1.14 h1:uKDeyuOhWhT1r5CiMTjdVY4Aoxdxs6EtwgTGnlosyp4= github.com/hashicorp/go-bexpr v0.1.14/go.mod h1:gN7hRKB3s7yT+YvTdnhZVLTENejvhlkZ8UE4YVBS+Q8= github.com/inconshreveable/go-vhost v1.0.0 h1:IK4VZTlXL4l9vz2IZoiSFbYaaqUW7dXJAiPriUN5Ur8= @@ -92,7 +90,6 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/logxi v0.0.0-20161027140823-aebf8a7d67ab h1:n8cgpHzJ5+EDyDri2s/GC7a9+qK3/YEGnBsd0uS/8PY= github.com/mgutz/logxi v0.0.0-20161027140823-aebf8a7d67ab/go.mod h1:y1pL58r5z2VvAjeG1VLGc8zOQgSOzbKN7kMHPvFXJ+8= -github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -140,8 +137,6 @@ golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190310074541-c10a0554eabf/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -153,7 +148,6 @@ golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -177,7 +171,6 @@ golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= diff --git a/js/http.go b/js/http.go index 615928cb..179dac77 100644 --- a/js/http.go +++ b/js/http.go @@ -20,7 +20,7 @@ type httpResponse struct { Response *http.Response Raw []byte Body string - JSON interface{} + JSON any } func (c httpPackage) Encode(s string) string { diff --git a/js/init.go b/js/init.go index 6415dd88..04752b61 100644 --- a/js/init.go +++ b/js/init.go @@ -8,7 +8,7 @@ import ( var NullValue = otto.Value{} -func ReportError(format string, args ...interface{}) otto.Value { +func ReportError(format string, args ...any) otto.Value { log.Error(format, args...) return NullValue } diff --git a/log/log.go b/log/log.go index 483fce59..1299fa7f 100644 --- a/log/log.go +++ b/log/log.go @@ -4,35 +4,35 @@ import ( "github.com/evilsocket/islazy/log" ) -type logFunction func(level log.Verbosity, format string, args ...interface{}) +type logFunction func(level log.Verbosity, format string, args ...any) var Logger = (logFunction)(nil) -func Debug(format string, args ...interface{}) { +func Debug(format string, args ...any) { if Logger != nil { Logger(log.DEBUG, format, args...) } } -func Info(format string, args ...interface{}) { +func Info(format string, args ...any) { if Logger != nil { Logger(log.INFO, format, args...) } } -func Warning(format string, args ...interface{}) { +func Warning(format string, args ...any) { if Logger != nil { Logger(log.WARNING, format, args...) } } -func Error(format string, args ...interface{}) { +func Error(format string, args ...any) { if Logger != nil { Logger(log.ERROR, format, args...) } } -func Fatal(format string, args ...interface{}) { +func Fatal(format string, args ...any) { if Logger != nil { Logger(log.FATAL, format, args...) } diff --git a/modules/api_rest/api_rest_controller.go b/modules/api_rest/api_rest_controller.go index af2c3b99..d24c34df 100644 --- a/modules/api_rest/api_rest_controller.go +++ b/modules/api_rest/api_rest_controller.go @@ -39,7 +39,7 @@ func (mod *RestAPI) setAuthFailed(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Unauthorized")) } -func (mod *RestAPI) toJSON(w http.ResponseWriter, o interface{}) { +func (mod *RestAPI) toJSON(w http.ResponseWriter, o any) { w.Header().Set("Content-Type", "application/json") if err := json.NewEncoder(w).Encode(o); err != nil { mod.Debug("error while encoding object to JSON: %v", err) @@ -70,24 +70,24 @@ func (mod *RestAPI) checkAuth(r *http.Request) bool { return true } -func (mod *RestAPI) patchFrame(buf []byte) (frame map[string]interface{}, err error) { +func (mod *RestAPI) patchFrame(buf []byte) (frame map[string]any, err error) { // this is ugly but necessary: since we're replaying, the // api.rest state object is filled with *old* values (the // recorded ones), but the UI needs updated values at least // of that in order to understand that a replay is going on // and where we are at it. So we need to parse the record // back into a session object and update only the api.rest.state - frame = make(map[string]interface{}) + frame = make(map[string]any) if err = json.Unmarshal(buf, &frame); err != nil { return } - for _, i := range frame["modules"].([]interface{}) { - m := i.(map[string]interface{}) + for _, i := range frame["modules"].([]any) { + m := i.(map[string]any) if m["name"] == "api.rest" { - state := m["state"].(map[string]interface{}) - mod.State.Range(func(key interface{}, value interface{}) bool { + state := m["state"].(map[string]any) + mod.State.Range(func(key any, value any) bool { state[key.(string)] = value return true }) diff --git a/modules/c2/c2.go b/modules/c2/c2.go index d0cb2e24..3f4d71c9 100644 --- a/modules/c2/c2.go +++ b/modules/c2/c2.go @@ -311,7 +311,7 @@ func (mod *C2) Configure() (err error) { return mod.client.Connect(mod.settings.server) } -func (mod *C2) onPrint(format string, args ...interface{}) { +func (mod *C2) onPrint(format string, args ...any) { if !mod.Running() { return } diff --git a/modules/can/can_recon.go b/modules/can/can_recon.go index 21f38f97..0726b6ec 100644 --- a/modules/can/can_recon.go +++ b/modules/can/can_recon.go @@ -59,7 +59,7 @@ func (mod *CANModule) Configure() error { func (mod *CANModule) isFilteredOut(frame can.Frame, msg Message) bool { // if we have an active filter if mod.filter != "" { - if res, err := mod.filterExpr.Evaluate(map[string]interface{}{ + if res, err := mod.filterExpr.Evaluate(map[string]any{ "message": msg, "frame": frame, }); err != nil { diff --git a/modules/dns_proxy/dns_proxy_base.go b/modules/dns_proxy/dns_proxy_base.go index fe1b84af..775d7967 100644 --- a/modules/dns_proxy/dns_proxy_base.go +++ b/modules/dns_proxy/dns_proxy_base.go @@ -182,23 +182,23 @@ func (p *DNSProxy) dnsWorker() error { return p.Server.ListenAndServe() } -func (p *DNSProxy) Debug(format string, args ...interface{}) { +func (p *DNSProxy) Debug(format string, args ...any) { p.Sess.Events.Log(log.DEBUG, p.tag+format, args...) } -func (p *DNSProxy) Info(format string, args ...interface{}) { +func (p *DNSProxy) Info(format string, args ...any) { p.Sess.Events.Log(log.INFO, p.tag+format, args...) } -func (p *DNSProxy) Warning(format string, args ...interface{}) { +func (p *DNSProxy) Warning(format string, args ...any) { p.Sess.Events.Log(log.WARNING, p.tag+format, args...) } -func (p *DNSProxy) Error(format string, args ...interface{}) { +func (p *DNSProxy) Error(format string, args ...any) { p.Sess.Events.Log(log.ERROR, p.tag+format, args...) } -func (p *DNSProxy) Fatal(format string, args ...interface{}) { +func (p *DNSProxy) Fatal(format string, args ...any) { p.Sess.Events.Log(log.FATAL, p.tag+format, args...) } diff --git a/modules/dns_proxy/dns_proxy_js_query.go b/modules/dns_proxy/dns_proxy_js_query.go index bae57ad2..8fd566fb 100644 --- a/modules/dns_proxy/dns_proxy_js_query.go +++ b/modules/dns_proxy/dns_proxy_js_query.go @@ -14,13 +14,13 @@ import ( ) type JSQuery struct { - Answers []map[string]interface{} + Answers []map[string]any Client map[string]string Compress bool - Extras []map[string]interface{} + Extras []map[string]any Header JSQueryHeader - Nameservers []map[string]interface{} - Questions []map[string]interface{} + Nameservers []map[string]any + Questions []map[string]any refHash string } @@ -39,23 +39,23 @@ type JSQueryHeader struct { Zero bool } -func jsPropToMap(obj map[string]interface{}, key string) map[string]interface{} { - if v, ok := obj[key].(map[string]interface{}); ok { +func jsPropToMap(obj map[string]any, key string) map[string]any { + if v, ok := obj[key].(map[string]any); ok { return v } - log.Error("error converting JS property to map[string]interface{} where key is: %s", key) - return map[string]interface{}{} + log.Error("error converting JS property to map[string]any where key is: %s", key) + return map[string]any{} } -func jsPropToMapArray(obj map[string]interface{}, key string) []map[string]interface{} { - if v, ok := obj[key].([]map[string]interface{}); ok { +func jsPropToMapArray(obj map[string]any, key string) []map[string]any { + if v, ok := obj[key].([]map[string]any); ok { return v } - log.Error("error converting JS property to []map[string]interface{} where key is: %s", key) - return []map[string]interface{}{} + log.Error("error converting JS property to []map[string]any where key is: %s", key) + return []map[string]any{} } -func jsPropToString(obj map[string]interface{}, key string) string { +func jsPropToString(obj map[string]any, key string) string { if v, ok := obj[key].(string); ok { return v } @@ -63,7 +63,7 @@ func jsPropToString(obj map[string]interface{}, key string) string { return "" } -func jsPropToStringArray(obj map[string]interface{}, key string) []string { +func jsPropToStringArray(obj map[string]any, key string) []string { if v, ok := obj[key].([]string); ok { return v } @@ -71,7 +71,7 @@ func jsPropToStringArray(obj map[string]interface{}, key string) []string { return []string{} } -func jsPropToUint8(obj map[string]interface{}, key string) uint8 { +func jsPropToUint8(obj map[string]any, key string) uint8 { if v, ok := obj[key].(int64); ok { if v >= 0 && v <= math.MaxUint8 { return uint8(v) @@ -81,8 +81,8 @@ func jsPropToUint8(obj map[string]interface{}, key string) uint8 { return uint8(0) } -func jsPropToUint8Array(obj map[string]interface{}, key string) []uint8 { - if arr, ok := obj[key].([]interface{}); ok { +func jsPropToUint8Array(obj map[string]any, key string) []uint8 { + if arr, ok := obj[key].([]any); ok { vArr := make([]uint8, 0, len(arr)) for _, item := range arr { if v, ok := item.(int64); ok { @@ -100,7 +100,7 @@ func jsPropToUint8Array(obj map[string]interface{}, key string) []uint8 { return []uint8{} } -func jsPropToUint16(obj map[string]interface{}, key string) uint16 { +func jsPropToUint16(obj map[string]any, key string) uint16 { if v, ok := obj[key].(int64); ok { if v >= 0 && v <= math.MaxUint16 { return uint16(v) @@ -110,8 +110,8 @@ func jsPropToUint16(obj map[string]interface{}, key string) uint16 { return uint16(0) } -func jsPropToUint16Array(obj map[string]interface{}, key string) []uint16 { - if arr, ok := obj[key].([]interface{}); ok { +func jsPropToUint16Array(obj map[string]any, key string) []uint16 { + if arr, ok := obj[key].([]any); ok { vArr := make([]uint16, 0, len(arr)) for _, item := range arr { if v, ok := item.(int64); ok { @@ -129,7 +129,7 @@ func jsPropToUint16Array(obj map[string]interface{}, key string) []uint16 { return []uint16{} } -func jsPropToUint32(obj map[string]interface{}, key string) uint32 { +func jsPropToUint32(obj map[string]any, key string) uint32 { if v, ok := obj[key].(int64); ok { if v >= 0 && v <= math.MaxUint32 { return uint32(v) @@ -139,7 +139,7 @@ func jsPropToUint32(obj map[string]interface{}, key string) uint32 { return uint32(0) } -func jsPropToUint64(obj map[string]interface{}, key string) uint64 { +func jsPropToUint64(obj map[string]any, key string) uint64 { prop, found := obj[key] if found { switch reflect.TypeOf(prop).String() { @@ -210,10 +210,10 @@ func (j *JSQuery) NewHash() string { } func NewJSQuery(query *dns.Msg, clientIP string) (jsQuery *JSQuery) { - answers := make([]map[string]interface{}, len(query.Answer)) - extras := make([]map[string]interface{}, len(query.Extra)) - nameservers := make([]map[string]interface{}, len(query.Ns)) - questions := make([]map[string]interface{}, len(query.Question)) + answers := make([]map[string]any, len(query.Answer)) + extras := make([]map[string]any, len(query.Extra)) + nameservers := make([]map[string]any, len(query.Ns)) + questions := make([]map[string]any, len(query.Question)) for i, rr := range query.Answer { jsRecord, err := NewJSResourceRecord(rr) @@ -243,7 +243,7 @@ func NewJSQuery(query *dns.Msg, clientIP string) (jsQuery *JSQuery) { } for i, question := range query.Question { - questions[i] = map[string]interface{}{ + questions[i] = map[string]any{ "Name": question.Name, "Qtype": int64(question.Qtype), "Qclass": int64(question.Qclass), diff --git a/modules/dns_proxy/dns_proxy_js_record.go b/modules/dns_proxy/dns_proxy_js_record.go index 49553ad8..2e2edf8f 100644 --- a/modules/dns_proxy/dns_proxy_js_record.go +++ b/modules/dns_proxy/dns_proxy_js_record.go @@ -8,11 +8,11 @@ import ( "github.com/miekg/dns" ) -func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error) { +func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]any, err error) { header := rr.Header() - jsRecord = map[string]interface{}{ - "Header": map[string]interface{}{ + jsRecord = map[string]any{ + "Header": map[string]any{ "Class": int64(header.Class), "Name": header.Name, "Rrtype": int64(header.Rrtype), @@ -26,9 +26,9 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error) case *dns.AAAA: jsRecord["AAAA"] = rr.AAAA.String() case *dns.APL: - jsPrefixes := make([]map[string]interface{}, len(rr.Prefixes)) + jsPrefixes := make([]map[string]any, len(rr.Prefixes)) for i, v := range rr.Prefixes { - jsPrefixes[i] = map[string]interface{}{ + jsPrefixes[i] = map[string]any{ "Negation": v.Negation, "Network": v.Network.String(), } @@ -251,7 +251,7 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error) jsRecord["Priority"] = int64(rr.Priority) jsRecord["Target"] = rr.Target kvs := rr.Value - var jsKvs []map[string]interface{} + var jsKvs []map[string]any for _, kv := range kvs { jsKv, err := NewJSSVCBKeyValue(kv) if err != nil { @@ -265,7 +265,7 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error) jsRecord["Priority"] = int64(rr.Priority) jsRecord["Target"] = rr.Target kvs := rr.Value - jsKvs := make([]map[string]interface{}, len(kvs)) + jsKvs := make([]map[string]any, len(kvs)) for i, kv := range kvs { jsKv, err := NewJSSVCBKeyValue(kv) if err != nil { @@ -307,7 +307,7 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error) jsRecord["RendezvousServers"] = rr.RendezvousServers case *dns.OPT: options := rr.Option - jsOptions := make([]map[string]interface{}, len(options)) + jsOptions := make([]map[string]any, len(options)) for i, option := range options { jsOption, err := NewJSEDNS0(option) if err != nil { @@ -361,7 +361,7 @@ func NewJSResourceRecord(rr dns.RR) (jsRecord map[string]interface{}, err error) return jsRecord, nil } -func ToRR(jsRecord map[string]interface{}) (rr dns.RR, err error) { +func ToRR(jsRecord map[string]any) (rr dns.RR, err error) { jsHeader := jsPropToMap(jsRecord, "Header") header := dns.RR_Header{ @@ -385,7 +385,7 @@ func ToRR(jsRecord map[string]interface{}) (rr dns.RR, err error) { AAAA: net.ParseIP(jsPropToString(jsRecord, "AAAA")), } case dns.TypeAPL: - jsPrefixes := jsRecord["Prefixes"].([]map[string]interface{}) + jsPrefixes := jsRecord["Prefixes"].([]map[string]any) prefixes := make([]dns.APLPrefix, len(jsPrefixes)) for i, jsPrefix := range jsPrefixes { jsNetwork := jsPrefix["Network"].(string) diff --git a/modules/dns_proxy/dns_proxy_js_record_edns0.go b/modules/dns_proxy/dns_proxy_js_record_edns0.go index 297c9957..cfbc5447 100644 --- a/modules/dns_proxy/dns_proxy_js_record_edns0.go +++ b/modules/dns_proxy/dns_proxy_js_record_edns0.go @@ -8,18 +8,18 @@ import ( "github.com/miekg/dns" ) -func NewJSEDNS0(e dns.EDNS0) (jsEDNS0 map[string]interface{}, err error) { +func NewJSEDNS0(e dns.EDNS0) (jsEDNS0 map[string]any, err error) { option := e.Option() - jsEDNS0 = map[string]interface{}{ + jsEDNS0 = map[string]any{ "Option": option, } - var jsVal map[string]interface{} + var jsVal map[string]any switch opt := e.(type) { case *dns.EDNS0_LLQ: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Code": opt.Code, "Error": opt.Error, "Id": opt.Id, @@ -28,38 +28,38 @@ func NewJSEDNS0(e dns.EDNS0) (jsEDNS0 map[string]interface{}, err error) { "Version": opt.Version, } case *dns.EDNS0_UL: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Code": opt.Code, "Lease": opt.Lease, "KeyLease": opt.KeyLease, } case *dns.EDNS0_NSID: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Code": opt.Code, "Nsid": opt.Nsid, } case *dns.EDNS0_ESU: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Code": opt.Code, "Uri": opt.Uri, } case *dns.EDNS0_DAU: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "AlgCode": opt.AlgCode, "Code": opt.Code, } case *dns.EDNS0_DHU: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "AlgCode": opt.AlgCode, "Code": opt.Code, } case *dns.EDNS0_N3U: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "AlgCode": opt.AlgCode, "Code": opt.Code, } case *dns.EDNS0_SUBNET: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Address": opt.Address.String(), "Code": opt.Code, "Family": opt.Family, @@ -67,33 +67,33 @@ func NewJSEDNS0(e dns.EDNS0) (jsEDNS0 map[string]interface{}, err error) { "SourceScope": opt.SourceScope, } case *dns.EDNS0_EXPIRE: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Code": opt.Code, "Empty": opt.Empty, "Expire": opt.Expire, } case *dns.EDNS0_COOKIE: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Code": opt.Code, "Cookie": opt.Cookie, } case *dns.EDNS0_TCP_KEEPALIVE: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Code": opt.Code, "Length": opt.Length, "Timeout": opt.Timeout, } case *dns.EDNS0_PADDING: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Padding": string(opt.Padding), } case *dns.EDNS0_EDE: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "ExtraText": opt.ExtraText, "InfoCode": opt.InfoCode, } case *dns.EDNS0_LOCAL: - jsVal = map[string]interface{}{ + jsVal = map[string]any{ "Code": opt.Code, "Data": string(opt.Data), } @@ -106,7 +106,7 @@ func NewJSEDNS0(e dns.EDNS0) (jsEDNS0 map[string]interface{}, err error) { return jsEDNS0, nil } -func ToEDNS0(jsEDNS0 map[string]interface{}) (e dns.EDNS0, err error) { +func ToEDNS0(jsEDNS0 map[string]any) (e dns.EDNS0, err error) { option := jsPropToUint16(jsEDNS0, "Option") jsVal := jsPropToMap(jsEDNS0, "Value") diff --git a/modules/dns_proxy/dns_proxy_js_record_svcb.go b/modules/dns_proxy/dns_proxy_js_record_svcb.go index f0f0242d..e4a50ada 100644 --- a/modules/dns_proxy/dns_proxy_js_record_svcb.go +++ b/modules/dns_proxy/dns_proxy_js_record_svcb.go @@ -8,10 +8,10 @@ import ( "github.com/miekg/dns" ) -func NewJSSVCBKeyValue(kv dns.SVCBKeyValue) (map[string]interface{}, error) { +func NewJSSVCBKeyValue(kv dns.SVCBKeyValue) (map[string]any, error) { key := kv.Key() - jsKv := map[string]interface{}{ + jsKv := map[string]any{ "Key": uint16(key), } @@ -56,7 +56,7 @@ func NewJSSVCBKeyValue(kv dns.SVCBKeyValue) (map[string]interface{}, error) { return jsKv, nil } -func ToSVCBKeyValue(jsKv map[string]interface{}) (dns.SVCBKeyValue, error) { +func ToSVCBKeyValue(jsKv map[string]any) (dns.SVCBKeyValue, error) { var kv dns.SVCBKeyValue key := dns.SVCBKey(jsPropToUint16(jsKv, "Key")) diff --git a/modules/gps/gps.go b/modules/gps/gps.go index 4cda1ff8..a620c973 100644 --- a/modules/gps/gps.go +++ b/modules/gps/gps.go @@ -178,7 +178,7 @@ func (mod *GPS) readFromSerial() { } func (mod *GPS) runFromGPSD() { - mod.gpsd.AddFilter("TPV", func(r interface{}) { + mod.gpsd.AddFilter("TPV", func(r any) { report := r.(*gpsd.TPVReport) mod.Session.GPS.Updated = report.Time mod.Session.GPS.Latitude = report.Lat @@ -189,7 +189,7 @@ func (mod *GPS) runFromGPSD() { mod.Session.Events.Add("gps.new", mod.Session.GPS) }) - mod.gpsd.AddFilter("SKY", func(r interface{}) { + mod.gpsd.AddFilter("SKY", func(r any) { report := r.(*gpsd.SKYReport) mod.Session.GPS.NumSatellites = int64(len(report.Satellites)) mod.Session.GPS.HDOP = report.Hdop diff --git a/modules/graph/graph.go b/modules/graph/graph.go index a54c907d..e1b6ee18 100644 --- a/modules/graph/graph.go +++ b/modules/graph/graph.go @@ -249,18 +249,18 @@ func (g *Graph) JSON(filter string, disconnected bool) (string, int, int, error) discarded := 0 type link struct { - Source string `json:"source"` - Target string `json:"target"` - Edge interface{} `json:"edge"` + Source string `json:"source"` + Target string `json:"target"` + Edge any `json:"edge"` } type data struct { - Nodes []map[string]interface{} `json:"nodes"` - Links []link `json:"links"` + Nodes []map[string]any `json:"nodes"` + Links []link `json:"links"` } jsData := data{ - Nodes: make([]map[string]interface{}, 0), + Nodes: make([]map[string]any, 0), Links: make([]link, 0), } @@ -337,7 +337,7 @@ func (g *Graph) FindOtherTypes(t NodeType, id string) ([]*Node, error) { return otherNodes, nil } -func (g *Graph) CreateNode(t NodeType, id string, entity interface{}, annotations string) (*Node, error) { +func (g *Graph) CreateNode(t NodeType, id string, entity any, annotations string) (*Node, error) { g.Lock() defer g.Unlock() diff --git a/modules/graph/node.go b/modules/graph/node.go index 9f60b1cd..d3d25e84 100644 --- a/modules/graph/node.go +++ b/modules/graph/node.go @@ -49,13 +49,13 @@ var nodeDotStyles = map[NodeType]string{ } type Node struct { - Type NodeType `json:"type"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` - ID string `json:"id"` - Annotations string `json:"annotations"` - Entity interface{} `json:"entity"` - Dummy bool `json:"-"` + Type NodeType `json:"type"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + ID string `json:"id"` + Annotations string `json:"annotations"` + Entity any `json:"entity"` + Dummy bool `json:"-"` } func ReadNode(fileName string) (*Node, error) { @@ -121,27 +121,27 @@ func (n Node) Label() string { return s case BLEServer: return fmt.Sprintf("%s\\n(%s)", - n.Entity.(map[string]interface{})["mac"].(string), - n.Entity.(map[string]interface{})["vendor"].(string)) + n.Entity.(map[string]any)["mac"].(string), + n.Entity.(map[string]any)["vendor"].(string)) case Station: return fmt.Sprintf("%s\\n(%s)", - n.Entity.(map[string]interface{})["mac"].(string), - n.Entity.(map[string]interface{})["vendor"].(string)) + n.Entity.(map[string]any)["mac"].(string), + n.Entity.(map[string]any)["vendor"].(string)) case AccessPoint: return fmt.Sprintf("%s\\n%s\\n(%s)", - n.Entity.(map[string]interface{})["hostname"].(string), - n.Entity.(map[string]interface{})["mac"].(string), - n.Entity.(map[string]interface{})["vendor"].(string)) + n.Entity.(map[string]any)["hostname"].(string), + n.Entity.(map[string]any)["mac"].(string), + n.Entity.(map[string]any)["vendor"].(string)) case Endpoint: return fmt.Sprintf("%s\\n(%s %s)", - n.Entity.(map[string]interface{})["ipv4"].(string), - n.Entity.(map[string]interface{})["mac"].(string), - n.Entity.(map[string]interface{})["vendor"].(string)) + n.Entity.(map[string]any)["ipv4"].(string), + n.Entity.(map[string]any)["mac"].(string), + n.Entity.(map[string]any)["vendor"].(string)) case Gateway: return fmt.Sprintf("%s\\n(%s %s)", - n.Entity.(map[string]interface{})["ipv4"].(string), - n.Entity.(map[string]interface{})["mac"].(string), - n.Entity.(map[string]interface{})["vendor"].(string)) + n.Entity.(map[string]any)["ipv4"].(string), + n.Entity.(map[string]any)["mac"].(string), + n.Entity.(map[string]any)["vendor"].(string)) } return "?" } @@ -157,8 +157,8 @@ func (n Node) Dot(isTarget bool) string { strings.ReplaceAll(n.Label(), "\"", "\\\"")) } -func (n Node) ToMap() (map[string]interface{}, error) { - var m map[string]interface{} +func (n Node) ToMap() (map[string]any, error) { + var m map[string]any if raw, err := json.Marshal(n); err != nil { return nil, err diff --git a/modules/graph/stack.go b/modules/graph/stack.go index cf22db2f..d9d75ac9 100644 --- a/modules/graph/stack.go +++ b/modules/graph/stack.go @@ -3,7 +3,7 @@ package graph import "sync" type entry struct { - data interface{} + data any next *entry } @@ -13,7 +13,7 @@ type Stack struct { Size int } -func (stk *Stack) Push(data interface{}) { +func (stk *Stack) Push(data any) { stk.lock.Lock() element := new(entry) @@ -26,7 +26,7 @@ func (stk *Stack) Push(data interface{}) { stk.lock.Unlock() } -func (stk *Stack) Pop() interface{} { +func (stk *Stack) Pop() any { if stk.head == nil { return nil } diff --git a/modules/http_proxy/http_proxy_base.go b/modules/http_proxy/http_proxy_base.go index 7ace2122..a206a076 100644 --- a/modules/http_proxy/http_proxy_base.go +++ b/modules/http_proxy/http_proxy_base.go @@ -70,7 +70,7 @@ type dummyLogger struct { p *HTTPProxy } -func (l dummyLogger) Printf(format string, v ...interface{}) { +func (l dummyLogger) Printf(format string, v ...any) { l.p.Debug("[goproxy.log] %s", str.Trim(fmt.Sprintf(format, v...))) } @@ -108,23 +108,23 @@ func NewHTTPProxy(s *session.Session, tag string) *HTTPProxy { return p } -func (p *HTTPProxy) Debug(format string, args ...interface{}) { +func (p *HTTPProxy) Debug(format string, args ...any) { p.Sess.Events.Log(log.DEBUG, p.tag+format, args...) } -func (p *HTTPProxy) Info(format string, args ...interface{}) { +func (p *HTTPProxy) Info(format string, args ...any) { p.Sess.Events.Log(log.INFO, p.tag+format, args...) } -func (p *HTTPProxy) Warning(format string, args ...interface{}) { +func (p *HTTPProxy) Warning(format string, args ...any) { p.Sess.Events.Log(log.WARNING, p.tag+format, args...) } -func (p *HTTPProxy) Error(format string, args ...interface{}) { +func (p *HTTPProxy) Error(format string, args ...any) { p.Sess.Events.Log(log.ERROR, p.tag+format, args...) } -func (p *HTTPProxy) Fatal(format string, args ...interface{}) { +func (p *HTTPProxy) Fatal(format string, args ...any) { p.Sess.Events.Log(log.FATAL, p.tag+format, args...) } @@ -180,10 +180,10 @@ func (p *HTTPProxy) Configure(address string, proxyPort int, httpPort int, doRed for _, mname := range []string{"http.proxy", "https.proxy"} { err, m := p.Sess.Module(mname) if err == nil && m.Running() { - var mextra interface{} + var mextra any var mstripper *SSLStripper mextra = m.Extra() - mextramap := mextra.(map[string]interface{}) + mextramap := mextra.(map[string]any) mstripper = mextramap["stripper"].(*SSLStripper) if mstripper != nil && mstripper.Enabled() { p.Info("found another proxy using sslstrip -> merging strippers...") diff --git a/modules/net_recon/net_show.go b/modules/net_recon/net_show.go index 93fa0e3c..d964a82e 100644 --- a/modules/net_recon/net_show.go +++ b/modules/net_recon/net_show.go @@ -63,7 +63,7 @@ func (mod *Discovery) getRow(e *network.Endpoint, withMeta bool) [][]string { var traffic *packets.Traffic var found bool - var v interface{} + var v any if v, found = mod.Session.Queue.Traffic.Load(e.IpAddress); !found { traffic = &packets.Traffic{} } else { @@ -99,7 +99,7 @@ func (mod *Discovery) getRow(e *network.Endpoint, withMeta bool) [][]string { } metas := []string{} - e.Meta.Each(func(name string, value interface{}) { + e.Meta.Each(func(name string, value any) { s := "" if sv, ok := value.(string); ok { s = sv @@ -286,7 +286,7 @@ func (mod *Discovery) showMeta(arg string) (err error) { for _, t := range targets { keys := []string{} - t.Meta.Each(func(name string, value interface{}) { + t.Meta.Each(func(name string, value any) { keys = append(keys, name) }) diff --git a/modules/net_sniff/net_sniff_event.go b/modules/net_sniff/net_sniff_event.go index 12326f2d..c1c7d04e 100644 --- a/modules/net_sniff/net_sniff_event.go +++ b/modules/net_sniff/net_sniff_event.go @@ -7,18 +7,18 @@ import ( "github.com/bettercap/bettercap/v2/session" ) -type SniffData map[string]interface{} +type SniffData map[string]any type SnifferEvent struct { - PacketTime time.Time `json:"time"` - Protocol string `json:"protocol"` - Source string `json:"from"` - Destination string `json:"to"` - Message string `json:"message"` - Data interface{} `json:"data"` + PacketTime time.Time `json:"time"` + Protocol string `json:"protocol"` + Source string `json:"from"` + Destination string `json:"to"` + Message string `json:"message"` + Data any `json:"data"` } -func NewSnifferEvent(t time.Time, proto string, src string, dst string, data interface{}, format string, args ...interface{}) SnifferEvent { +func NewSnifferEvent(t time.Time, proto string, src string, dst string, data any, format string, args ...any) SnifferEvent { return SnifferEvent{ PacketTime: t, Protocol: proto, diff --git a/modules/net_sniff/net_sniff_views.go b/modules/net_sniff/net_sniff_views.go index f930cf52..d9b2e815 100644 --- a/modules/net_sniff/net_sniff_views.go +++ b/modules/net_sniff/net_sniff_views.go @@ -28,7 +28,7 @@ func vIP(ip net.IP) string { return address } -func vPort(p interface{}) string { +func vPort(p any) string { sp := fmt.Sprintf("%d", p) if tcp, ok := p.(layers.TCPPort); ok { if name, found := layers.TCPPortNames[tcp]; found { diff --git a/modules/wifi/wifi_bruteforce_darwin.go b/modules/wifi/wifi_bruteforce_darwin.go index 650dbe93..c3d1dd0e 100644 --- a/modules/wifi/wifi_bruteforce_darwin.go +++ b/modules/wifi/wifi_bruteforce_darwin.go @@ -27,7 +27,7 @@ func wifiBruteforce(mod *WiFiModule, job bruteforceJob) (bool, error) { err error } - if res, err := async.WithTimeout(job.timeout, func() interface{} { + if res, err := async.WithTimeout(job.timeout, func() any { start := time.Now() if output, err := core.Exec(networksetup, args); err != nil { return result{auth: false, err: err} diff --git a/modules/zerogod/zeroconf/client.go b/modules/zerogod/zeroconf/client.go index 79323d5f..f46e2e87 100644 --- a/modules/zerogod/zeroconf/client.go +++ b/modules/zerogod/zeroconf/client.go @@ -317,7 +317,7 @@ func (c *client) shutdown() { // Data receiving routine reads from connection, unpacks packets into dns.Msg // structures and sends them to a given msgCh channel -func (c *client) recv(ctx context.Context, l interface{}, msgCh chan *dns.Msg) { +func (c *client) recv(ctx context.Context, l any, msgCh chan *dns.Msg) { var readFrom func([]byte) (n int, src net.Addr, err error) switch pConn := l.(type) { diff --git a/network/ble_device.go b/network/ble_device.go index c3e16c96..9b5744a3 100644 --- a/network/ble_device.go +++ b/network/ble_device.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows package network @@ -10,11 +11,11 @@ import ( ) type BLECharacteristic struct { - UUID string `json:"uuid"` - Name string `json:"name"` - Handle uint16 `json:"handle"` - Properties []string `json:"properties"` - Data interface{} `json:"data"` + UUID string `json:"uuid"` + Name string `json:"name"` + Handle uint16 `json:"handle"` + Properties []string `json:"properties"` + Data any `json:"data"` } type BLEService struct { diff --git a/network/debug.go b/network/debug.go index 1cd2bb02..1f0b3c7d 100644 --- a/network/debug.go +++ b/network/debug.go @@ -1,7 +1,7 @@ package network -type DebugFunc func(format string, args ...interface{}) +type DebugFunc func(format string, args ...any) -var Debug = func(format string, args ...interface{}) { +var Debug = func(format string, args ...any) { } diff --git a/network/meta.go b/network/meta.go index 08d66131..2e987e08 100644 --- a/network/meta.go +++ b/network/meta.go @@ -12,19 +12,19 @@ import ( type Meta struct { sync.Mutex - m map[string]interface{} + m map[string]any } // we want to protect concurrent access to the Meta // object so the m field needs to be unexported, this // is to have it in JSON regardless. type metaJSON struct { - Values map[string]interface{} `json:"values"` + Values map[string]any `json:"values"` } func NewMeta() *Meta { return &Meta{ - m: make(map[string]interface{}), + m: make(map[string]any), } } @@ -34,13 +34,13 @@ func (m *Meta) MarshalJSON() ([]byte, error) { return json.Marshal(metaJSON{Values: m.m}) } -func (m *Meta) Set(name string, value interface{}) { +func (m *Meta) Set(name string, value any) { m.Lock() defer m.Unlock() m.m[name] = value } -func (m *Meta) Get(name string) interface{} { +func (m *Meta) Get(name string) any { m.Lock() defer m.Unlock() @@ -73,7 +73,7 @@ func (m *Meta) SetInts(name string, ints []int) { m.Set(name, strings.Join(list, ",")) } -func (m *Meta) GetOr(name string, dflt interface{}) interface{} { +func (m *Meta) GetOr(name string, dflt any) any { m.Lock() defer m.Unlock() @@ -83,7 +83,7 @@ func (m *Meta) GetOr(name string, dflt interface{}) interface{} { return dflt } -func (m *Meta) Each(cb func(name string, value interface{})) { +func (m *Meta) Each(cb func(name string, value any)) { m.Lock() defer m.Unlock() diff --git a/network/meta_test.go b/network/meta_test.go index 2488e982..f5039ec9 100644 --- a/network/meta_test.go +++ b/network/meta_test.go @@ -74,7 +74,7 @@ func TestMetaEach(t *testing.T) { example.m["evilsocket"] = true count := 0 - exampleCB := func(name string, value interface{}) { + exampleCB := func(name string, value any) { count++ } example.Each(exampleCB) diff --git a/packets/dot11_test.go b/packets/dot11_test.go index e06b6f06..0043dbe0 100644 --- a/packets/dot11_test.go +++ b/packets/dot11_test.go @@ -10,8 +10,8 @@ import ( func TestDot11Vars(t *testing.T) { var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {openFlags, 1057}, {wpaFlags, 1041}, @@ -65,8 +65,8 @@ func TestDot11ApConfig(t *testing.T) { } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {config.SSID, ssid}, {config.BSSID, bssid}, @@ -88,8 +88,8 @@ func TestDot11Info(t *testing.T) { dot11InfoElement := Dot11Info(id, info) var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {dot11InfoElement.ID, id}, {dot11InfoElement.Length, uint8(len(info))}, @@ -159,8 +159,8 @@ func TestDot11Parse(t *testing.T) { ok, radiotap, dot11 := Dot11Parse(packet) var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ // testing for the known bad cases {ok, false}, @@ -190,8 +190,8 @@ func TestDot11ParseIDSSID(t *testing.T) { ok, id := Dot11ParseIDSSID(packet) var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {ok, true}, {id, "I still love Ruby, don't worry!"}, @@ -231,8 +231,8 @@ func TestDot11ParseEncryption(t *testing.T) { found, enc, cipher, auth := Dot11ParseEncryption(packet, dot11) var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {found, true}, {enc, "WPA2"}, diff --git a/packets/dot11_types_test.go b/packets/dot11_types_test.go index ec1b7738..511b8f2a 100644 --- a/packets/dot11_types_test.go +++ b/packets/dot11_types_test.go @@ -13,8 +13,8 @@ func TestDot11CipherSuite(t *testing.T) { OUI: bytes, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {cs.OUI, bytes}, } @@ -33,8 +33,8 @@ func TestDot11AuthSuite(t *testing.T) { OUI: bytes, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {cs.OUI, bytes}, } @@ -51,8 +51,8 @@ func TestDot11CipherSuiteSelector(t *testing.T) { Count: count, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {cs.Count, count}, } @@ -69,8 +69,8 @@ func TestDot11AuthSuiteSelector(t *testing.T) { Count: count, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {cs.Count, count}, } @@ -87,8 +87,8 @@ func TestDot11RSNInfo(t *testing.T) { Version: version, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {rsn.Version, version}, {rsn.Group, CipherSuite{}}, @@ -108,8 +108,8 @@ func TestDot11VendorInfo(t *testing.T) { WPAVersion: version, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {vendor.WPAVersion, version}, {vendor.Multicast, CipherSuite{}}, @@ -134,8 +134,8 @@ func TestDot11parsePairwiseSuite(t *testing.T) { buf := []byte{0, 0, 1, 1} suite, err := parsePairwiseSuite(buf) var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {suite.OUI, buf[0:3]}, {suite.Type, Dot11CipherType(buf[3])}, @@ -152,8 +152,8 @@ func TestDot11parseAuthkeySuite(t *testing.T) { buf := []byte{0, 0, 1, 1} suite, err := parseAuthkeySuite(buf) var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {suite.OUI, buf[0:3]}, {suite.Type, Dot11AuthType(buf[3])}, diff --git a/packets/krb5_test.go b/packets/krb5_test.go index afd2b139..cb882e77 100644 --- a/packets/krb5_test.go +++ b/packets/krb5_test.go @@ -10,8 +10,8 @@ import ( func TestKrb5Contants(t *testing.T) { var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {Krb5AsRequestType, 10}, {Krb5Krb5PrincipalNameType, 1}, @@ -28,8 +28,8 @@ func TestKrb5Contants(t *testing.T) { func TestKrb5Vars(t *testing.T) { var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {ErrNoCrypt, errors.New("No crypt alg found")}, {ErrReqData, errors.New("Failed to extract pnData from as-req")}, @@ -47,8 +47,8 @@ func TestKrb5PrincipalName(t *testing.T) { str := []string{"example"} name := Krb5PrincipalName{NameString: str} var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {name.NameType, 0}, {name.NameString, str}, @@ -64,8 +64,8 @@ func TestKrb5EncryptedData(t *testing.T) { cipher := []byte{} data := Krb5EncryptedData{Cipher: cipher} var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {data.Cipher, cipher}, {data.Etype, 0}, @@ -91,8 +91,8 @@ func TestKrb5Ticket(t *testing.T) { EncPart: e, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {ticket.TktVno, v}, {ticket.Realm, r}, @@ -114,8 +114,8 @@ func TestKrb5Address(t *testing.T) { Krb5Address: y, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {addr.AddrType, x}, {addr.Krb5Address, y}, @@ -135,8 +135,8 @@ func TestKrb5PnData(t *testing.T) { Krb5PnDataValue: y, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {addr.Krb5PnDataType, x}, {addr.Krb5PnDataValue, y}, @@ -158,8 +158,8 @@ func TestKrb5ReqBody(t *testing.T) { AdditionalKrb5Tickets: k, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {req.KDCOptions, asn1.BitString{}}, {req.Cname, Krb5PrincipalName{}}, @@ -188,8 +188,8 @@ func TestKrb5Request(t *testing.T) { Krb5PnData: p, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {req.Pvno, 0}, {req.MsgType, 0}, diff --git a/packets/ntlm_test.go b/packets/ntlm_test.go index 5fa7dad0..07a08d6a 100644 --- a/packets/ntlm_test.go +++ b/packets/ntlm_test.go @@ -7,8 +7,8 @@ import ( func TestNTLMConstants(t *testing.T) { var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {NTLM_SIG_OFFSET, 0}, {NTLM_TYPE_OFFSET, 8}, @@ -50,8 +50,8 @@ func TestNTLMConstants(t *testing.T) { func TestNTLMChallengeResponse(t *testing.T) { r := NTLMChallengeResponse{} var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {r.Challenge, ""}, {r.Response, ""}, @@ -66,8 +66,8 @@ func TestNTLMChallengeResponse(t *testing.T) { func TestNTLMChallengeResponseParsed(t *testing.T) { r := NTLMChallengeResponseParsed{} var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {r.Type, 0}, {r.ServerChallenge, ""}, @@ -87,8 +87,8 @@ func TestNTLMChallengeResponseParsed(t *testing.T) { func TestNTLMResponseHeader(t *testing.T) { r := NTLMResponseHeader{} var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {r.Sig, ""}, {r.Type, uint32(0)}, @@ -123,8 +123,8 @@ func TestNTLMState(t *testing.T) { Pairs: p, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {s.Responses, r}, {s.Pairs, p}, @@ -149,8 +149,8 @@ func TestNTLMStateAddServerResponse(t *testing.T) { s.AddServerResponse(uint32(0), "picat") var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {s.Responses[uint32(0)], "picat"}, } diff --git a/packets/queue.go b/packets/queue.go index abfeca02..95f408db 100644 --- a/packets/queue.go +++ b/packets/queue.go @@ -90,12 +90,12 @@ func (q *Queue) MarshalJSON() ([]byte, error) { Traffic: make(map[string]*Traffic), } - q.Protos.Range(func(k, v interface{}) bool { + q.Protos.Range(func(k, v any) bool { doc.Protos[k.(string)] = v.(int) return true }) - q.Traffic.Range(func(k, v interface{}) bool { + q.Traffic.Range(func(k, v any) bool { doc.Traffic[k.(string)] = v.(*Traffic) return true }) diff --git a/packets/queue_test.go b/packets/queue_test.go index 9b0549d1..6113601b 100644 --- a/packets/queue_test.go +++ b/packets/queue_test.go @@ -14,8 +14,8 @@ func TestQueueActivity(t *testing.T) { MAC: h, } var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {a.IP, i}, {a.MAC, h}, @@ -31,8 +31,8 @@ func TestQueueActivity(t *testing.T) { func TestQueueTraffic(t *testing.T) { tr := Traffic{} var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {tr.Sent, uint64(0)}, {tr.Received, uint64(0)}, @@ -47,8 +47,8 @@ func TestQueueTraffic(t *testing.T) { func TestQueueStats(t *testing.T) { s := Stats{} var units = []struct { - got interface{} - exp interface{} + got any + exp any }{ {s.Sent, uint64(0)}, {s.Received, uint64(0)}, diff --git a/session/events.go b/session/events.go index c889407b..c4abe8dc 100644 --- a/session/events.go +++ b/session/events.go @@ -12,9 +12,9 @@ import ( ) type Event struct { - Tag string `json:"tag"` - Time time.Time `json:"time"` - Data interface{} `json:"data"` + Tag string `json:"tag"` + Time time.Time `json:"time"` + Data any `json:"data"` } type LogMessage struct { @@ -22,7 +22,7 @@ type LogMessage struct { Message string } -func NewEvent(tag string, data interface{}) Event { +func NewEvent(tag string, data any) Event { return Event{ Tag: tag, Time: time.Now(), @@ -39,7 +39,7 @@ func (e Event) Label() string { type EventBus <-chan Event -type PrintCallback func(format string, args ...interface{}) +type PrintCallback func(format string, args ...any) type PrintWriter struct { pool *EventPool @@ -130,7 +130,7 @@ func (p *EventPool) SetDebug(d bool) { p.debug = d } -func (p *EventPool) Add(tag string, data interface{}) { +func (p *EventPool) Add(tag string, data any) { p.Lock() defer p.Unlock() @@ -152,7 +152,7 @@ func (p *EventPool) Add(tag string, data interface{}) { } } -func (p *EventPool) Printf(format string, a ...interface{}) { +func (p *EventPool) Printf(format string, a ...any) { p.printLock.Lock() defer p.printLock.Unlock() @@ -162,7 +162,7 @@ func (p *EventPool) Printf(format string, a ...interface{}) { fmt.Printf(format, a...) } -func (p *EventPool) Log(level log.Verbosity, format string, args ...interface{}) { +func (p *EventPool) Log(level log.Verbosity, format string, args ...any) { if level == log.DEBUG && !p.debug { return } else if level < log.ERROR && p.silent { diff --git a/session/events_test.go b/session/events_test.go index b5649e22..b09c1ad6 100644 --- a/session/events_test.go +++ b/session/events_test.go @@ -10,7 +10,7 @@ func TestNewEvent(t *testing.T) { type args struct { tag string - data interface{} + data any } tests := []struct { name string @@ -259,7 +259,7 @@ func TestEventPool_Add(t *testing.T) { } type args struct { tag string - data interface{} + data any } tests := []struct { name string diff --git a/session/module.go b/session/module.go index 80daa120..e421f51b 100644 --- a/session/module.go +++ b/session/module.go @@ -21,7 +21,7 @@ type Module interface { Handlers() []ModuleHandler Parameters() map[string]*ModuleParam - Extra() map[string]interface{} + Extra() map[string]any Required() []string Running() bool Start() error @@ -65,9 +65,9 @@ func NewSessionModule(name string, s *Session) SessionModule { return m } -func (m *SessionModule) Extra() map[string]interface{} { - extra := make(map[string]interface{}) - m.State.Range(func(k, v interface{}) bool { +func (m *SessionModule) Extra() map[string]any { + extra := make(map[string]any) + m.State.Range(func(k, v any) bool { extra[k.(string)] = v return true }) @@ -81,33 +81,33 @@ func (m *SessionModule) InitState(keys ...string) { } func (m *SessionModule) ResetState() { - m.State.Range(func(k, v interface{}) bool { + m.State.Range(func(k, v any) bool { m.State.Store(k, nil) return true }) } -func (m *SessionModule) Debug(format string, args ...interface{}) { +func (m *SessionModule) Debug(format string, args ...any) { m.Session.Events.Log(log.DEBUG, m.tag+format, args...) } -func (m *SessionModule) Info(format string, args ...interface{}) { +func (m *SessionModule) Info(format string, args ...any) { m.Session.Events.Log(log.INFO, m.tag+format, args...) } -func (m *SessionModule) Warning(format string, args ...interface{}) { +func (m *SessionModule) Warning(format string, args ...any) { m.Session.Events.Log(log.WARNING, m.tag+format, args...) } -func (m *SessionModule) Error(format string, args ...interface{}) { +func (m *SessionModule) Error(format string, args ...any) { m.Session.Events.Log(log.ERROR, m.tag+format, args...) } -func (m *SessionModule) Fatal(format string, args ...interface{}) { +func (m *SessionModule) Fatal(format string, args ...any) { m.Session.Events.Log(log.FATAL, m.tag+format, args...) } -func (m *SessionModule) Printf(format string, a ...interface{}) { +func (m *SessionModule) Printf(format string, a ...any) { m.Session.Events.Printf(format, a...) } @@ -293,7 +293,7 @@ type moduleJSON struct { Parameters map[string]*ModuleParam `json:"parameters"` Handlers []ModuleHandler `json:"handlers"` Running bool `json:"running"` - State map[string]interface{} `json:"state"` + State map[string]any `json:"state"` } func (mm ModuleList) MarshalJSON() ([]byte, error) { diff --git a/session/module_param.go b/session/module_param.go index b11bbfaa..18f3e0ea 100644 --- a/session/module_param.go +++ b/session/module_param.go @@ -62,7 +62,7 @@ func NewDecimalParameter(name string, def_value string, desc string) *ModulePara return NewModuleParameter(name, def_value, FLOAT, `^[\-\+]?[\d]+(\.\d+)?$`, desc) } -func (p ModuleParam) validate(value string) (error, interface{}) { +func (p ModuleParam) validate(value string) (error, any) { if p.Validator != nil { if !p.Validator.MatchString(value) { return fmt.Errorf("Parameter %s not valid: '%s' does not match rule '%s'.", tui.Bold(p.Name), value, p.Validator.String()), nil @@ -119,8 +119,8 @@ func (p ModuleParam) parse(s *Session, v string) string { v = net.HardwareAddr(hw).String() default: // check the case - if m := ParamIfaceNameParser.FindStringSubmatch(v); len(m) == 2 { - // does it match any interface? + if m := ParamIfaceNameParser.FindStringSubmatch(v); len(m) == 2 { + // does it match any interface? name := m[1] if iface, err := net.InterfaceByName(name); err == nil { if addrs, err := iface.Addrs(); err == nil { @@ -159,7 +159,7 @@ func (p ModuleParam) getUnlocked(s *Session) string { return p.parse(s, v) } -func (p ModuleParam) Get(s *Session) (error, interface{}) { +func (p ModuleParam) Get(s *Session) (error, any) { _, v := s.Env.Get(p.Name) v = p.parse(s, v) return p.validate(v) diff --git a/session/script_builtin_runtime.go b/session/script_builtin_runtime.go index 04d02d56..d8f984be 100644 --- a/session/script_builtin_runtime.go +++ b/session/script_builtin_runtime.go @@ -83,7 +83,7 @@ func jsOnEventFunc(call otto.FunctionCall) otto.Value { if expr == "" || event.Tag == expr { // some objects don't do well with js, so convert them to a generic map // before passing them to the callback - var opaque interface{} + var opaque any if raw, err := json.Marshal(event); err != nil { I.Events.Log(log.ERROR, "error serializing event %s: %v", event.Tag, err) } else if err = json.Unmarshal(raw, &opaque); err != nil { @@ -208,7 +208,7 @@ func jsLoadJSONFunc(call otto.FunctionCall) otto.Value { return js.ReportError("loadJSON accepts one string argument") } - var obj interface{} + var obj any if fileName, err := fs.Expand(argv[0].String()); err != nil { return js.ReportError("can't expand '%s': %v", fileName, err) diff --git a/session/session.go b/session/session.go index df597b60..7ff43529 100644 --- a/session/session.go +++ b/session/session.go @@ -231,7 +231,7 @@ func (s *Session) Register(mod Module) error { func (s *Session) Start() error { var err error - network.Debug = func(format string, args ...interface{}) { + network.Debug = func(format string, args ...any) { s.Events.Log(log.DEBUG, format, args...) }