1.4.5.2
This commit is contained in:
83
EdgeCommon/pkg/serverconfigs/protocol.go
Normal file
83
EdgeCommon/pkg/serverconfigs/protocol.go
Normal file
@@ -0,0 +1,83 @@
|
||||
package serverconfigs
|
||||
|
||||
import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/ossconfigs"
|
||||
|
||||
type Protocol string
|
||||
|
||||
const (
|
||||
ProtocolHTTP Protocol = "http"
|
||||
ProtocolHTTPS Protocol = "https"
|
||||
ProtocolTCP Protocol = "tcp"
|
||||
ProtocolTLS Protocol = "tls"
|
||||
ProtocolUDP Protocol = "udp"
|
||||
|
||||
// 子协议
|
||||
|
||||
ProtocolHTTP4 Protocol = "http4"
|
||||
ProtocolHTTP6 Protocol = "http6"
|
||||
|
||||
ProtocolHTTPS4 Protocol = "https4"
|
||||
ProtocolHTTPS6 Protocol = "https6"
|
||||
|
||||
ProtocolTCP4 Protocol = "tcp4"
|
||||
ProtocolTCP6 Protocol = "tcp6"
|
||||
|
||||
ProtocolTLS4 Protocol = "tls4"
|
||||
ProtocolTLS6 Protocol = "tls6"
|
||||
)
|
||||
|
||||
func AllProtocols() []Protocol {
|
||||
return []Protocol{ProtocolHTTP, ProtocolHTTPS, ProtocolTCP, ProtocolTLS, ProtocolUDP, ProtocolHTTP4, ProtocolHTTP6, ProtocolHTTPS4, ProtocolHTTPS6, ProtocolTCP4, ProtocolTCP6, ProtocolTLS4, ProtocolTLS6}
|
||||
}
|
||||
|
||||
func (this Protocol) IsHTTPFamily() bool {
|
||||
return this == ProtocolHTTP || this == ProtocolHTTP4 || this == ProtocolHTTP6
|
||||
}
|
||||
|
||||
func (this Protocol) IsHTTPSFamily() bool {
|
||||
return this == ProtocolHTTPS || this == ProtocolHTTPS4 || this == ProtocolHTTPS6
|
||||
}
|
||||
|
||||
func (this Protocol) IsTCPFamily() bool {
|
||||
return this == ProtocolTCP || this == ProtocolTCP4 || this == ProtocolTCP6
|
||||
}
|
||||
|
||||
func (this Protocol) IsTLSFamily() bool {
|
||||
return this == ProtocolTLS || this == ProtocolTLS4 || this == ProtocolTLS6
|
||||
}
|
||||
|
||||
func (this Protocol) IsUDPFamily() bool {
|
||||
return this == ProtocolUDP
|
||||
}
|
||||
|
||||
func (this Protocol) IsOSS() bool {
|
||||
return ossconfigs.IsOSSProtocol(this.String())
|
||||
}
|
||||
|
||||
// Primary 主协议
|
||||
func (this Protocol) Primary() Protocol {
|
||||
switch this {
|
||||
case ProtocolHTTP, ProtocolHTTP4, ProtocolHTTP6:
|
||||
return ProtocolHTTP
|
||||
case ProtocolHTTPS, ProtocolHTTPS4, ProtocolHTTPS6:
|
||||
return ProtocolHTTPS
|
||||
case ProtocolTCP, ProtocolTCP4, ProtocolTCP6:
|
||||
return ProtocolTCP
|
||||
case ProtocolTLS, ProtocolTLS4, ProtocolTLS6:
|
||||
return ProtocolTLS
|
||||
case ProtocolUDP:
|
||||
return ProtocolUDP
|
||||
default:
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
// Scheme schema
|
||||
func (this Protocol) Scheme() string {
|
||||
return string(this)
|
||||
}
|
||||
|
||||
// 转换为字符串
|
||||
func (this Protocol) String() string {
|
||||
return string(this)
|
||||
}
|
||||
Reference in New Issue
Block a user