Documentation ¶
Overview ¶
Package control provides internal representations of socket control messages.
Index ¶
- func AlignDown(length int, align uint) int
- func AlignUp(length int, align uint) int
- func New(t *kernel.Task, socketOrEndpoint interface{}, rights SCMRights) unix.ControlMessages
- func PackCredentials(t *kernel.Task, creds SCMCredentials, buf []byte) []byte
- func PackRights(t *kernel.Task, rights SCMRights, cloexec bool, buf []byte) []byte
- func PackTimestamp(t *kernel.Task, timestamp int64, buf []byte) []byte
- func Parse(t *kernel.Task, socketOrEndpoint interface{}, buf []byte) (unix.ControlMessages, error)
- type RightsFiles
- type SCMCredentials
- type SCMRights
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func New ¶
func New(t *kernel.Task, socketOrEndpoint interface{}, rights SCMRights) unix.ControlMessages
New creates default control messages if needed.
func PackCredentials ¶
func PackCredentials(t *kernel.Task, creds SCMCredentials, buf []byte) []byte
PackCredentials packs the credentials in the control message (or default credentials if none) into a buffer.
func PackRights ¶
PackRights packs as many FDs as will fit into the unused capacity of buf.
func PackTimestamp ¶
PackTimestamp packs a SO_TIMESTAMP socket control message.
Types ¶
type RightsFiles ¶
RightsFiles represents a SCM_RIGHTS socket control message. A reference is maintained for each fs.File and is release either when an FD is created or when the Release method is called.
func (*RightsFiles) Clone ¶
func (fs *RightsFiles) Clone() unix.RightsControlMessage
Clone implements unix.RightsControlMessage.Clone.
func (*RightsFiles) Files ¶
func (fs *RightsFiles) Files(ctx context.Context, max int) RightsFiles
Files implements SCMRights.Files.
func (*RightsFiles) Release ¶
func (fs *RightsFiles) Release()
Release implements unix.RightsControlMessage.Release.
type SCMCredentials ¶
type SCMCredentials interface { unix.CredentialsControlMessage // Credentials returns properly namespaced values for the sender's pid, uid // and gid. Credentials(t *kernel.Task) (kernel.ThreadID, auth.UID, auth.GID) }
SCMCredentials represents a SCM_CREDENTIALS socket control message.
func NewSCMCredentials ¶
func NewSCMCredentials(t *kernel.Task, cred linux.ControlMessageCredentials) (SCMCredentials, error)
NewSCMCredentials creates a new SCM_CREDENTIALS socket control message representation.
type SCMRights ¶
type SCMRights interface { unix.RightsControlMessage // Files returns up to max RightsFiles. Files(ctx context.Context, max int) RightsFiles }
SCMRights represents a SCM_RIGHTS socket control message.