github.com/sagernet/sing-tun@v0.3.0-beta.5/network_name.go (about) 1 package tun 2 3 import ( 4 "strconv" 5 6 "github.com/sagernet/sing-tun/internal/clashtcpip" 7 F "github.com/sagernet/sing/common/format" 8 N "github.com/sagernet/sing/common/network" 9 ) 10 11 func NetworkName(network uint8) string { 12 switch network { 13 case clashtcpip.TCP: 14 return N.NetworkTCP 15 case clashtcpip.UDP: 16 return N.NetworkUDP 17 case clashtcpip.ICMP: 18 return N.NetworkICMPv4 19 case clashtcpip.ICMPv6: 20 return N.NetworkICMPv6 21 } 22 return F.ToString(network) 23 } 24 25 func NetworkFromName(name string) uint8 { 26 switch name { 27 case N.NetworkTCP: 28 return clashtcpip.TCP 29 case N.NetworkUDP: 30 return clashtcpip.UDP 31 case N.NetworkICMPv4: 32 return clashtcpip.ICMP 33 case N.NetworkICMPv6: 34 return clashtcpip.ICMPv6 35 } 36 parseNetwork, err := strconv.ParseUint(name, 10, 8) 37 if err != nil { 38 return 0 39 } 40 return uint8(parseNetwork) 41 }