Class UnixConnection

All Implemented Interfaces:
PointerInterface

public class UnixConnection extends SocketConnection
This is the subclass of #GSocketConnection that is created
for UNIX domain sockets.

It contains functions to do some of the UNIX socket specific
functionality like passing file descriptors.

Since GLib 2.72, #GUnixConnection is available on all platforms. It requires
underlying system support (such as Windows 10 with `AF_UNIX`) at run time.

Before GLib 2.72, `<gio/gunixconnection.h>` belonged to the UNIX-specific GIO
interfaces, thus you had to use the `gio-unix-2.0.pc` pkg-config file when
using it. This is no longer necessary since GLib 2.72.

https://docs.gtk.org/gio/class.UnixConnection.html

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • receiveCredentials

      public Credentials receiveCredentials(@Nullable Cancellable cancellable) throws AllocationError
      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.
      Parameters:
      cancellable - A #GCancellable or %NULL.
      Returns:
      Received credentials on success (free with g_object_unref()), %NULL if @error is set.
      Throws:
      AllocationError
    • receiveCredentialsAsync

      public void receiveCredentialsAsync(@Nullable Cancellable cancellable, UnixConnection.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      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.
      Parameters:
      cancellable - optional #GCancellable object, %NULL to ignore.
      callback - a #GAsyncReadyCallback to call when the request is satisfied
      user_data - the data to pass to callback function
    • receiveCredentialsFinish

      public Credentials receiveCredentialsFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes an asynchronous receive credentials operation started with
      g_unix_connection_receive_credentials_async().
      Parameters:
      result - a #GAsyncResult.
      Returns:
      a #GCredentials, or %NULL on error. Free the returned object with g_object_unref().
      Throws:
      AllocationError
    • receiveFd

      public int receiveFd(@Nullable Cancellable cancellable) throws AllocationError
      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.
      Parameters:
      cancellable - optional #GCancellable object, %NULL to ignore
      Returns:
      a file descriptor on success, -1 on error.
      Throws:
      AllocationError
    • sendCredentials

      public boolean sendCredentials(@Nullable Cancellable cancellable) throws AllocationError
      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.
      Parameters:
      cancellable - A #GCancellable or %NULL.
      Returns:
      %TRUE on success, %FALSE if @error is set.
      Throws:
      AllocationError
    • sendCredentialsAsync

      public void sendCredentialsAsync(@Nullable Cancellable cancellable, UnixConnection.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      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.
      Parameters:
      cancellable - optional #GCancellable object, %NULL to ignore.
      callback - a #GAsyncReadyCallback to call when the request is satisfied
      user_data - the data to pass to callback function
    • sendCredentialsFinish

      public boolean sendCredentialsFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes an asynchronous send credentials operation started with
      g_unix_connection_send_credentials_async().
      Parameters:
      result - a #GAsyncResult.
      Returns:
      %TRUE if the operation was successful, otherwise %FALSE.
      Throws:
      AllocationError
    • sendFd

      public boolean sendFd(int fd, @Nullable Cancellable cancellable) throws AllocationError
      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.
      Parameters:
      fd - a file descriptor
      cancellable - optional #GCancellable object, %NULL to ignore.
      Returns:
      a %TRUE on success, %NULL on error.
      Throws:
      AllocationError
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()