new: events.stream.filter parameter.

This commit is contained in:
evilsocket 2018-01-09 14:43:33 +01:00
commit 72b80346ad

View file

@ -2,6 +2,7 @@ package modules
import (
"fmt"
"strings"
"github.com/evilsocket/bettercap-ng/core"
"github.com/evilsocket/bettercap-ng/session"
@ -18,6 +19,11 @@ func NewEventsStream(s *session.Session) *EventsStream {
quit: make(chan bool),
}
stream.AddParam(session.NewStringParameter("events.stream.filter",
"",
"",
"If filled, filter events by this prefix type."))
stream.AddHandler(session.NewModuleHandler("events.stream on", "",
"Start events stream.",
func(args []string) error {
@ -54,6 +60,14 @@ func (s EventsStream) Author() string {
func (s *EventsStream) Start() error {
if s.Running() == false {
filter := ""
if err, v := s.Param("events.stream.filter").Get(s.Session); err != nil {
return err
} else {
filter = v.(string)
}
s.SetRunning(true)
go func() {
@ -61,15 +75,17 @@ func (s *EventsStream) Start() error {
var e session.Event
select {
case e = <-s.Session.Events.NewEvents:
tm := e.Time.Format("2006-01-02 15:04:05")
if filter == "" || strings.Contains(e.Tag, filter) {
tm := e.Time.Format("2006-01-02 15:04:05")
if e.Tag == "sys.log" {
fmt.Printf("[%s] [%s] %s %v\n", tm, core.Green(e.Tag), e.Label(), e.Data.(session.LogMessage).Message)
} else {
fmt.Printf("[%s] [%s] %v\n", tm, core.Green(e.Tag), e.Data)
if e.Tag == "sys.log" {
fmt.Printf("[%s] [%s] %s %v\n", tm, core.Green(e.Tag), e.Label(), e.Data.(session.LogMessage).Message)
} else {
fmt.Printf("[%s] [%s] %v\n", tm, core.Green(e.Tag), e.Data)
}
s.Session.Input.Refresh()
}
s.Session.Input.Refresh()
break
case <-s.quit: