class Gio::UnixConnection
Overview
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.
Defined in:
lib/gi-crystal/src/auto/gio-2.0/unix_connection.crConstructors
-
.new
Initialize a new
UnixConnection
. - .new(*, closed : Bool? = nil, input_stream : Gio::InputStream? = nil, output_stream : Gio::OutputStream? = nil, socket : Gio::Socket? = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#receive_credentials(cancellable : Gio::Cancellable?) : Gio::Credentials
Receives credentials from the sending end of the connection.
-
#receive_credentials_async(cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil
Asynchronously receive credentials.
-
#receive_credentials_finish(result : Gio::AsyncResult) : Gio::Credentials
Finishes an asynchronous receive credentials operation started with g_unix_connection_receive_credentials_async().
-
#receive_fd(cancellable : Gio::Cancellable?) : Int32
Receives a file descriptor from the sending end of the connection.
-
#send_credentials(cancellable : Gio::Cancellable?) : Bool
Passes the credentials of the current user the receiving side of the connection.
-
#send_credentials_async(cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil
Asynchronously send credentials.
-
#send_credentials_finish(result : Gio::AsyncResult) : Bool
Finishes an asynchronous send credentials operation started with g_unix_connection_send_credentials_async().
-
#send_fd(fd : Int32, cancellable : Gio::Cancellable?) : Bool
Passes a file descriptor to the receiving side of the connection.
Instance methods inherited from class Gio::SocketConnection
connect(address : Gio::SocketAddress, cancellable : Gio::Cancellable?) : Bool
connect,
connect_async(address : Gio::SocketAddress, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil
connect_async,
connect_finish(result : Gio::AsyncResult) : Bool
connect_finish,
is_connected : Bool
is_connected,
local_address : Gio::SocketAddress
local_address,
remote_address : Gio::SocketAddress
remote_address,
socket : Gio::Socket
socket,
socket=(value : Gio::Socket?) : Gio::Socket?
socket=
Constructor methods inherited from class Gio::SocketConnection
newnew(*, closed : Bool? = nil, input_stream : Gio::InputStream? = nil, output_stream : Gio::OutputStream? = nil, socket : Gio::Socket? = nil) new
Class methods inherited from class Gio::SocketConnection
factory_lookup_type(family : Gio::SocketFamily, type : Gio::SocketType, protocol_id : Int32) : UInt64
factory_lookup_type,
factory_register_type(g_type : UInt64, family : Gio::SocketFamily, type : Gio::SocketType, protocol : Int32) : Nil
factory_register_type,
g_type : UInt64
g_type
Instance methods inherited from class Gio::IOStream
clear_pending : Nil
clear_pending,
close(cancellable : Gio::Cancellable?) : Bool
close,
close_async(io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil
close_async,
close_finish(result : Gio::AsyncResult) : Bool
close_finish,
closed? : Bool
closed?,
has_pending : Bool
has_pending,
input_stream : Gio::InputStream
input_stream,
is_closed : Bool
is_closed,
output_stream : Gio::OutputStream
output_stream,
set_pending : Bool
set_pending,
splice_async(stream2 : Gio::IOStream, flags : Gio::IOStreamSpliceFlags, io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil
splice_async,
splice_finish(result : Gio::AsyncResult) : Bool
splice_finish
Constructor methods inherited from class Gio::IOStream
newnew(*, closed : Bool? = nil, input_stream : Gio::InputStream? = nil, output_stream : Gio::OutputStream? = nil) new
Class methods inherited from class Gio::IOStream
g_type : UInt64
g_type
Instance methods inherited from class GObject::Object
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void)?
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void)?
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void)?) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void)?
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void)?
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
cast?(obj : GObject::Object) : self?
cast?,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
compat_control(what : UInt64, data : Pointer(Void)?) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Constructor Detail
Class Method Detail
Instance Method Detail
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.
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.
Finishes an asynchronous receive credentials operation started with g_unix_connection_receive_credentials_async().
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.
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.
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.
Finishes an asynchronous send credentials operation started with g_unix_connection_send_credentials_async().
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.