mirror of
https://codeberg.org/cunicu/cunicu.git
synced 2025-10-15 13:20:50 +08:00
40 lines
697 B
Go
40 lines
697 B
Go
package grpc
|
|
|
|
import (
|
|
"errors"
|
|
"strconv"
|
|
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/credentials/insecure"
|
|
"riasc.eu/wice/pkg/signaling"
|
|
)
|
|
|
|
type BackendConfig struct {
|
|
signaling.BackendConfig
|
|
|
|
Target string
|
|
|
|
Options []grpc.DialOption
|
|
}
|
|
|
|
func (c *BackendConfig) Parse(cfg *signaling.BackendConfig) error {
|
|
c.BackendConfig = *cfg
|
|
|
|
options := c.URI.Query()
|
|
if str := options.Get("insecure"); str != "" {
|
|
if b, err := strconv.ParseBool(str); err == nil && b {
|
|
c.Options = append(c.Options, grpc.WithTransportCredentials(
|
|
insecure.NewCredentials(),
|
|
))
|
|
}
|
|
}
|
|
|
|
if c.URI.Host == "" {
|
|
return errors.New("missing gRPC server url")
|
|
}
|
|
|
|
c.Target = c.URI.Host
|
|
|
|
return nil
|
|
}
|