mirror of
https://github.com/bettercap/bettercap
synced 2025-08-14 02:36:57 -07:00
Merge 08aa2b3896
into 948756208a
This commit is contained in:
commit
ef201ac6a3
39 changed files with 250 additions and 257 deletions
1
go.mod
1
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
|
||||
|
|
7
go.sum
7
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=
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
12
log/log.go
12
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...)
|
||||
}
|
||||
|
|
|
@ -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
|
||||
})
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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...)
|
||||
}
|
||||
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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...")
|
||||
|
|
|
@ -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
|
||||
|
@ -281,12 +281,12 @@ func (mod *Discovery) showMeta(arg string) (err error) {
|
|||
}
|
||||
|
||||
colNames := []string{"Name", "Value"}
|
||||
any := false
|
||||
isAny := false
|
||||
|
||||
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)
|
||||
})
|
||||
|
||||
|
@ -326,12 +326,12 @@ func (mod *Discovery) showMeta(arg string) (err error) {
|
|||
})
|
||||
}
|
||||
|
||||
any = true
|
||||
isAny = true
|
||||
tui.Table(mod.Session.Events.Stdout, colNames, rows)
|
||||
}
|
||||
}
|
||||
|
||||
if any {
|
||||
if isAny {
|
||||
mod.Session.Refresh()
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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) {
|
||||
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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])},
|
||||
|
|
|
@ -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},
|
||||
|
|
|
@ -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"},
|
||||
}
|
||||
|
|
|
@ -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
|
||||
})
|
||||
|
|
|
@ -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)},
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 <iface> 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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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...)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue