DBusTransport implementations for sockets
D-Bus secret internal implementation details

Implementation details of DBusTransport on sockets. More...

## Data Structures

struct | DBusTransportSocket
| Implementation details of DBusTransportSocket. More...

## Typedefs

typedef struct DBusTransportSocket | DBusTransportSocket
| Opaque object representing a socket file descriptor transport.

## Functions

DBusTransport * | _dbus_transport_new_for_socket (DBusSocket fd, const DBusString *server_guid, const DBusString *address)
| Creates a new transport for the given socket file descriptor.
DBusTransport * | _dbus_transport_new_for_tcp_socket (const char *host, const char *port, const char *family, const char *noncefile, DBusError *error)
| Creates a new transport for the given hostname and port.
DBusTransportOpenResult | _dbus_transport_open_socket (DBusAddressEntry *entry, DBusTransport **transport_p, DBusError *error)
| Opens a TCP socket transport.
DBusTransport * | _dbus_transport_new_for_domain_socket (const char *path, dbus_bool_t abstract, DBusError *error)
| Creates a new transport for the given Unix domain socket path.
DBusTransportOpenResult | _dbus_transport_open_unix_socket (DBusAddressEntry *entry, DBusTransport **transport_p, DBusError *error)
| Opens a UNIX socket transport.

## Detailed Description

Implementation details of DBusTransport on sockets.

## Typedef Documentation

## DBusTransportSocket

typedef struct DBusTransportSocket DBusTransportSocket

Opaque object representing a socket file descriptor transport.

Definition at line 49 of file dbus-transport-socket.c.

## Function Documentation

## _dbus_transport_new_for_domain_socket()

DBusTransport * _dbus_transport_new_for_domain_socket | ( | const char * | path,
|  | dbus_bool_t | abstract,
|  | DBusError * | error )

Creates a new transport for the given Unix domain socket path.

This creates a client-side of a transport.

Parameters

  path | the path to the domain socket.
  abstract | TRUE to use abstract socket namespace
  error | address where an error can be returned.

Returns
  a new transport, or NULL on failure.

Definition at line 1518 of file dbus-transport-socket.c.

References _dbus_address_append_escaped(), _dbus_close_socket(), _dbus_connect_unix_socket(), _dbus_string_append(), _dbus_string_free(), _dbus_string_init(), _dbus_string_init_const(), _dbus_transport_new_for_socket(), DBUS_ERROR_NO_MEMORY, dbus_set_error(), and NULL.

Referenced by _dbus_transport_open_platform_specific(), and _dbus_transport_open_unix_socket().

## _dbus_transport_new_for_socket()

DBusTransport * _dbus_transport_new_for_socket | ( | DBusSocket | fd,
|  | const DBusString * | server_guid,
|  | const DBusString * | address )

Creates a new transport for the given socket file descriptor.

The file descriptor must be nonblocking (use _dbus_set_fd_nonblocking() to make it so). This function is shared by various transports that boil down to a full duplex file descriptor.

Parameters

  fd | the file descriptor.
  server_guid | non-NULL if this transport is on the server side of a connection
  address | the transport's address

Returns
  the new transport, or NULL if no memory.

Definition at line 1295 of file dbus-transport-socket.c.

References _dbus_auth_set_unix_fd_possible(), _dbus_socket_can_pass_unix_fd(), _dbus_string_free(), _dbus_string_init(), _dbus_transport_init_base(), _dbus_watch_invalidate(), _dbus_watch_new(), _dbus_watch_unref(), DBusTransport::auth, DBusTransportSocket::base, dbus_free(), dbus_new0, DBUS_WATCH_READABLE, DBUS_WATCH_WRITABLE, DBusTransportSocket::encoded_incoming, DBusTransportSocket::encoded_outgoing, FALSE, DBusTransportSocket::fd, DBusTransportSocket::max_bytes_read_per_iteration, DBusTransportSocket::max_bytes_written_per_iteration, DBusTransportSocket::message_bytes_written, NULL, DBusTransportSocket::read_watch, and DBusTransportSocket::write_watch.

Referenced by _dbus_transport_new_for_domain_socket(), and _dbus_transport_new_for_tcp_socket().

## _dbus_transport_new_for_tcp_socket()

DBusTransport * _dbus_transport_new_for_tcp_socket | ( | const char * | host,
|  | const char * | port,
|  | const char * | family,
|  | const char * | noncefile,
|  | DBusError * | error )

Creates a new transport for the given hostname and port.

If host is NULL, it will default to localhost

Parameters

  host | the host to connect to
  port | the port to connect to
  family | the address family to connect to
  noncefile | path to nonce file
  error | location to store reason for failure.

Returns
  a new transport, or NULL on failure.

Definition at line 1379 of file dbus-transport-socket.c.

References _dbus_close_socket(), _dbus_string_append(), _dbus_string_free(), _dbus_string_init(), _dbus_transport_new_for_socket(), DBUS_ERROR_NO_MEMORY, dbus_set_error(), and NULL.

Referenced by _dbus_transport_open_socket().

## _dbus_transport_open_socket()

DBusTransportOpenResult _dbus_transport_open_socket | ( | DBusAddressEntry * | entry,
|  | DBusTransport ** | transport_p,
|  | DBusError * | error )

Opens a TCP socket transport.

Parameters

  entry | the address entry to try opening as a tcp transport.
  transport_p | return location for the opened transport
  error | error to be set

Returns
  result of the attempt

Definition at line 1457 of file dbus-transport-socket.c.

References _dbus_assert, _dbus_set_bad_address(), _dbus_transport_new_for_tcp_socket(), dbus_address_entry_get_method(), dbus_address_entry_get_value(), NULL, and TRUE.

## _dbus_transport_open_unix_socket()

DBusTransportOpenResult _dbus_transport_open_unix_socket | ( | DBusAddressEntry * | entry,
|  | DBusTransport ** | transport_p,
|  | DBusError * | error )

Opens a UNIX socket transport.

Parameters

  entry | the address entry to try opening as a unix transport.
  transport_p | return location for the opened transport
  error | error to be set

Returns
  result of the attempt

Definition at line 1584 of file dbus-transport-socket.c.

References _dbus_assert, _dbus_set_bad_address(), _dbus_transport_new_for_domain_socket(), dbus_address_entry_get_method(), dbus_address_entry_get_value(), FALSE, NULL, and TRUE.