refactored module parsing to make intuitive sense

This commit is contained in:
Alex 2017-10-03 22:47:58 -04:00
parent b7f50acf5d
commit 5c36a4d11d
5 changed files with 20 additions and 9 deletions

@ -12,8 +12,8 @@ import (
)
func main() {
_, modType, fl, err := zgrab2.ParseCommandLine(os.Args[1:])
if err != nil { //blanked arg is positional arguments
_, modType, fl, err := zgrab2.ParseCommandLine(os.Args[1:]) // Blanked arg is positional arguments
if err != nil {
// Outputting help is returned as an error. Exit successfuly on help output.
flagsErr, ok := err.(*flags.Error)
if ok && flagsErr.Type == flags.ErrHelp {
@ -27,14 +27,26 @@ func main() {
if modType == "multiple" {
iniParser := zgrab2.NewIniParser()
m, _ := fl.(*zgrab2.MultipleCommand)
var modTypes []string
var flagsReturned []interface{}
if m.ConfigFileName == "-" {
err = iniParser.Parse(os.Stdin)
modTypes, flagsReturned, err = iniParser.Parse(os.Stdin)
} else {
err = iniParser.ParseFile(m.ConfigFileName)
modTypes, flagsReturned, err = iniParser.ParseFile(m.ConfigFileName)
}
if err != nil {
log.Fatalf("could not parse multiple: %s", err)
}
if len(modTypes) != len(flagsReturned) {
log.Fatalf("error parsing flags")
}
for i, flag := range flagsReturned {
f, _ := flag.(zgrab2.ScanFlags)
mod := *zgrab2.GetModule(modTypes[i])
s := mod.NewScanner()
s.Init(f)
zgrab2.RegisterScan(s.GetName(), s)
}
} else {
f, _ := fl.(zgrab2.ScanFlags)
mod := *zgrab2.GetModule(modType)
@ -42,7 +54,6 @@ func main() {
s.Init(f)
zgrab2.RegisterScan(modType, s)
}
zgrab2.PrintScanners()
m := zgrab2.MakeMonitor()
start := time.Now()
log.Infof("started grab at %s", start.Format(time.RFC3339))

@ -66,7 +66,7 @@ func init() {
func RegisterScan(name string, s Scanner) {
//add to list and map
if scanners[name] != nil {
log.Fatal("name already used")
log.Fatalf("name: %s already used", name)
}
orderedScanners = append(orderedScanners, name)
scanners[name] = &s

@ -85,7 +85,7 @@ func (s *HTTPScanner) InitPerSender(senderID int) error {
}
func (s *HTTPScanner) GetName() string {
return ""
return s.config.Name
}
func (s *HTTPScanner) Scan(t zgrab2.ScanTarget, port uint) (interface{}, error) {

@ -55,7 +55,7 @@ func (s *SSHScanner) InitPerSender(senderID int) error {
}
func (s *SSHScanner) GetName() string {
return ""
return s.config.Name
}
func (s *SSHScanner) Scan(t zgrab2.ScanTarget, port uint) (interface{}, error) {
return nil, nil

@ -56,7 +56,7 @@ func (s *TLSScanner) Init(flags zgrab2.ScanFlags) error {
}
func (s *TLSScanner) GetName() string {
return ""
return s.config.Name
}
func (s *TLSScanner) InitPerSender(senderID int) error {