You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
840 B
35 lines
840 B
// +build !windows |
|
|
|
package sockets |
|
|
|
import ( |
|
"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 |
|
tr.Dial = func(_, _ string) (net.Conn, error) { |
|
return net.DialTimeout(proto, addr, defaultTimeout) |
|
} |
|
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 |
|
}
|
|
|