123456789101112131415161718192021222324252627282930313233343536373839 |
- //go:build !windows
- package sockets
- import (
- "context"
- "fmt"
- "net"
- "net/http"
- "syscall"
- "time"
- )
- const maxUnixSocketPathSize = len(syscall.RawSockaddrUnix{}.Path)
- func configureUnixTransport(tr *http.Transport, proto, addr string) error {
- if len(addr) > maxUnixSocketPathSize {
- return fmt.Errorf("unix socket path %q is too long", addr)
- }
- // No need for compression in local communications.
- tr.DisableCompression = true
- dialer := &net.Dialer{
- Timeout: defaultTimeout,
- }
- tr.DialContext = func(ctx context.Context, _, _ string) (net.Conn, error) {
- return dialer.DialContext(ctx, proto, addr)
- }
- return nil
- }
- func configureNpipeTransport(tr *http.Transport, proto, addr string) error {
- return ErrProtocolNotAvailable
- }
- // DialPipe connects to a Windows named pipe.
- // This is not supported on other OSes.
- func DialPipe(_ string, _ time.Duration) (net.Conn, error) {
- return nil, syscall.EAFNOSUPPORT
- }
|