noop.go 818 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package noop
  2. import (
  3. "context"
  4. "net"
  5. "v2ray.com/core/common"
  6. )
  7. type NoOpHeader struct{}
  8. func (NoOpHeader) Size() int {
  9. return 0
  10. }
  11. // Write implements io.Writer.
  12. func (NoOpHeader) Write([]byte) (int, error) {
  13. return 0, nil
  14. }
  15. func NewNoOpHeader(context.Context, interface{}) (interface{}, error) {
  16. return NoOpHeader{}, nil
  17. }
  18. type NoOpConnectionHeader struct{}
  19. func (NoOpConnectionHeader) Client(conn net.Conn) net.Conn {
  20. return conn
  21. }
  22. func (NoOpConnectionHeader) Server(conn net.Conn) net.Conn {
  23. return conn
  24. }
  25. func NewNoOpConnectionHeader(context.Context, interface{}) (interface{}, error) {
  26. return NoOpConnectionHeader{}, nil
  27. }
  28. func init() {
  29. common.Must(common.RegisterConfig((*Config)(nil), NewNoOpHeader))
  30. common.Must(common.RegisterConfig((*ConnectionConfig)(nil), NewNoOpConnectionHeader))
  31. }