session

package
v0.0.0-...-626b81c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2018 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DEBUG = iota
	INFO
	IMPORTANT
	WARNING
	ERROR
	FATAL
)
View Source
const (
	BOLD = "\033[1m"
	DIM  = "\033[2m"

	FG_BLACK = "\033[30m"
	FG_WHITE = "\033[97m"

	BG_DGRAY  = "\033[100m"
	BG_RED    = "\033[41m"
	BG_GREEN  = "\033[42m"
	BG_YELLOW = "\033[43m"
	BG_LBLUE  = "\033[104m"

	RESET = "\033[0m"
)
View Source
const (
	STRING ParamType = iota
	BOOL             = iota
	INT              = iota
)

Variables

View Source
var (
	I = (*Session)(nil)
)

Functions

This section is empty.

Types

type CommandHandler

type CommandHandler struct {
	Name        string
	Description string
	Parser      *regexp.Regexp
	Exec        func(args []string, s *Session) error
}

func NewCommandHandler

func NewCommandHandler(name string, expr string, desc string, exec func(args []string, s *Session) error) CommandHandler

func (*CommandHandler) Parse

func (h *CommandHandler) Parse(line string) (bool, []string)

type Environment

type Environment struct {
	Padding int               `json:"-"`
	Storage map[string]string `json:"storage"`
	// contains filtered or unexported fields
}

func NewEnvironment

func NewEnvironment(s *Session) *Environment

func (*Environment) Get

func (env *Environment) Get(name string) (bool, string)

func (*Environment) GetInt

func (env *Environment) GetInt(name string) (error, int)

func (*Environment) Has

func (env *Environment) Has(name string) bool

func (*Environment) Set

func (env *Environment) Set(name, value string) string

func (*Environment) Sorted

func (env *Environment) Sorted() []string

type Event

type Event struct {
	Tag  string      `json:"tag"`
	Time time.Time   `json:"time"`
	Data interface{} `json:"data"`
}

func NewEvent

func NewEvent(tag string, data interface{}) Event

func (Event) Label

func (e Event) Label() string

type EventPool

type EventPool struct {
	NewEvents chan Event
	// contains filtered or unexported fields
}

func NewEventPool

func NewEventPool(debug bool, silent bool) *EventPool

func (*EventPool) Add

func (p *EventPool) Add(tag string, data interface{})

func (*EventPool) Clear

func (p *EventPool) Clear()

func (*EventPool) Events

func (p *EventPool) Events() []Event

func (*EventPool) Log

func (p *EventPool) Log(level int, format string, args ...interface{})

type LogMessage

type LogMessage struct {
	Level   int
	Message string
}

type Module

type Module interface {
	Name() string
	Description() string
	Author() string
	Handlers() []ModuleHandler
	Parameters() map[string]*ModuleParam

	Running() bool
	Start() error
	Stop() error

	OnSessionStarted(s *Session)
	OnSessionEnded(s *Session)
}

type ModuleHandler

type ModuleHandler struct {
	Name        string
	Description string
	Parser      *regexp.Regexp
	Exec        func(args []string) error
}

func NewModuleHandler

func NewModuleHandler(name string, expr string, desc string, exec func(args []string) error) ModuleHandler

func (*ModuleHandler) Help

func (h *ModuleHandler) Help(padding int) string

func (*ModuleHandler) Parse

func (h *ModuleHandler) Parse(line string) (bool, []string)

type ModuleParam

type ModuleParam struct {
	Name        string
	Type        ParamType
	Value       string
	Description string

	Validator *regexp.Regexp
}

func NewBoolParameter

func NewBoolParameter(name string, def_value string, desc string) *ModuleParam

func NewIntParameter

func NewIntParameter(name string, def_value string, desc string) *ModuleParam

func NewModuleParameter

func NewModuleParameter(name string, def_value string, t ParamType, validator string, desc string) *ModuleParam

func NewStringParameter

func NewStringParameter(name string, def_value string, validator string, desc string) *ModuleParam

func (ModuleParam) Get

func (p ModuleParam) Get(s *Session) (error, interface{})

func (ModuleParam) Help

func (p ModuleParam) Help(padding int) string

func (ModuleParam) Register

func (p ModuleParam) Register(s *Session)

func (ModuleParam) Validate

func (p ModuleParam) Validate(value string) (error, interface{})

type ParamType

type ParamType int

type Session

type Session struct {
	Options   core.Options             `json:"options"`
	Interface *net.Endpoint            `json:"interface"`
	Gateway   *net.Endpoint            `json:"gateway"`
	Firewall  firewall.FirewallManager `json:"-"`
	Env       *Environment             `json:"env"`
	Targets   *Targets                 `json:"targets"`
	Queue     *packets.Queue           `json:"-"`
	Input     *readline.Instance       `json:"-"`
	Active    bool                     `json:"active"`

	CoreHandlers []CommandHandler `json:"-"`
	Modules      []Module         `json:"-"`
	HelpPadding  int              `json:"-"`

	Events *EventPool `json:"-"`
}

func New

func New() (*Session, error)

func (*Session) Close

func (s *Session) Close()

func (*Session) ReadLine

func (s *Session) ReadLine() (string, error)

func (*Session) Register

func (s *Session) Register(mod Module) error

func (*Session) Run

func (s *Session) Run(line string) error

func (*Session) RunCaplet

func (s *Session) RunCaplet(filename string) error

func (*Session) Start

func (s *Session) Start() error

type SessionModule

type SessionModule struct {
	Name       string      `json:"name"`
	Session    *Session    `json:"-"`
	Started    bool        `json:"started"`
	StatusLock *sync.Mutex `json:"-"`
	// contains filtered or unexported fields
}

func NewSessionModule

func NewSessionModule(name string, s *Session) SessionModule

func (*SessionModule) AddHandler

func (m *SessionModule) AddHandler(h ModuleHandler)

func (*SessionModule) AddParam

func (m *SessionModule) AddParam(p *ModuleParam)

func (*SessionModule) Handlers

func (m *SessionModule) Handlers() []ModuleHandler

func (*SessionModule) OnSessionStarted

func (m *SessionModule) OnSessionStarted(s *Session)

func (*SessionModule) Param

func (m *SessionModule) Param(name string) *ModuleParam

func (*SessionModule) Parameters

func (m *SessionModule) Parameters() map[string]*ModuleParam

func (*SessionModule) Running

func (m *SessionModule) Running() bool

func (*SessionModule) SetRunning

func (m *SessionModule) SetRunning(running bool)

type Targets

type Targets struct {
	Session   *Session `json:"-"`
	Interface *net.Endpoint
	Gateway   *net.Endpoint
	Targets   map[string]*net.Endpoint
	// contains filtered or unexported fields
}

func NewTargets

func NewTargets(s *Session, iface, gateway *net.Endpoint) *Targets

func (*Targets) AddIfNotExist

func (tp *Targets) AddIfNotExist(ip, mac string) *net.Endpoint

func (*Targets) Dump

func (tp *Targets) Dump()

func (*Targets) Has

func (tp *Targets) Has(ip string) bool

func (*Targets) Remove

func (tp *Targets) Remove(ip, mac string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL