MCPcopy Index your code
hub / github.com/subtrace/subtrace / proxyFallback

Method proxyFallback

cmd/run/socket/proxy.go:1316–1345  ·  view source on GitHub ↗
(cli, srv *bufConn)

Source from the content-addressed store, hash-verified

1314}
1315
1316func (p *proxy) proxyFallback(cli, srv *bufConn) error {
1317 slog.Debug("starting proxyFallback", "proxy", p)
1318
1319 errs := make(chan error, 2)
1320
1321 go func() {
1322 defer srv.CloseWrite()
1323 defer cli.CloseRead()
1324 if err := p.copyRawSingle("client->server", "unknown", srv, cli); err != nil {
1325 errs <- fmt.Errorf("copy client->server: %w", err)
1326 return
1327 }
1328 errs <- nil
1329 }()
1330
1331 go func() {
1332 defer cli.CloseWrite()
1333 defer srv.CloseRead()
1334 if err := p.copyRawSingle("server->client", "unknown", cli, srv); err != nil {
1335 errs <- fmt.Errorf("copy server->client: %w", err)
1336 return
1337 }
1338 errs <- nil
1339 }()
1340
1341 if err := errors.Join(<-errs, <-errs); err != nil {
1342 return fmt.Errorf("raw fallback proxy: %w", err)
1343 }
1344 return nil
1345}
1346
1347func (p *proxy) copyRawSingle(dir, proto string, w io.Writer, r io.Reader) error {
1348 n, err := io.Copy(w, r)

Callers 2

proxyOptimisticMethod · 0.95
proxyTLSMethod · 0.95

Calls 3

copyRawSingleMethod · 0.95
CloseWriteMethod · 0.80
CloseReadMethod · 0.80

Tested by

no test coverage detected