1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
package ice
import "strings"
// TCPType is the type of ICE TCP candidate as described in
// https://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()
}
}
|