server

package
v2.0.0-...-29d9702 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2020 License: MIT Imports: 40 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConfigurationWatcher

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

ConfigurationWatcher watches configuration changes.

func NewConfigurationWatcher

func NewConfigurationWatcher(
	routinesPool *safe.Pool,
	pvd provider.Provider,
	providersThrottleDuration time.Duration,
	defaultEntryPoints []string,
) *ConfigurationWatcher

NewConfigurationWatcher creates a new ConfigurationWatcher.

func (*ConfigurationWatcher) AddListener

func (c *ConfigurationWatcher) AddListener(listener func(dynamic.Configuration))

AddListener adds a new listener function used when new configuration is provided

func (*ConfigurationWatcher) Start

func (c *ConfigurationWatcher) Start()

Start the configuration watcher.

func (*ConfigurationWatcher) Stop

func (c *ConfigurationWatcher) Stop()

Stop the configuration watcher.

type RouterFactory

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

RouterFactory the factory of TCP/UDP routers.

func NewRouterFactory

func NewRouterFactory(staticConfiguration static.Configuration, managerFactory *service.ManagerFactory, tlsManager *tls.Manager, chainBuilder *middleware.ChainBuilder) *RouterFactory

NewRouterFactory creates a new RouterFactory

func (*RouterFactory) CreateRouters

func (f *RouterFactory) CreateRouters(conf dynamic.Configuration) (map[string]*tcpCore.Router, map[string]udpCore.Handler)

CreateRouters creates new TCPRouters and UDPRouters

type Server

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

Server is the reverse-proxy/load-balancer engine

func NewServer

func NewServer(routinesPool *safe.Pool, entryPoints TCPEntryPoints, entryPointsUDP UDPEntryPoints, watcher *ConfigurationWatcher,
	chainBuilder *middleware.ChainBuilder, accessLoggerMiddleware *accesslog.Handler) *Server

NewServer returns an initialized Server.

func (*Server) Close

func (s *Server) Close()

Close destroys the server

func (*Server) Start

func (s *Server) Start(ctx context.Context)

Start starts the server and Stop/Close it when context is Done

func (*Server) Stop

func (s *Server) Stop()

Stop stops the server

func (*Server) Wait

func (s *Server) Wait()

Wait blocks until the server shutdown.

type TCPEntryPoint

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

TCPEntryPoint is the TCP server

func NewTCPEntryPoint

func NewTCPEntryPoint(ctx context.Context, configuration *static.EntryPoint) (*TCPEntryPoint, error)

NewTCPEntryPoint creates a new TCPEntryPoint

func (*TCPEntryPoint) Shutdown

func (e *TCPEntryPoint) Shutdown(ctx context.Context)

Shutdown stops the TCP connections

func (*TCPEntryPoint) Start

func (e *TCPEntryPoint) Start(ctx context.Context)

Start starts the TCP server.

func (*TCPEntryPoint) SwitchRouter

func (e *TCPEntryPoint) SwitchRouter(rt *tcp.Router)

SwitchRouter switches the TCP router handler.

type TCPEntryPoints

type TCPEntryPoints map[string]*TCPEntryPoint

TCPEntryPoints holds a map of TCPEntryPoint (the entrypoint names being the keys)

func NewTCPEntryPoints

func NewTCPEntryPoints(entryPointsConfig static.EntryPoints) (TCPEntryPoints, error)

NewTCPEntryPoints creates a new TCPEntryPoints.

func (TCPEntryPoints) Start

func (eps TCPEntryPoints) Start()

Start the server entry points.

func (TCPEntryPoints) Stop

func (eps TCPEntryPoints) Stop()

Stop the server entry points.

func (TCPEntryPoints) Switch

func (eps TCPEntryPoints) Switch(routersTCP map[string]*tcp.Router)

Switch the TCP routers.

type UDPEntryPoint

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

UDPEntryPoint is an entry point where we listen for UDP packets.

func NewUDPEntryPoint

func NewUDPEntryPoint(cfg *static.EntryPoint) (*UDPEntryPoint, error)

NewUDPEntryPoint returns a UDP entry point.

func (*UDPEntryPoint) Shutdown

func (ep *UDPEntryPoint) Shutdown(ctx context.Context)

Shutdown closes ep's listener. It eventually closes all "sessions" and releases associated resources, but only after it has waited for a graceTimeout, if any was configured.

func (*UDPEntryPoint) Start

func (ep *UDPEntryPoint) Start(ctx context.Context)

Start commences the listening for ep.

func (*UDPEntryPoint) Switch

func (ep *UDPEntryPoint) Switch(handler udp.Handler)

Switch replaces ep's handler with the one given as argument.

type UDPEntryPoints

type UDPEntryPoints map[string]*UDPEntryPoint

UDPEntryPoints maps UDP entry points by their names.

func NewUDPEntryPoints

func NewUDPEntryPoints(cfg static.EntryPoints) (UDPEntryPoints, error)

NewUDPEntryPoints returns all the UDP entry points, keyed by name.

func (UDPEntryPoints) Start

func (eps UDPEntryPoints) Start()

Start commences the listening for all the entry points.

func (UDPEntryPoints) Stop

func (eps UDPEntryPoints) Stop()

Stop makes all the entry points stop listening, and release associated resources.

func (UDPEntryPoints) Switch

func (eps UDPEntryPoints) Switch(handlers map[string]udp.Handler)

Switch swaps out all the given handlers in their associated entrypoints.

Directories

Path Synopsis
tcp
udp
tcp
udp

Jump to

Keyboard shortcuts

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