package
0.0.0-20240720002214-37b2b8227b91
Repository: https://github.com/progrium/go-netstack.git
Documentation: pkg.go.dev

# Functions

AcceptHandler handles the Accept RPC.
BindAtHandler handles the BindAt RPC.
ChannelHandler handles the Channel RPC.
CloseHandler handles the Close RPC.
ConnectHandler handles the Connect RPC.
CopyFDIDSliceIn copies in a slice of FDID objects from the task's memory.
CopyFDIDSliceOut copies a slice of FDID objects to the task's memory.
CopyInodeSliceIn copies in a slice of Inode objects from the task's memory.
CopyInodeSliceOut copies a slice of Inode objects to the task's memory.
CopyMIDSliceIn copies in a slice of MID objects from the task's memory.
CopyMIDSliceOut copies a slice of MID objects to the task's memory.
CopyMsg1SliceIn copies in a slice of MsgSimple objects from the task's memory.
CopyMsg1SliceOut copies a slice of MsgSimple objects to the task's memory.
ErrorHandler handles Error message.
FAllocateHandler handles the FAllocate RPC.
FGetXattrHandler handles the FGetXattr RPC.
FListXattrHandler handles the FListXattr RPC.
FlushHandler handles the Flush RPC.
FRemoveXattrHandler handles the FRemoveXattr RPC.
FSetXattrHandler handles the FSetXattr RPC.
FStatFSHandler handles the FStatFS RPC.
FStatHandler handles the FStat RPC.
FSyncHandler handles the FSync RPC.
Getdents64Handler handles the Getdents64 RPC.
LinkAtHandler handles the LinkAt RPC.
ListenHandler handles the Listen RPC.
MarshalUnsafeFDIDSlice is like FDID.MarshalUnsafe, but for a []FDID.
MarshalUnsafeInodeSlice is like Inode.MarshalUnsafe, but for a []Inode.
MarshalUnsafeMIDSlice is like MID.MarshalUnsafe, but for a []MID.
MarshalUnsafeMsg1Slice is like MsgSimple.MarshalUnsafe, but for a []MsgSimple.
MaxMessageSize is the recommended max message size that can be used by connections.
MkdirAtHandler handles the MkdirAt RPC.
MknodAtHandler handles the MknodAt RPC.
MountHandler handles the Mount RPC.
NewClient creates a new client for communication with the server.
OpenAtHandler handles the OpenAt RPC.
OpenCreateAtHandler handles the OpenCreateAt RPC.
PReadHandler handles the PRead RPC.
PWriteHandler handles the PWrite RPC.
ReadLinkAtHandler handles the ReadLinkAt RPC.
RenameAtHandler handles the RenameAt RPC.
SetStatHandler handles the SetStat RPC.
SymlinkAtHandler handles the SymlinkAt RPC.
UnlinkAtHandler handles the UnlinkAt RPC.
UnmarshalUnsafeFDIDSlice is like FDID.UnmarshalUnsafe, but for a []FDID.
UnmarshalUnsafeInodeSlice is like Inode.UnmarshalUnsafe, but for a []Inode.
UnmarshalUnsafeMIDSlice is like MID.UnmarshalUnsafe, but for a []MID.
UnmarshalUnsafeMsg1Slice is like MsgSimple.UnmarshalUnsafe, but for a []MsgSimple.
WalkHandler handles the Walk RPC.
WalkStatHandler handles the WalkStat RPC.

# Constants

Accept is analogous to accept4(2).
BindAt is analogous to bind(2).
Channel requests to start a new communicational channel.
Close is analogous to close(2) but can work on multiple FDs.
Connect is loosely analogous to connect(2).
Error is only used in responses to pass errors to client.
FAllocate is analogous to fallocate(2).
FGetXattr is analogous to fgetxattr(2).
FListXattr is analogous to flistxattr(2).
Flush cleans up the file state.
FRemoveXattr is analogous to fremovexattr(2).
FSetXattr is analogous to fsetxattr(2).
FStat requests the stat(2) results for a specified file.
FStatFS is analogous to fstatfs(2).
FSync is analogous to fsync(2) but can work on multiple FDs.
Getdents64 is analogous to getdents64(2).
InvalidFDID represents an invalid FDID.
LinkAt is analogous to linkat(2).
Listen is analogous to listen(2).
MkdirAt is analogous to mkdirat(2).
MknodAt is analogous to mknodat(2).
Mount is used to establish connection between the client and server mount point.
NoGID is a sentinel used to indicate no valid GID.
NoUID is a sentinel used to indicate no valid UID.
OpenAt is analogous to openat(2).
OpenCreateAt is analogous to openat(2) with O_CREAT|O_EXCL added to flags.
PRead is analogous to pread(2).
PWrite is analogous to pwrite(2).
ReadLinkAt is analogous to readlinkat(2).
RenameAt is loosely analogous to renameat(2).
SetStat requests to change file attributes.
SymlinkAt is analogous to symlinkat(2).
UnlinkAt is analogous to unlinkat(2).
Walk requests to walk the specified path starting from the specified directory.
WalkComponentDoesNotExist indicates that the walk was prematurely terminated because an intermediate path component does not exist on server.
WalkComponentSymlink indicates that the walk was prematurely terminated because an intermediate path component was a symlink.
WalkStat is the same as Walk, except the following differences: * If the first path component is "", then it also returns stat results for the directory where the walk starts.
WalkSuccess indicates that all path components were successfully walked.

# Structs

AcceptReq is used to make AcceptRequests.
AcceptResp is an empty response to AcceptResp.
BindAtReq is used to make BindAt requests.
BindAtResp is used to communicate BindAt response.
BoundSocketFD represents a bound socket on the server.
ChannelReq is an empty requent to create a Channel.
ChannelResp is the response to the create channel request.
Client helps manage a connection to the lisafs server and pass messages efficiently.
ClientBoundSocketFD corresponds to a bound socket on the server.
ClientFD is a wrapper around FDID that provides client-side utilities so that RPC making is easier.
CloseReq is used to close(2) FDs.
CloseResp is an empty response to CloseReq.
Connection represents a connection between a mount point in the client and a mount point in the server.
ConnectReq is used to make a Connect request.
ConnectResp is an empty response to ConnectReq.
A ControlFD is the gateway to the backing filesystem tree node.
Dirent64 is analogous to struct linux_dirent64.
EmptyMessage is an empty message.
ErrorResp is returned to represent an error while handling a request.
FAllocateReq is used to request to fallocate(2) an FD.
FAllocateResp is an empty response to FAllocateReq.
FGetXattrReq is used to make FGetXattr requests.
FGetXattrResp is used to respond to FGetXattr request.
FListXattrReq is used to make FListXattr requests.
FListXattrResp is used to respond to FListXattr requests.
FlushReq is used to make Flush requests.
FlushResp is an empty response to FlushReq.
FRemoveXattrReq is used to make FRemoveXattr requests.
FRemoveXattrResp is an empty response to FRemoveXattrReq.
FSetXattrReq is used to make FSetXattr requests.
FSetXattrResp is an empty response to FSetXattrReq.
FStatFSReq is used to request StatFS results for the specified FD.
FsyncReq is used to fsync(2) FDs.
FsyncResp is an empty response to FsyncReq.
Getdents64Req is used to make Getdents64 requests.
Getdents64Resp is used to communicate getdents64 results.
Inode represents an inode on the remote filesystem.
LinkAtReq is used to make LinkAt requests.
LinkAtResp is used to respond to a successful LinkAt request.
ListenReq is used to make Listen requests.
ListenResp is an empty response to ListenResp.
MkdirAtReq is used to make MkdirAt requests.
MkdirAtResp is the response to a successful MkdirAt request.
MknodAtReq is used to make MknodAt requests.
MknodAtResp is the response to a successful MknodAt request.
MountReq is an empty request to Mount on the connection.
MountResp represents a Mount response.
MsgDynamic is a sample dynamic struct which can be used to test message passing.
MsgSimple is a sample packed struct which can be used to test message passing.
Node is a node on the filesystem tree.
OpenAtReq is used to open existing FDs with the specified flags.
OpenAtResp is used to communicate the newly created FD.
OpenCreateAtReq is used to make OpenCreateAt requests.
OpenCreateAtResp is used to communicate successful OpenCreateAt results.
OpenFD represents an open file descriptor on the protocol.
P9Version mimics p9.TVersion and p9.Rversion.
PReadReq is used to pread(2) on an FD.
PReadResp is used to return the result of pread(2).
PWriteReq is used to pwrite(2) on an FD.
PWriteResp is used to return the result of pwrite(2).
ReadLinkAtReq is used to readlinkat(2) at the specified FD.
ReadLinkAtResp is used to communicate ReadLinkAt results.
RenameAtReq is used to make RenameAt requests.
RenameAtResp is an empty response to RenameAtReq.
Server serves a filesystem tree.
ServerOpts defines some server implementation specific behavior.
SetStatReq is used to set attributeds on FDs.
SetStatResp is used to communicate SetStat results.
StatFS is responded to a successful FStatFS request.
StatReq requests the stat results for the specified FD.
SymlinkAtReq is used to make SymlinkAt request.
SymlinkAtResp is the response to a successful SymlinkAt request.
UnlinkAtReq is used to make UnlinkAt request.
UnlinkAtResp is an empty response to UnlinkAtReq.
WalkReq is used to request to walk multiple path components at once.
WalkResp is used to communicate the inodes walked by the server.
WalkStatResp is used to communicate stat results for WalkStat.

# Interfaces

BoundSocketFDImpl represents a socket on the host filesystem that has been created by the sandboxed application via Bind.
Communicator is a server side utility which represents exactly how the server is communicating with the client.
ControlFDImpl contains implementation details for a ControlFD.
OpenFDImpl contains implementation details for a OpenFD.
ServerImpl contains the implementation details for a Server.

# Type aliases

FdArray is a utility struct which implements a marshallable type for communicating an array of FDIDs.
FDID (file descriptor identifier) is used to identify FDs on a connection.
GID represents a group ID.
MID (message ID) is used to identify messages to parse from payload.
RPCHandler defines a handler that is invoked when the associated message is received.
SizedString represents a string in memory.
StringArray represents an array of SizedStrings in memory.
UID represents a user ID.
WalkStatus is used to indicate the reason for partial/unsuccessful server side Walk operations.