summaryrefslogtreecommitdiff
path: root/types/net_type.go
diff options
context:
space:
mode:
Diffstat (limited to 'types/net_type.go')
-rw-r--r--types/net_type.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/types/net_type.go b/types/net_type.go
new file mode 100644
index 0000000..ce82288
--- /dev/null
+++ b/types/net_type.go
@@ -0,0 +1,28 @@
+package types
+
+import "fmt"
+
+type IpNetType string
+
+var (
+ IPv6Net IpNetType = "ipv6"
+ IPv4Net IpNetType = "ipv4"
+ IP64 IpNetType = "any"
+)
+
+// GetDialNetString returns the string accepted by net.Dialer::DialContext
+func (t IpNetType) GetDialNetString() string {
+ switch t {
+ case IPv4Net:
+ return "tcp4"
+ case IPv6Net:
+ return "tcp6"
+ case IP64:
+ return "tcp"
+ }
+ return ""
+}
+
+func (t IpNetType) String() string {
+ return fmt.Sprintf("%s(%s)", string(t), t.GetDialNetString())
+}