proxyman.go 607 B

12345678910111213141516171819202122232425
  1. // Package proxyman defines applications for manageing inbound and outbound proxies.
  2. package proxyman
  3. //go:generate go run $GOPATH/src/v2ray.com/core/common/errors/errorgen/main.go -pkg proxyman -path App,Proxyman
  4. import (
  5. "context"
  6. )
  7. type key int
  8. const (
  9. protocolsKey key = iota
  10. )
  11. func ContextWithProtocolSniffers(ctx context.Context, list []KnownProtocols) context.Context {
  12. return context.WithValue(ctx, protocolsKey, list)
  13. }
  14. func ProtocolSniffersFromContext(ctx context.Context) []KnownProtocols {
  15. if list, ok := ctx.Value(protocolsKey).([]KnownProtocols); ok {
  16. return list
  17. }
  18. return nil
  19. }