MCPcopy Create free account
hub / github.com/PasarGuard/node / StartBackend

Method StartBackend

controller/controller.go:103–142  ·  view source on GitHub ↗
(ctx context.Context, backend *common.Backend)

Source from the content-addressed store, hash-verified

101}
102
103func (c *Controller) StartBackend(ctx context.Context, backend *common.Backend) error {
104 c.mu.Lock()
105 defer c.mu.Unlock()
106
107 switch backend.GetType() {
108 case common.BackendType_XRAY:
109 config, err := xray.NewConfig(backend.GetConfig(), backend.GetExcludeInbounds())
110 if err != nil {
111 return err
112 }
113
114 newBackend, err := xray.New(
115 ctx,
116 config,
117 backend.GetUsers(),
118 c.apiPort,
119 c.metricPort,
120 c.cfg,
121 )
122 if err != nil {
123 return err
124 }
125 c.backend = newBackend
126
127 case common.BackendType_WIREGUARD:
128 config, err := wireguard.NewConfig(backend.GetConfig())
129 if err != nil {
130 return err
131 }
132 newBackend, err := wireguard.New(c.cfg, config, backend.GetUsers())
133 if err != nil {
134 return err
135 }
136 c.backend = newBackend
137 default:
138 return errors.New("invalid backend type")
139 }
140
141 return nil
142}
143
144func (c *Controller) Backend() backend.Backend {
145 c.mu.RLock()

Callers 2

StartMethod · 0.80
StartMethod · 0.80

Calls 8

NewConfigFunction · 0.92
NewFunction · 0.92
NewConfigFunction · 0.92
NewFunction · 0.92
GetConfigMethod · 0.80
GetExcludeInboundsMethod · 0.80
GetTypeMethod · 0.45
GetUsersMethod · 0.45

Tested by

no test coverage detected