Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
This is the subclass of SocketConnection
that is created
for UNIX domain sockets.
It contains functions to do some of the UNIX socket specific functionality like passing file descriptors.
Note that <gio/gunixconnection.h>
belongs to the UNIX-specific
GIO interfaces, thus you have to use the gio-unix-2.0.pc
pkg-config file when using it.
- newtype UnixConnection = UnixConnection (ManagedPtr UnixConnection)
- class GObject o => IsUnixConnection o
- toUnixConnection :: IsUnixConnection o => o -> IO UnixConnection
- noUnixConnection :: Maybe UnixConnection
- data UnixConnectionReceiveCredentialsMethodInfo
- unixConnectionReceiveCredentials :: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) => a -> Maybe b -> m Credentials
- data UnixConnectionReceiveCredentialsAsyncMethodInfo
- unixConnectionReceiveCredentialsAsync :: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) => a -> Maybe b -> Maybe AsyncReadyCallback -> m ()
- data UnixConnectionReceiveCredentialsFinishMethodInfo
- unixConnectionReceiveCredentialsFinish :: (HasCallStack, MonadIO m, IsUnixConnection a, IsAsyncResult b) => a -> b -> m Credentials
- data UnixConnectionReceiveFdMethodInfo
- unixConnectionReceiveFd :: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) => a -> Maybe b -> m Int32
- data UnixConnectionSendCredentialsMethodInfo
- unixConnectionSendCredentials :: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) => a -> Maybe b -> m ()
- data UnixConnectionSendCredentialsAsyncMethodInfo
- unixConnectionSendCredentialsAsync :: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) => a -> Maybe b -> Maybe AsyncReadyCallback -> m ()
- data UnixConnectionSendCredentialsFinishMethodInfo
- unixConnectionSendCredentialsFinish :: (HasCallStack, MonadIO m, IsUnixConnection a, IsAsyncResult b) => a -> b -> m ()
- data UnixConnectionSendFdMethodInfo
- unixConnectionSendFd :: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) => a -> Int32 -> Maybe b -> m ()
Exported types
newtype UnixConnection Source #
GObject UnixConnection Source # | |
IsObject UnixConnection Source # | |
IsSocketConnection UnixConnection Source # | |
IsIOStream UnixConnection Source # | |
IsUnixConnection UnixConnection Source # | |
((~) * info (ResolveUnixConnectionMethod t UnixConnection), MethodInfo * info UnixConnection p) => IsLabel t (UnixConnection -> p) Source # | |
((~) * info (ResolveUnixConnectionMethod t UnixConnection), MethodInfo * info UnixConnection p) => IsLabelProxy t (UnixConnection -> p) Source # | |
HasAttributeList * UnixConnection Source # | |
type AttributeList UnixConnection Source # | |
type SignalList UnixConnection Source # | |
class GObject o => IsUnixConnection o Source #
toUnixConnection :: IsUnixConnection o => o -> IO UnixConnection Source #
Methods
receiveCredentials
data UnixConnectionReceiveCredentialsMethodInfo Source #
((~) * signature (Maybe b -> m Credentials), MonadIO m, IsUnixConnection a, IsCancellable b) => MethodInfo * UnixConnectionReceiveCredentialsMethodInfo a signature Source # | |
unixConnectionReceiveCredentials Source #
:: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) | |
=> a |
|
-> Maybe b |
|
-> m Credentials | Returns: Received credentials on success (free with
|
Receives credentials from the sending end of the connection. The
sending end has to call unixConnectionSendCredentials
(or
similar) for this to work.
As well as reading the credentials this also reads (and discards) a single byte from the stream, as this is required for credentials passing to work on some implementations.
Other ways to exchange credentials with a foreign peer includes the
UnixCredentialsMessage
type and socketGetCredentials
function.
Since: 2.26
receiveCredentialsAsync
data UnixConnectionReceiveCredentialsAsyncMethodInfo Source #
((~) * signature (Maybe b -> Maybe AsyncReadyCallback -> m ()), MonadIO m, IsUnixConnection a, IsCancellable b) => MethodInfo * UnixConnectionReceiveCredentialsAsyncMethodInfo a signature Source # | |
unixConnectionReceiveCredentialsAsync Source #
:: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) | |
=> a |
|
-> Maybe b |
|
-> Maybe AsyncReadyCallback |
|
-> m () |
Asynchronously receive credentials.
For more details, see unixConnectionReceiveCredentials
which is
the synchronous version of this call.
When the operation is finished, callback
will be called. You can then call
unixConnectionReceiveCredentialsFinish
to get the result of the operation.
Since: 2.32
receiveCredentialsFinish
data UnixConnectionReceiveCredentialsFinishMethodInfo Source #
((~) * signature (b -> m Credentials), MonadIO m, IsUnixConnection a, IsAsyncResult b) => MethodInfo * UnixConnectionReceiveCredentialsFinishMethodInfo a signature Source # | |
unixConnectionReceiveCredentialsFinish Source #
:: (HasCallStack, MonadIO m, IsUnixConnection a, IsAsyncResult b) | |
=> a |
|
-> b |
|
-> m Credentials | Returns: a |
Finishes an asynchronous receive credentials operation started with
unixConnectionReceiveCredentialsAsync
.
Since: 2.32
receiveFd
data UnixConnectionReceiveFdMethodInfo Source #
((~) * signature (Maybe b -> m Int32), MonadIO m, IsUnixConnection a, IsCancellable b) => MethodInfo * UnixConnectionReceiveFdMethodInfo a signature Source # | |
unixConnectionReceiveFd Source #
:: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) | |
=> a |
|
-> Maybe b |
|
-> m Int32 | Returns: a file descriptor on success, -1 on error. (Can throw |
Receives a file descriptor from the sending end of the connection.
The sending end has to call unixConnectionSendFd
for this
to work.
As well as reading the fd this also reads a single byte from the stream, as this is required for fd passing to work on some implementations.
Since: 2.22
sendCredentials
data UnixConnectionSendCredentialsMethodInfo Source #
((~) * signature (Maybe b -> m ()), MonadIO m, IsUnixConnection a, IsCancellable b) => MethodInfo * UnixConnectionSendCredentialsMethodInfo a signature Source # | |
unixConnectionSendCredentials Source #
:: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) | |
=> a |
|
-> Maybe b |
|
-> m () | (Can throw |
Passes the credentials of the current user the receiving side
of the connection. The receiving end has to call
unixConnectionReceiveCredentials
(or similar) to accept the
credentials.
As well as sending the credentials this also writes a single NUL byte to the stream, as this is required for credentials passing to work on some implementations.
Other ways to exchange credentials with a foreign peer includes the
UnixCredentialsMessage
type and socketGetCredentials
function.
Since: 2.26
sendCredentialsAsync
data UnixConnectionSendCredentialsAsyncMethodInfo Source #
((~) * signature (Maybe b -> Maybe AsyncReadyCallback -> m ()), MonadIO m, IsUnixConnection a, IsCancellable b) => MethodInfo * UnixConnectionSendCredentialsAsyncMethodInfo a signature Source # | |
unixConnectionSendCredentialsAsync Source #
:: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) | |
=> a |
|
-> Maybe b |
|
-> Maybe AsyncReadyCallback |
|
-> m () |
Asynchronously send credentials.
For more details, see unixConnectionSendCredentials
which is
the synchronous version of this call.
When the operation is finished, callback
will be called. You can then call
unixConnectionSendCredentialsFinish
to get the result of the operation.
Since: 2.32
sendCredentialsFinish
data UnixConnectionSendCredentialsFinishMethodInfo Source #
((~) * signature (b -> m ()), MonadIO m, IsUnixConnection a, IsAsyncResult b) => MethodInfo * UnixConnectionSendCredentialsFinishMethodInfo a signature Source # | |
unixConnectionSendCredentialsFinish Source #
:: (HasCallStack, MonadIO m, IsUnixConnection a, IsAsyncResult b) | |
=> a |
|
-> b |
|
-> m () | (Can throw |
Finishes an asynchronous send credentials operation started with
unixConnectionSendCredentialsAsync
.
Since: 2.32
sendFd
data UnixConnectionSendFdMethodInfo Source #
((~) * signature (Int32 -> Maybe b -> m ()), MonadIO m, IsUnixConnection a, IsCancellable b) => MethodInfo * UnixConnectionSendFdMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsUnixConnection a, IsCancellable b) | |
=> a |
|
-> Int32 |
|
-> Maybe b |
|
-> m () | (Can throw |
Passes a file descriptor to the receiving side of the
connection. The receiving end has to call unixConnectionReceiveFd
to accept the file descriptor.
As well as sending the fd this also writes a single byte to the stream, as this is required for fd passing to work on some implementations.
Since: 2.22