connection.go 665 B

123456789101112131415161718192021222324252627282930313233
  1. package udp
  2. import (
  3. "net"
  4. "v2ray.com/core/common"
  5. v2net "v2ray.com/core/common/net"
  6. "v2ray.com/core/transport/internet"
  7. )
  8. type Connection struct {
  9. net.UDPConn
  10. }
  11. func (v *Connection) Reusable() bool {
  12. return false
  13. }
  14. func (v *Connection) SetReusable(b bool) {}
  15. func init() {
  16. common.Must(internet.RegisterNetworkDialer(v2net.Network_UDP,
  17. func(src v2net.Address, dest v2net.Destination, options internet.DialerOptions) (internet.Connection, error) {
  18. conn, err := internet.DialSystem(src, dest)
  19. if err != nil {
  20. return nil, err
  21. }
  22. // TODO: handle dialer options
  23. return &Connection{
  24. UDPConn: *(conn.(*net.UDPConn)),
  25. }, nil
  26. }))
  27. }