MCPcopy Create free account
hub / github.com/buggregator/server / Start

Method Start

modules/proxy/server.go:31–66  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

29}
30
31func (s *proxyServer) Start(ctx context.Context) error {
32 ca, err := generateCA()
33 if err != nil {
34 return fmt.Errorf("proxy: generate CA: %w", err)
35 }
36 s.ca = ca
37
38 ln, err := net.Listen("tcp", s.addr)
39 if err != nil {
40 return fmt.Errorf("proxy: listen %s: %w", s.addr, err)
41 }
42 s.listener = ln
43
44 go func() {
45 for {
46 conn, err := ln.Accept()
47 if err != nil {
48 select {
49 case <-ctx.Done():
50 return
51 default:
52 slog.Error("proxy: accept error", "err", err)
53 continue
54 }
55 }
56 go s.handleConn(ctx, conn)
57 }
58 }()
59
60 go func() {
61 <-ctx.Done()
62 ln.Close()
63 }()
64
65 return nil
66}
67
68func (s *proxyServer) Stop() error {
69 if s.listener != nil {

Callers

nothing calls this directly

Calls 2

handleConnMethod · 0.95
generateCAFunction · 0.85

Tested by

no test coverage detected