Files
5e5860c524 Support npipe transport in confignet (#14985)
#### Description

Support using Windows named pipes as a transport in confignet. The
implementation uses https://github.com/microsoft/go-winio/.

#### Link to tracking issue
Fixes
https://github.com/open-telemetry/opentelemetry-collector/issues/15085

#### Testing

Added unit tests covering the new transport. There's also a unit test
for validating named path paths.

#### Documentation

Added the new value to the config schema and README.

---------

Co-authored-by: Alex Boten <[email protected]>
2026-04-27 16:16:18 +00:00

28 lines
614 B
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
//go:build windows
package confignet // import "go.opentelemetry.io/collector/config/confignet"
import (
"context"
"net"
"time"
"github.com/Microsoft/go-winio"
)
func dialNpipe(ctx context.Context, endpoint string, timeout time.Duration) (net.Conn, error) {
if timeout != 0 {
var cancel context.CancelFunc
ctx, cancel = context.WithTimeout(ctx, timeout)
defer cancel()
}
return winio.DialPipeContext(ctx, endpoint)
}
func listenNpipe(endpoint string) (net.Listener, error) {
return winio.ListenPipe(endpoint, nil)
}