Involved Source Filescredentials.go
Package credentials defines APIs for parsing SPIFFE ID.
All APIs in this package are experimental.
syscallconn.goutil.go
Package-Level Type Names (total 4, none are exported)
/* sort exporteds by: | */
clientHandshakeInfoKey is a struct used as the key to store
ClientHandshakeInfo in a context.
requestInfoKey is a struct to be used as the key to store RequestInfo in a
context.
syscallConn keeps reference of rawConn to support syscall.Conn for channelz.
SyscallConn() (the method in interface syscall.Conn) is explicitly
implemented on this type,
Interface syscall.Conn is implemented by most net.Conn implementations (e.g.
TCPConn, UnixConn), but is not part of net.Conn interface. So wrapper conns
that embed net.Conn don't implement syscall.Conn. (Side note: tls.Conn
doesn't embed net.Conn, so even if syscall.Conn is part of net.Conn, it won't
help here).
Connnet.Conn
sysConn is a type alias of syscall.Conn. It's necessary because the name
`Conn` collides with `net.Conn`.
Close closes the connection.
Any blocked Read or Write operations will be unblocked and return errors.
LocalAddr returns the local network address, if known.
Read reads data from the connection.
Read can be made to time out and return an error after a fixed
time limit; see SetDeadline and SetReadDeadline.
RemoteAddr returns the remote network address, if known.
SetDeadline sets the read and write deadlines associated
with the connection. It is equivalent to calling both
SetReadDeadline and SetWriteDeadline.
A deadline is an absolute time after which I/O operations
fail instead of blocking. The deadline applies to all future
and pending I/O, not just the immediately following call to
Read or Write. After a deadline has been exceeded, the
connection can be refreshed by setting a deadline in the future.
If the deadline is exceeded a call to Read or Write or to other
I/O methods will return an error that wraps os.ErrDeadlineExceeded.
This can be tested using errors.Is(err, os.ErrDeadlineExceeded).
The error's Timeout method will return true, but note that there
are other possible errors for which the Timeout method will
return true even if the deadline has not been exceeded.
An idle timeout can be implemented by repeatedly extending
the deadline after successful Read or Write calls.
A zero value for t means I/O operations will not time out.
SetReadDeadline sets the deadline for future Read calls
and any currently-blocked Read call.
A zero value for t means Read will not time out.
SetWriteDeadline sets the deadline for future Write calls
and any currently-blocked Write call.
Even if write times out, it may return n > 0, indicating that
some of the data was successfully written.
A zero value for t means Write will not time out.
SyscallConn returns a raw network connection.
Write writes data to the connection.
Write can be made to time out and return an error after a fixed
time limit; see SetDeadline and SetWriteDeadline.
syscallConn : io.Closer
syscallConn : io.ReadCloser
syscallConn : io.Reader
syscallConn : io.ReadWriteCloser
syscallConn : io.ReadWriter
syscallConn : io.WriteCloser
syscallConn : io.Writer
syscallConn : net.Conn
syscallConn : syscall.Conn
Package-Level Functions (total 9, all are exported)
AppendH2ToNextProtos appends h2 to next protos.
ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx.
CloneTLSConfig returns a shallow clone of the exported
fields of cfg, ignoring the unexported sync.Once, which
contains a mutex and must not be copied.
If cfg is nil, a new zero tls.Config is returned.
TODO: inline this function if possible.
NewClientHandshakeInfoContext creates a context with chi.
NewRequestInfoContext creates a context with ri.
RequestInfoFromContext extracts the RequestInfo from ctx.
SPIFFEIDFromCert parses the SPIFFE ID from x509.Certificate. If the SPIFFE
ID format is invalid, return nil with warning.
SPIFFEIDFromState parses the SPIFFE ID from State. If the SPIFFE ID format
is invalid, return nil with warning.
WrapSyscallConn tries to wrap rawConn and newConn into a net.Conn that
implements syscall.Conn. rawConn will be used to support syscall, and newConn
will be used for read/write.
This function returns newConn if rawConn doesn't implement syscall.Conn.
Package-Level Variables (only one, which is unexported)