socks5_udp.go 474 B

1234567891011121314151617181920212223242526
  1. package handler
  2. import "ehang.io/nps/lib/enet"
  3. type Socks5UdpHandler struct {
  4. DefaultHandler
  5. }
  6. func (sh *Socks5UdpHandler) GetName() string {
  7. return "socks5_udp"
  8. }
  9. func (sh *Socks5UdpHandler) GetZhName() string {
  10. return "socks5 udp协议"
  11. }
  12. func (sh *Socks5UdpHandler) HandlePacketConn(pc enet.PacketConn) (bool, error) {
  13. b, _, err := pc.FirstPacket()
  14. if err != nil {
  15. return true, err
  16. }
  17. if b[0] == 0 {
  18. return sh.processPacketConn(pc)
  19. }
  20. return false, nil
  21. }