Data Structures | |
struct | DBusUserInfo |
Information about a UNIX user. More... | |
struct | DBusGroupInfo |
Information about a UNIX group. More... | |
Typedefs | |
typedef struct DBusUserInfo | DBusUserInfo |
Information about a UNIX user. | |
typedef struct DBusGroupInfo | DBusGroupInfo |
Information about a UNIX group. | |
Functions | |
dbus_bool_t | _dbus_close (int fd, DBusError *error) |
Closes a file descriptor. | |
int | _dbus_read (int fd, DBusString *buffer, int count) |
Thin wrapper around the read() system call that appends the data it reads to the DBusString buffer. | |
int | _dbus_write (int fd, const DBusString *buffer, int start, int len) |
Thin wrapper around the write() system call that writes a part of a DBusString and handles EINTR for you. | |
int | _dbus_write_two (int fd, const DBusString *buffer1, int start1, int len1, const DBusString *buffer2, int start2, int len2) |
Like _dbus_write() but will use writev() if possible to write both buffers in sequence. | |
dbus_bool_t | _dbus_open_unix_socket (int *fd, DBusError *error) |
Opens a UNIX domain socket (as in the socket() call). | |
int | _dbus_connect_unix_socket (const char *path, dbus_bool_t abstract, DBusError *error) |
Creates a socket and connects it to the UNIX domain socket at the given path. | |
int | _dbus_listen_unix_socket (const char *path, dbus_bool_t abstract, DBusError *error) |
Creates a socket and binds it to the given path, then listens on the socket. | |
dbus_bool_t | _dbus_read_credentials (int client_fd, DBusCredentials *credentials, DBusError *error) |
dbus_bool_t | _dbus_send_credentials (int server_fd, DBusError *error) |
dbus_bool_t | _dbus_user_info_fill (DBusUserInfo *info, const DBusString *username, DBusError *error) |
Gets user info for the given username. | |
dbus_bool_t | _dbus_user_info_fill_uid (DBusUserInfo *info, dbus_uid_t uid, DBusError *error) |
Gets user info for the given user ID. | |
void | _dbus_user_info_free (DBusUserInfo *info) |
Frees the members of info (but not info itself). | |
dbus_bool_t | _dbus_group_info_fill (DBusGroupInfo *info, const DBusString *groupname, DBusError *error) |
Initializes the given DBusGroupInfo struct with information about the given group name. | |
dbus_bool_t | _dbus_group_info_fill_gid (DBusGroupInfo *info, dbus_gid_t gid, DBusError *error) |
Initializes the given DBusGroupInfo struct with information about the given group ID. | |
void | _dbus_group_info_free (DBusGroupInfo *info) |
Frees the members of info (but not info itself). | |
dbus_uid_t | _dbus_getuid (void) |
Gets our UID. | |
dbus_gid_t | _dbus_getgid (void) |
dbus_bool_t | _dbus_parse_uid (const DBusString *uid_str, dbus_uid_t *uid) |
Gets a UID from a UID string. |
dbus_bool_t _dbus_close | ( | int | fd, | |
DBusError * | error | |||
) |
Closes a file descriptor.
fd | the file descriptor | |
error | error object |
Definition at line 2404 of file dbus-sysdeps-unix.c.
References _dbus_error_from_errno(), dbus_set_error(), FALSE, and TRUE.
int _dbus_connect_unix_socket | ( | const char * | path, | |
dbus_bool_t | abstract, | |||
DBusError * | error | |||
) |
Creates a socket and connects it to the UNIX domain socket at the given path.
The connection fd is returned, and is set up as nonblocking.
Uses abstract sockets instead of filesystem-linked sockets if requested (it's possible only on Linux; see "man 7 unix" on Linux). On non-Linux abstract socket usage always fails.
path | the path to UNIX domain socket | |
abstract | TRUE to use abstract namespace | |
error | return location for error code |
Definition at line 473 of file dbus-sysdeps-unix.c.
References _dbus_close(), _dbus_error_from_errno(), _dbus_open_unix_socket(), _DBUS_ZERO, DBUS_ERROR_BAD_ADDRESS, DBUS_ERROR_NOT_SUPPORTED, dbus_set_error(), and NULL.
dbus_uid_t _dbus_getuid | ( | void | ) |
dbus_bool_t _dbus_group_info_fill | ( | DBusGroupInfo * | info, | |
const DBusString * | groupname, | |||
DBusError * | error | |||
) |
Initializes the given DBusGroupInfo struct with information about the given group name.
info | the group info struct | |
groupname | name of group | |
error | the error return |
Definition at line 866 of file dbus-sysdeps-util-unix.c.
Referenced by _dbus_user_database_lookup_group().
dbus_bool_t _dbus_group_info_fill_gid | ( | DBusGroupInfo * | info, | |
dbus_gid_t | gid, | |||
DBusError * | error | |||
) |
Initializes the given DBusGroupInfo struct with information about the given group ID.
info | the group info struct | |
gid | group ID | |
error | the error return |
Definition at line 885 of file dbus-sysdeps-util-unix.c.
Referenced by _dbus_user_database_lookup_group().
void _dbus_group_info_free | ( | DBusGroupInfo * | info | ) |
Frees the members of info (but not info itself).
info | the group info |
Definition at line 88 of file dbus-userdb.c.
Referenced by _dbus_group_info_free_allocated().
int _dbus_listen_unix_socket | ( | const char * | path, | |
dbus_bool_t | abstract, | |||
DBusError * | error | |||
) |
Creates a socket and binds it to the given path, then listens on the socket.
The socket is set to be nonblocking.
Uses abstract sockets instead of filesystem-linked sockets if requested (it's possible only on Linux; see "man 7 unix" on Linux). On non-Linux abstract socket usage always fails.
path | the socket name | |
abstract | TRUE to use abstract namespace | |
error | return location for errors |
Definition at line 609 of file dbus-sysdeps-unix.c.
References _dbus_close(), _dbus_error_from_errno(), _dbus_open_unix_socket(), _dbus_warn(), _DBUS_ZERO, DBUS_ERROR_BAD_ADDRESS, DBUS_ERROR_NOT_SUPPORTED, dbus_set_error(), NULL, and TRUE.
dbus_bool_t _dbus_open_unix_socket | ( | int * | fd, | |
DBusError * | error | |||
) |
Opens a UNIX domain socket (as in the socket() call).
Does not bind the socket.
fd | return location for socket descriptor | |
error | return location for an error |
Definition at line 118 of file dbus-sysdeps-unix.c.
dbus_bool_t _dbus_parse_uid | ( | const DBusString * | uid_str, | |
dbus_uid_t * | uid | |||
) |
Gets a UID from a UID string.
uid_str | the UID in string form | |
uid | UID to fill in |
Definition at line 1582 of file dbus-sysdeps-unix.c.
References _dbus_string_parse_int(), FALSE, and TRUE.
int _dbus_read | ( | int | fd, | |
DBusString * | buffer, | |||
int | count | |||
) |
Thin wrapper around the read() system call that appends the data it reads to the DBusString buffer.
It appends up to the given count, and returns the same value and same errno as read(). The only exception is that _dbus_read() handles EINTR for you. Also, _dbus_read() can return ENOMEM, even though regular UNIX read doesn't.
Unlike _dbus_read_socket(), _dbus_read() is not available on Windows.
fd | the file descriptor to read from | |
buffer | the buffer to append data to | |
count | the amount of data to read |
Definition at line 270 of file dbus-sysdeps-unix.c.
References _dbus_assert, _dbus_string_get_data_len(), _dbus_string_lengthen(), _dbus_string_set_length(), and _dbus_verbose_bytes_of_string().
dbus_bool_t _dbus_user_info_fill | ( | DBusUserInfo * | info, | |
const DBusString * | username, | |||
DBusError * | error | |||
) |
Gets user info for the given username.
info | user info object to initialize | |
username | the username | |
error | error return |
Definition at line 1474 of file dbus-sysdeps-unix.c.
References DBUS_UID_UNSET.
dbus_bool_t _dbus_user_info_fill_uid | ( | DBusUserInfo * | info, | |
dbus_uid_t | uid, | |||
DBusError * | error | |||
) |
Gets user info for the given user ID.
info | user info object to initialize | |
uid | the user ID | |
error | error return |
Definition at line 1491 of file dbus-sysdeps-unix.c.
References NULL.
void _dbus_user_info_free | ( | DBusUserInfo * | info | ) |
Frees the members of info (but not info itself).
info | the user info struct |
Definition at line 75 of file dbus-userdb.c.
Referenced by _dbus_user_info_free_allocated().
int _dbus_write | ( | int | fd, | |
const DBusString * | buffer, | |||
int | start, | |||
int | len | |||
) |
Thin wrapper around the write() system call that writes a part of a DBusString and handles EINTR for you.
fd | the file descriptor to write | |
buffer | the buffer to write data from | |
start | the first byte in the buffer to write | |
len | the number of bytes to try to write |
Definition at line 330 of file dbus-sysdeps-unix.c.
References _dbus_verbose_bytes_of_string().
int _dbus_write_two | ( | int | fd, | |
const DBusString * | buffer1, | |||
int | start1, | |||
int | len1, | |||
const DBusString * | buffer2, | |||
int | start2, | |||
int | len2 | |||
) |
Like _dbus_write() but will use writev() if possible to write both buffers in sequence.
The return value is the number of bytes written in the first buffer, plus the number written in the second. If the first buffer is written successfully and an error occurs writing the second, the number of bytes in the first is returned (i.e. the error is ignored), on systems that don't have writev. Handles EINTR for you. The second buffer may be NULL.
fd | the file descriptor | |
buffer1 | first buffer | |
start1 | first byte to write in first buffer | |
len1 | number of bytes to write from first buffer | |
buffer2 | second buffer, or NULL | |
start2 | first byte to write in second buffer | |
len2 | number of bytes to write in second buffer |
Definition at line 376 of file dbus-sysdeps-unix.c.
References _dbus_assert, _dbus_write(), and NULL.