UnixFDMessage

This gio.socket_control_message.SocketControlMessage contains a gio.unix_fdlist.UnixFDList. It may be sent using gio.socket.Socket.sendMessage and received using gio.socket.Socket.receiveMessage over UNIX sockets (ie: sockets in the gio.types.SocketFamily.Unix family). The file descriptors are copied between processes by the kernel.

For an easier way to send and receive file descriptors over stream-oriented UNIX sockets, see gio.unix_connection.UnixConnection.sendFd and gio.unix_connection.UnixConnection.receiveFd.

Note that <gio/gunixfdmessage.h> belongs to the UNIX-specific GIO interfaces, thus you have to use the gio-unix-2.0.pc pkg-config file or the GioUnix-2.0 GIR namespace when using it.

Constructors

this
this()

Creates a new #GUnixFDMessage containing an empty file descriptor list.

Members

Functions

appendFd
bool appendFd(int fd)

Adds a file descriptor to message.

getFdList
gio.unix_fdlist.UnixFDList getFdList()

Gets the #GUnixFDList contained in message. This function does not return a reference to the caller, but the returned list is valid for the lifetime of message.

stealFds
int[] stealFds()

Returns the array of file descriptors that is contained in this object.

Static functions

newWithFdList
gio.unix_fdmessage.UnixFDMessage newWithFdList(gio.unix_fdlist.UnixFDList fdList)

Creates a new #GUnixFDMessage containing list.

Inherited Members

From SocketControlMessage

deserialize
gio.socket_control_message.SocketControlMessage deserialize(int level, int type, ubyte[] data)

Tries to deserialize a socket control message of a given level and type. This will ask all known (to GType) subclasses of #GSocketControlMessage if they can understand this kind of message and if so deserialize it into a #GSocketControlMessage.

getLevel
int getLevel()

Returns the "level" (i.e. the originating protocol) of the control message. This is often SOL_SOCKET.

getMsgType
int getMsgType()

Returns the protocol specific type of the control message. For instance, for UNIX fd passing this would be SCM_RIGHTS.

getSize
size_t getSize()

Returns the space required for the control message, not including headers or alignment.

serialize
void serialize(void* data)

Converts the data in the message to bytes placed in the message.