server

package
v0.0.0-...-8016c1d Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2018 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RegOnlyAlphabetNumber = regexp.MustCompile("^[a-zA-Z0-9]+$")

Functions

This section is empty.

Types

type Addr

type Addr struct {
	IP net.IP

	Counter  int
	LastTime time.Time

	Blocked     bool
	BlockedTime time.Time
}

type AuthHandler

type AuthHandler struct {
	Token   string
	Limiter *Limiter
}

func (*AuthHandler) Auth

func (hand *AuthHandler) Auth(rw mimi.Render, req *http.Request) (bool, error)

type Cmder

type Cmder struct {
	WorkingDir string
	// contains filtered or unexported fields
}

func (*Cmder) Close

func (cmder *Cmder) Close()

func (*Cmder) Line

func (cmder *Cmder) Line() (string, bool)

func (*Cmder) Send

func (cmder *Cmder) Send(str string)

func (*Cmder) Start

func (cmder *Cmder) Start(program string, param ...string) error

type Console

type Console struct {
	UUID  uuid.UUID
	Cmder *Cmder

	Logs *LogStacker
	// contains filtered or unexported fields
}

func StartConsole

func StartConsole(loader Loader) (*Console, error)

func (*Console) Close

func (con *Console) Close()

func (*Console) Closed

func (con *Console) Closed() bool

func (*Console) Lines

func (con *Console) Lines(t *LogTracker) []string

func (*Console) SendCommand

func (con *Console) SendCommand(cmd string)

type ConsoleManager

type ConsoleManager struct {
	Consoles map[uuid.UUID]*Console
}

func (*ConsoleManager) Add

func (cm *ConsoleManager) Add(con *Console)

func (*ConsoleManager) Get

func (cm *ConsoleManager) Get(uid uuid.UUID) (*Console, bool)

func (*ConsoleManager) NewConsole

func (cm *ConsoleManager) NewConsole(loader Loader) (*Console, error)

func (*ConsoleManager) Start

func (cm *ConsoleManager) Start(ctx context.Context)

type Limiter

type Limiter struct {
	Addrs       []*Addr
	BlockExpire time.Duration

	MaxCount int
	// contains filtered or unexported fields
}

func (*Limiter) AddAddr

func (hand *Limiter) AddAddr(ip net.IP)

func (*Limiter) Check

func (hand *Limiter) Check(ip net.IP) (bool, error)

func (*Limiter) HasAddr

func (hand *Limiter) HasAddr(ip net.IP) bool

func (*Limiter) IsBlocked

func (hand *Limiter) IsBlocked(ip net.IP) bool

func (*Limiter) SetBlock

func (hand *Limiter) SetBlock(ip net.IP, b bool)

func (*Limiter) Update

func (hand *Limiter) Update()

type Loader

type Loader interface {
	Name() string
	Path() string
	Cmd() (string, []string)

	Init(path string, options map[string]string) error

	New() Loader
}

type LoaderManager

type LoaderManager struct {
	Loaders map[string]Loader
}

func (*LoaderManager) Add

func (lm *LoaderManager) Add(loader Loader)

func (*LoaderManager) Get

func (lm *LoaderManager) Get(name string) (Loader, bool)

func (*LoaderManager) Remove

func (lm *LoaderManager) Remove(name string)

type LogStacker

type LogStacker struct {
	// contains filtered or unexported fields
}

func NewLogStacker

func NewLogStacker(n int) *LogStacker

func (*LogStacker) Add

func (st *LogStacker) Add(str string)

func (*LogStacker) AddTracker

func (st *LogStacker) AddTracker(t *LogTracker)

func (*LogStacker) AllChanges

func (st *LogStacker) AllChanges(t *LogTracker) []string

func (*LogStacker) Changes

func (st *LogStacker) Changes(n int, t *LogTracker) []string

func (*LogStacker) Get

func (st *LogStacker) Get(n int) []string

func (*LogStacker) RemoveTracker

func (st *LogStacker) RemoveTracker(t *LogTracker)

type LogTracker

type LogTracker struct {
	ChangeCounter int
	// contains filtered or unexported fields
}

func NewLogTracker

func NewLogTracker() *LogTracker

type PMMPLoader

type PMMPLoader struct {
	PHPPath  string
	MainPath string
	Args     []string
	// contains filtered or unexported fields
}

func (*PMMPLoader) Cmd

func (loader *PMMPLoader) Cmd() (string, []string)

func (*PMMPLoader) Init

func (loader *PMMPLoader) Init(path string, options map[string]string) (err error)

func (PMMPLoader) Name

func (PMMPLoader) Name() string

func (PMMPLoader) New

func (PMMPLoader) New() Loader

func (*PMMPLoader) Path

func (loader *PMMPLoader) Path() string

func (*PMMPLoader) Program

func (loader *PMMPLoader) Program() string

func (*PMMPLoader) Target

func (loader *PMMPLoader) Target() string

type Program

type Program struct {
	Name   string
	Loader Loader
}

type ProgramManager

type ProgramManager struct {
	Programs map[string]*Program
}

func NewProgramManager

func NewProgramManager(lm *LoaderManager, programs []config.ProgramConfig) (*ProgramManager, error)

func (*ProgramManager) Add

func (pm *ProgramManager) Add(p *Program)

func (*ProgramManager) Get

func (pm *ProgramManager) Get(name string) (*Program, bool)

func (*ProgramManager) Remove

func (pm *ProgramManager) Remove(name string)

type Server

type Server struct {
	Config config.Config
}

func StartServer

func StartServer(conf config.Config) (*Server, error)

type ServerSession

type ServerSession struct {
	mimi.BaseSession
	// contains filtered or unexported fields
}

func (*ServerSession) HasJoined

func (session *ServerSession) HasJoined() bool

func (*ServerSession) JoinConsole

func (session *ServerSession) JoinConsole(con *Console) error

func (*ServerSession) QuitConsole

func (session *ServerSession) QuitConsole() error

func (*ServerSession) Update

func (session *ServerSession) Update(handlers []mimi.PacketHandler)

type ServerSessionHandler

type ServerSessionHandler struct {
	ProgramManager *ProgramManager
	ConsoleManager *ConsoleManager
	Console        *Console
	IngoreProtocol bool
}

func (*ServerSessionHandler) HandlePacket

func (sp *ServerSessionHandler) HandlePacket(session mimi.Session, pk pks.Packet)

type SessionManager

type SessionManager struct {
	Handlers []mimi.PacketHandler
	// contains filtered or unexported fields
}

func (*SessionManager) NewSession

func (sm *SessionManager) NewSession(conn *websocket.Conn) error

func (*SessionManager) SendPacket

func (sm *SessionManager) SendPacket(uid uuid.UUID, pk pks.Packet) error

func (*SessionManager) SendPacketAll

func (sm *SessionManager) SendPacketAll(pk pks.Packet) (err error)

func (*SessionManager) Start

func (sm *SessionManager) Start(ctx context.Context)

type StreamHandler

type StreamHandler struct {
	Auth    *AuthHandler
	Manager *SessionManager
}

func (*StreamHandler) ServeHTTP

func (hand *StreamHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request)

Jump to

Keyboard shortcuts

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