header.go 461 B

1234567891011121314151617181920212223242526
  1. package internet
  2. import (
  3. "context"
  4. "errors"
  5. "v2ray.com/core/common"
  6. )
  7. type PacketHeader interface {
  8. Size() int
  9. Write([]byte) (int, error)
  10. }
  11. func CreatePacketHeader(config interface{}) (PacketHeader, error) {
  12. header, err := common.CreateObject(context.Background(), config)
  13. if err != nil {
  14. return nil, err
  15. }
  16. switch h := header.(type) {
  17. case PacketHeader:
  18. return h, nil
  19. default:
  20. return nil, errors.New("Internet: Not a packet header.")
  21. }
  22. }