srv

package
v0.0.0-...-1ca2a29 Latest Latest
Warning

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

Go to latest
Published: May 23, 2017 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CopyRequestHeaders

func CopyRequestHeaders(r *http.Request, dst *http.Request)

func CopyResponseHeaders

func CopyResponseHeaders(w http.ResponseWriter, src *http.Response)

func CustomErrorResponse

func CustomErrorResponse(w http.ResponseWriter, statusCode int, vars map[string]string)

func DumpGoroutinesStackTrace

func DumpGoroutinesStackTrace(pid int)

func GetVars

func GetVars(r *http.Request) map[string]string

func LogPanics

func LogPanics(logger LowLevelLogger, msg string)

func NewRouter

func NewRouter() *router

func RetryListen

func RetryListen(ip string, port int) (net.Listener, error)

func RunDaemon

func RunDaemon(GetDaemon func(conf.Config, *flag.FlagSet) (Daemon, LowLevelLogger, error), flags *flag.FlagSet)

func RunServers

func RunServers(GetServer func(conf.Config, *flag.FlagSet) (string, int, Server, LowLevelLogger, error), flags *flag.FlagSet)

SIGINT - graceful shutdown SIGTERM, SIGQUIT - immediate shutdown SIGABRT - dump goroutines stacktrace

Graceful shutdown/restart gives any open connections 5 minutes to complete, then exits.

func SetLogger

func SetLogger(r *http.Request, l LowLevelLogger) *http.Request

func SetVars

func SetVars(r *http.Request, v map[string]string) *http.Request

func ShutdownStdio

func ShutdownStdio()

func SimpleErrorResponse

func SimpleErrorResponse(w http.ResponseWriter, statusCode int, body string)

func Split2

func Split2(path string, sep string) (string, string)

Split a string in twain on sep. Doing it this way over strings.Split*() saves allocating a slice.

func StandardResponse

func StandardResponse(w http.ResponseWriter, statusCode int)

func ValidateRequest

func ValidateRequest(r *http.Request) bool

Types

type Daemon

type Daemon interface {
	Run()
	RunForever()
}

type HummingbirdServer

type HummingbirdServer struct {
	http.Server
	Listener net.Listener
	// contains filtered or unexported fields
}

type KeyType

type KeyType int

type LowLevelLogger

type LowLevelLogger interface {
	Error(msg string, fields ...zapcore.Field)
	Info(msg string, fields ...zapcore.Field)
	Debug(msg string, fields ...zapcore.Field)
	With(fields ...zapcore.Field) *zap.Logger
}

func GetLogger

func GetLogger(r *http.Request) LowLevelLogger

func SetupLogger

func SetupLogger(prefix string, atomicLevel *zap.AtomicLevel, flags *flag.FlagSet, logPath string) (LowLevelLogger, error)

SetupLogger configures structured logging using uber's zap library.

type Server

type Server interface {
	GetHandler(conf.Config) http.Handler
	Finalize() // This is called before stoping gracefully so that a server can clean up before closing
}

type WebWriter

type WebWriter struct {
	http.ResponseWriter
	Status          int
	ResponseStarted bool
}

func (WebWriter) Hijack

func (w WebWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)

func (*WebWriter) Response

func (w *WebWriter) Response() (bool, int)

func (*WebWriter) WriteHeader

func (w *WebWriter) WriteHeader(status int)

type WebWriterInterface

type WebWriterInterface interface {
	http.ResponseWriter
	Response() (bool, int)
}

Jump to

Keyboard shortcuts

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