networking

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2020 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Version string = "0.1"
)

Version

Variables

View Source
var (
	ErrRateLimit = errors.New("RateLimitReached")

	DefaultPeerRequestPerSecond = ratelimiter.RateLimitInfo{
		Limit: redis_rate.Limit{
			Period: time.Second,
			Rate:   100,
			Burst:  100,
		},
		KeyPrefix: "PeerRequest",
	}
)
View Source
var (
	ErrNetworkingInternalError = errors.New("Networking Internal Error")
)
View Source
var (
	StatsMiddleware = stats.New()
)

Functions

func AppendRequestLog

func AppendRequestLog(log *logrus.Entry, r *http.Request) *logrus.Entry

func CreateCorsOptions

func CreateCorsOptions(corsAllowedOrigins []string) *cors.Cors

func GetRequestLog

func GetRequestLog(ctx context.Context, r *http.Request) *logrus.Entry

func GetServiceRequestLog

func GetServiceRequestLog(log *logrus.Entry, r *http.Request, service, operation string) *logrus.Entry

func MiddlewarePeerRateLimiter

func MiddlewarePeerRateLimiter(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc)

MiddlewarePeerRateLimiter return StatusTooManyRequests if rate limite is reached

func RegisterRateLimiter

func RegisterRateLimiter(ctx context.Context, rateLimit ratelimiter.RateLimitInfo) context.Context

func RequesterIP

func RequesterIP(r *http.Request) string

Types

type StatsArgs

type StatsArgs struct {
}

type StatsReply

type StatsReply struct {
	Application string      `json:"application"`
	Version     string      `json:"version"`
	Host        string      `json:"host"`
	Statistics  *stats.Data `json:"statistics"`
}

type StatsService

type StatsService int

func (*StatsService) Status

func (t *StatsService) Status(r *http.Request, args *StatsArgs, result *StatsReply) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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