summaryrefslogtreecommitdiff
path: root/vendor/github.com/pion/ice/v2/tcptype.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pion/ice/v2/tcptype.go')
-rw-r--r--vendor/github.com/pion/ice/v2/tcptype.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/github.com/pion/ice/v2/tcptype.go b/vendor/github.com/pion/ice/v2/tcptype.go
new file mode 100644
index 0000000..6700fe5
--- /dev/null
+++ b/vendor/github.com/pion/ice/v2/tcptype.go
@@ -0,0 +1,48 @@
+package ice
+
+import "strings"
+
+// TCPType is the type of ICE TCP candidate as described in
+// ttps://tools.ietf.org/html/rfc6544#section-4.5
+type TCPType int
+
+const (
+ // TCPTypeUnspecified is the default value. For example UDP candidates do not
+ // need this field.
+ TCPTypeUnspecified TCPType = iota
+ // TCPTypeActive is active TCP candidate, which initiates TCP connections.
+ TCPTypeActive
+ // TCPTypePassive is passive TCP candidate, only accepts TCP connections.
+ TCPTypePassive
+ // TCPTypeSimultaneousOpen is like active and passive at the same time.
+ TCPTypeSimultaneousOpen
+)
+
+// NewTCPType creates a new TCPType from string.
+func NewTCPType(value string) TCPType {
+ switch strings.ToLower(value) {
+ case "active":
+ return TCPTypeActive
+ case "passive":
+ return TCPTypePassive
+ case "so":
+ return TCPTypeSimultaneousOpen
+ default:
+ return TCPTypeUnspecified
+ }
+}
+
+func (t TCPType) String() string {
+ switch t {
+ case TCPTypeUnspecified:
+ return ""
+ case TCPTypeActive:
+ return "active"
+ case TCPTypePassive:
+ return "passive"
+ case TCPTypeSimultaneousOpen:
+ return "so"
+ default:
+ return ErrUnknownType.Error()
+ }
+}