gio::prelude

Trait UnixConnectionExt

Source
pub trait UnixConnectionExt: IsA<UnixConnection> + 'static {
    // Provided methods
    fn receive_credentials(
        &self,
        cancellable: Option<&impl IsA<Cancellable>>,
    ) -> Result<Credentials, Error> { ... }
    fn receive_credentials_async<P: FnOnce(Result<Credentials, Error>) + 'static>(
        &self,
        cancellable: Option<&impl IsA<Cancellable>>,
        callback: P,
    ) { ... }
    fn receive_credentials_future(
        &self,
    ) -> Pin<Box_<dyn Future<Output = Result<Credentials, Error>> + 'static>> { ... }
    fn receive_fd(
        &self,
        cancellable: Option<&impl IsA<Cancellable>>,
    ) -> Result<i32, Error> { ... }
    fn send_credentials(
        &self,
        cancellable: Option<&impl IsA<Cancellable>>,
    ) -> Result<(), Error> { ... }
    fn send_credentials_async<P: FnOnce(Result<(), Error>) + 'static>(
        &self,
        cancellable: Option<&impl IsA<Cancellable>>,
        callback: P,
    ) { ... }
    fn send_credentials_future(
        &self,
    ) -> Pin<Box_<dyn Future<Output = Result<(), Error>> + 'static>> { ... }
    fn send_fd(
        &self,
        fd: i32,
        cancellable: Option<&impl IsA<Cancellable>>,
    ) -> Result<(), Error> { ... }
}
Available on Unix only.
Expand description

Trait containing all UnixConnection methods.

§Implementors

UnixConnection

Provided Methods§

Source

fn receive_credentials( &self, cancellable: Option<&impl IsA<Cancellable>>, ) -> Result<Credentials, Error>

Receives credentials from the sending end of the connection. The sending end has to call g_unix_connection_send_credentials() (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.

This method can be expected to be available on the following platforms:

  • Linux since GLib 2.26
  • FreeBSD since GLib 2.26
  • GNU/kFreeBSD since GLib 2.36
  • Solaris, Illumos and OpenSolaris since GLib 2.40
  • GNU/Hurd since GLib 2.40

Other ways to exchange credentials with a foreign peer includes the #GUnixCredentialsMessage type and g_socket_get_credentials() function.

§cancellable

A #GCancellable or None.

§Returns

Received credentials on success (free with g_object_unref()), None if @error is set.

Source

fn receive_credentials_async<P: FnOnce(Result<Credentials, Error>) + 'static>( &self, cancellable: Option<&impl IsA<Cancellable>>, callback: P, )

Asynchronously receive credentials.

For more details, see g_unix_connection_receive_credentials() which is the synchronous version of this call.

When the operation is finished, @callback will be called. You can then call g_unix_connection_receive_credentials_finish() to get the result of the operation.

§cancellable

optional #GCancellable object, None to ignore.

§callback

a #GAsyncReadyCallback to call when the request is satisfied

Source

fn receive_credentials_future( &self, ) -> Pin<Box_<dyn Future<Output = Result<Credentials, Error>> + 'static>>

Source

fn receive_fd( &self, cancellable: Option<&impl IsA<Cancellable>>, ) -> Result<i32, Error>

Receives a file descriptor from the sending end of the connection. The sending end has to call g_unix_connection_send_fd() 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.

§cancellable

optional #GCancellable object, None to ignore

§Returns

a file descriptor on success, -1 on error.

Source

fn send_credentials( &self, cancellable: Option<&impl IsA<Cancellable>>, ) -> Result<(), Error>

Passes the credentials of the current user the receiving side of the connection. The receiving end has to call g_unix_connection_receive_credentials() (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.

This method can be expected to be available on the following platforms:

  • Linux since GLib 2.26
  • FreeBSD since GLib 2.26
  • GNU/kFreeBSD since GLib 2.36
  • Solaris, Illumos and OpenSolaris since GLib 2.40
  • GNU/Hurd since GLib 2.40

Other ways to exchange credentials with a foreign peer includes the #GUnixCredentialsMessage type and g_socket_get_credentials() function.

§cancellable

A #GCancellable or None.

§Returns

true on success, false if @error is set.

Source

fn send_credentials_async<P: FnOnce(Result<(), Error>) + 'static>( &self, cancellable: Option<&impl IsA<Cancellable>>, callback: P, )

Asynchronously send credentials.

For more details, see g_unix_connection_send_credentials() which is the synchronous version of this call.

When the operation is finished, @callback will be called. You can then call g_unix_connection_send_credentials_finish() to get the result of the operation.

§cancellable

optional #GCancellable object, None to ignore.

§callback

a #GAsyncReadyCallback to call when the request is satisfied

Source

fn send_credentials_future( &self, ) -> Pin<Box_<dyn Future<Output = Result<(), Error>> + 'static>>

Source

fn send_fd( &self, fd: i32, cancellable: Option<&impl IsA<Cancellable>>, ) -> Result<(), Error>

Passes a file descriptor to the receiving side of the connection. The receiving end has to call g_unix_connection_receive_fd() 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.

§fd

a file descriptor

§cancellable

optional #GCancellable object, None to ignore.

§Returns

a true on success, None on error.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§