(ctx context.Context)
| 252 | } |
| 253 | |
| 254 | func (a *API) Server(ctx context.Context) (*drpcserver.Server, error) { |
| 255 | mux := drpcmux.New() |
| 256 | err := agentproto.DRPCRegisterAgent(mux, a) |
| 257 | if err != nil { |
| 258 | return nil, xerrors.Errorf("register agent API protocol in DRPC mux: %w", err) |
| 259 | } |
| 260 | |
| 261 | err = tailnetproto.DRPCRegisterTailnet(mux, a) |
| 262 | if err != nil { |
| 263 | return nil, xerrors.Errorf("register tailnet API protocol in DRPC mux: %w", err) |
| 264 | } |
| 265 | |
| 266 | return drpcserver.NewWithOptions(&tracing.DRPCHandler{Handler: mux}, |
| 267 | drpcserver.Options{ |
| 268 | Manager: drpcsdk.DefaultDRPCOptions(nil), |
| 269 | Log: func(err error) { |
| 270 | if xerrors.Is(err, io.EOF) { |
| 271 | return |
| 272 | } |
| 273 | a.opts.Log.Debug(ctx, "drpc server error", slog.Error(err)) |
| 274 | }, |
| 275 | }, |
| 276 | ), nil |
| 277 | } |
| 278 | |
| 279 | func (a *API) Serve(ctx context.Context, l net.Listener) error { |
| 280 | server, err := a.Server(ctx) |
no test coverage detected