package webrtc
import (
"fmt"
"github.com/pion/ice/v4"
)
func supportedNetworkTypes() []NetworkType {
return []NetworkType {
NetworkTypeUDP4 ,
NetworkTypeUDP6 ,
}
}
type NetworkType int
const (
NetworkTypeUnknown NetworkType = iota
NetworkTypeUDP4
NetworkTypeUDP6
NetworkTypeTCP4
NetworkTypeTCP6
)
const (
networkTypeUDP4Str = "udp4"
networkTypeUDP6Str = "udp6"
networkTypeTCP4Str = "tcp4"
networkTypeTCP6Str = "tcp6"
)
func (t NetworkType ) String () string {
switch t {
case NetworkTypeUDP4 :
return networkTypeUDP4Str
case NetworkTypeUDP6 :
return networkTypeUDP6Str
case NetworkTypeTCP4 :
return networkTypeTCP4Str
case NetworkTypeTCP6 :
return networkTypeTCP6Str
default :
return ErrUnknownType .Error()
}
}
func (t NetworkType ) Protocol () string {
switch t {
case NetworkTypeUDP4 :
return "udp"
case NetworkTypeUDP6 :
return "udp"
case NetworkTypeTCP4 :
return "tcp"
case NetworkTypeTCP6 :
return "tcp"
default :
return ErrUnknownType .Error()
}
}
func NewNetworkType (raw string ) (NetworkType , error ) {
switch raw {
case networkTypeUDP4Str :
return NetworkTypeUDP4 , nil
case networkTypeUDP6Str :
return NetworkTypeUDP6 , nil
case networkTypeTCP4Str :
return NetworkTypeTCP4 , nil
case networkTypeTCP6Str :
return NetworkTypeTCP6 , nil
default :
return NetworkTypeUnknown , fmt .Errorf ("%w: %s" , errNetworkTypeUnknown , raw )
}
}
func getNetworkType(iceNetworkType ice .NetworkType ) (NetworkType , error ) {
switch iceNetworkType {
case ice .NetworkTypeUDP4 :
return NetworkTypeUDP4 , nil
case ice .NetworkTypeUDP6 :
return NetworkTypeUDP6 , nil
case ice .NetworkTypeTCP4 :
return NetworkTypeTCP4 , nil
case ice .NetworkTypeTCP6 :
return NetworkTypeTCP6 , nil
default :
return NetworkTypeUnknown , fmt .Errorf ("%w: %s" , errNetworkTypeUnknown , iceNetworkType .String ())
}
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .