From c9cc78f9b34907908daf87d0d45672b0859579c6 Mon Sep 17 00:00:00 2001 From: Lars Lehtonen Date: Mon, 25 Nov 2019 03:08:21 -0800 Subject: [PATCH] session: ModuleParam.Get() swap error return session: ModuleParam.validate() swap error return session: fix calling functions to adjust to swapped returns wifi: fix calling functions to adjust to swapped returns --- modules/wifi/wifi.go | 6 +++--- session/module.go | 8 ++++---- session/module_param.go | 20 +++++++++----------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/modules/wifi/wifi.go b/modules/wifi/wifi.go index f1353492..a1e5f220 100644 --- a/modules/wifi/wifi.go +++ b/modules/wifi/wifi.go @@ -172,7 +172,7 @@ func NewWiFiModule(s *session.Session) *WiFiModule { "Minimum WiFi signal strength in dBm.") mod.AddObservableParam(minRSSI, func(v string) { - if err, v := minRSSI.Get(s); err != nil { + if v, err := minRSSI.Get(s); err != nil { mod.Error("%v", err) } else if mod.minRSSI = v.(int); mod.Started { mod.Info("wifi.rssi.min set to %d", mod.minRSSI) @@ -231,7 +231,7 @@ func NewWiFiModule(s *session.Session) *WiFiModule { "Seconds of inactivity for an access points to be considered not in range anymore.") mod.AddObservableParam(apTTL, func(v string) { - if err, v := apTTL.Get(s); err != nil { + if v, err := apTTL.Get(s); err != nil { mod.Error("%v", err) } else if mod.apTTL = v.(int); mod.Started { mod.Info("wifi.ap.ttl set to %d", mod.apTTL) @@ -243,7 +243,7 @@ func NewWiFiModule(s *session.Session) *WiFiModule { "Seconds of inactivity for a client station to be considered not in range or not connected to its access point anymore.") mod.AddObservableParam(staTTL, func(v string) { - if err, v := staTTL.Get(s); err != nil { + if v, err := staTTL.Get(s); err != nil { mod.Error("%v", err) } else if mod.staTTL = v.(int); mod.Started { mod.Info("wifi.sta.ttl set to %d", mod.staTTL) diff --git a/session/module.go b/session/module.go index 857a90a9..1b5cd62a 100644 --- a/session/module.go +++ b/session/module.go @@ -171,7 +171,7 @@ func (m SessionModule) ListParam(name string) (err error, values []string) { func (m SessionModule) StringParam(name string) (error, string) { if p, found := m.params[name]; found { - if err, v := p.Get(m.Session); err != nil { + if v, err := p.Get(m.Session); err != nil { return err, "" } else { return nil, v.(string) @@ -191,7 +191,7 @@ func (m SessionModule) IPParam(name string) (error, net.IP) { func (m SessionModule) IntParam(name string) (error, int) { if p, found := m.params[name]; found { - if err, v := p.Get(m.Session); err != nil { + if v, err := p.Get(m.Session); err != nil { return err, 0 } else { return nil, v.(int) @@ -204,7 +204,7 @@ func (m SessionModule) IntParam(name string) (error, int) { func (m SessionModule) DecParam(name string) (error, float64) { if p, found := m.params[name]; found { - if err, v := p.Get(m.Session); err != nil { + if v, err := p.Get(m.Session); err != nil { return err, 0 } else { return nil, v.(float64) @@ -216,7 +216,7 @@ func (m SessionModule) DecParam(name string) (error, float64) { } func (m SessionModule) BoolParam(name string) (error, bool) { - if err, v := m.params[name].Get(m.Session); err != nil { + if v, err := m.params[name].Get(m.Session); err != nil { return err, false } else { return nil, v.(bool) diff --git a/session/module_param.go b/session/module_param.go index 43aaeaa3..6cc765a7 100644 --- a/session/module_param.go +++ b/session/module_param.go @@ -62,34 +62,32 @@ 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) (interface{}, error) { 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 + return nil, fmt.Errorf("Parameter %s not valid: '%s' does not match rule '%s'.", tui.Bold(p.Name), value, p.Validator.String()) } } switch p.Type { case STRING: - return nil, value + return value, nil case BOOL: lvalue := strings.ToLower(value) if lvalue == "true" { - return nil, true + return true, nil } else if lvalue == "false" { - return nil, false + return false, nil } else { return fmt.Errorf("Can't typecast '%s' to boolean.", value), nil } case INT: - i, err := strconv.Atoi(value) - return err, i + return strconv.Atoi(value) case FLOAT: - i, err := strconv.ParseFloat(value, 64) - return err, i + return strconv.ParseFloat(value, 64) } - return fmt.Errorf("Unhandled module parameter type %d.", p.Type), nil + return nil, fmt.Errorf("Unhandled module parameter type %d.", p.Type) } const ParamIfaceName = "" @@ -122,7 +120,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) (interface{}, error) { _, v := s.Env.Get(p.Name) v = p.parse(s, v) return p.validate(v)