35 lines
527 B
Go
35 lines
527 B
Go
|
package config
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
"github.com/oleiade/reflections"
|
||
|
"github.com/pkg/errors"
|
||
|
)
|
||
|
|
||
|
var err error
|
||
|
|
||
|
func (c *SshdConf) Validate() (bool, error) {
|
||
|
for k, v := range validSshdSingleVals {
|
||
|
realV, err := reflections.GetField(c, k)
|
||
|
if err != nil {
|
||
|
return false, err
|
||
|
}
|
||
|
valid := false
|
||
|
for _, i := range v {
|
||
|
if i == realV {
|
||
|
valid = true
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
if !valid {
|
||
|
e := fmt.Sprintf(
|
||
|
"field %v value %v is not allowed",
|
||
|
k, realV)
|
||
|
return false, errors.New(e)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return true, nil
|
||
|
}
|