GUnixSocketAddress

GUnixSocketAddress — UNIX GSocketAddress

Synopsis

                    GUnixSocketAddress;
GSocketAddress *    g_unix_socket_address_new           (const gchar *path);
GSocketAddress *    g_unix_socket_address_new_abstract  (const gchar *path,
                                                         int path_len);
gboolean            g_unix_socket_address_get_is_abstract
                                                        (GUnixSocketAddress *address);
const char *        g_unix_socket_address_get_path      (GUnixSocketAddress *address);
gsize               g_unix_socket_address_get_path_len  (GUnixSocketAddress *address);
gboolean            g_unix_socket_address_abstract_names_supported
                                                        (void);

Object Hierarchy

  GObject
   +----GSocketAddress
         +----GUnixSocketAddress

Implemented Interfaces

GUnixSocketAddress implements GSocketConnectable.

Properties

  "abstract"                 gboolean              : Read / Write / Construct Only
  "path"                     gchar*                : Read / Write / Construct Only
  "path-as-array"            GByteArray*           : Read / Write / Construct Only

Description

Support for UNIX-domain (aka local) sockets.

Details

GUnixSocketAddress

typedef struct _GUnixSocketAddress GUnixSocketAddress;

A UNIX-domain (local) socket address, corresponding to a struct sockaddr_un.


g_unix_socket_address_new ()

GSocketAddress *    g_unix_socket_address_new           (const gchar *path);

Creates a new GUnixSocketAddress for path.

To create abstract socket addresses, on systems that support that, use g_unix_socket_address_new_abstract().

path :

the socket path

Returns :

a new GUnixSocketAddress

Since 2.22


g_unix_socket_address_new_abstract ()

GSocketAddress *    g_unix_socket_address_new_abstract  (const gchar *path,
                                                         int path_len);

Creates a new abstract GUnixSocketAddress for path.

Unix domain sockets are generally visible in the filesystem. However, some systems support abstract socket name which are not visible in the filesystem and not affected by the filesystem permissions, visibility, etc.

Note that not all systems (really only Linux) support abstract socket names, so if you use them on other systems function calls may return G_IO_ERROR_NOT_SUPPORTED errors. You can use g_unix_socket_address_abstract_names_supported() to see if abstract names are supported.

If path_len is -1 then path is assumed to be a zero terminated string (although in general abstract names need not be zero terminated and can have embedded nuls). All bytes after path_len up to the max size of an abstract unix domain name is filled with zero bytes.

path :

the abstract name

path_len :

the length of path, or -1

Returns :

a new GUnixSocketAddress

Since 2.22


g_unix_socket_address_get_is_abstract ()

gboolean            g_unix_socket_address_get_is_abstract
                                                        (GUnixSocketAddress *address);

Gets address's path.

address :

a GInetSocketAddress

Returns :

TRUE if the address is abstract, FALSE otherwise

Since 2.22


g_unix_socket_address_get_path ()

const char *        g_unix_socket_address_get_path      (GUnixSocketAddress *address);

Gets address's path, or for abstract sockets the "name".

Guaranteed to be zero-terminated, but an abstract socket may contain embedded zeros, and thus you should use g_unix_socket_address_get_path_len() to get the true length of this string.

address :

a GInetSocketAddress

Returns :

the path for address

Since 2.22


g_unix_socket_address_get_path_len ()

gsize               g_unix_socket_address_get_path_len  (GUnixSocketAddress *address);

Gets the length of address's path.

For details, see g_unix_socket_address_get_path().

address :

a GInetSocketAddress

Returns :

the length of the path

Since 2.22


g_unix_socket_address_abstract_names_supported ()

gboolean            g_unix_socket_address_abstract_names_supported
                                                        (void);

Checks if abstract unix domain socket names are supported.

Returns :

TRUE if supported, FALSE otherwise

Since 2.22

Property Details

The "abstract" property

  "abstract"                 gboolean              : Read / Write / Construct Only

Whether or not this is an abstract address.

Default value: FALSE


The "path" property

  "path"                     gchar*                : Read / Write / Construct Only

UNIX socket path.

Default value: NULL


The "path-as-array" property

  "path-as-array"            GByteArray*           : Read / Write / Construct Only

UNIX socket path, as byte array.