D-Bus: dbus-sysdeps-unix.h Source File

D-Bus 1.8.16

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List

dbus-sysdeps-unix.h
1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2 /* dbus-sysdeps-unix.h UNIX-specific wrappers around system/libc features (internal to D-Bus implementation)
3 *
4 * Copyright (C) 2002, 2003, 2006 Red Hat, Inc.
5 * Copyright (C) 2003 CodeFactory AB
6 *
7 * Licensed under the Academic Free License version 2.1
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 *
23 */
24
25 #ifndef DBUS_SYSDEPS_UNIX_H
26 #define DBUS_SYSDEPS_UNIX_H
27
28 #include <dbus/dbus-sysdeps.h>
29
30 #ifdef DBUS_WIN
31 #error "Don't include this on Windows"
32 #endif
33
34 DBUS_BEGIN_DECLS
35
43 dbus_bool_t
44 _dbus_close (int fd,
45 DBusError *error);
46 int _dbus_dup (int fd,
47 DBusError *error);
48 int
49 _dbus_read (int fd,
50 DBusString *buffer,
51 int count);
52 int
53 _dbus_write (int fd,
54 const DBusString *buffer,
55 int start,
56 int len);
57 int
58 _dbus_write_two (int fd,
59 const DBusString *buffer1,
60 int start1,
61 int len1,
62 const DBusString *buffer2,
63 int start2,
64 int len2);
65
66 int _dbus_connect_unix_socket (const char *path,
67 dbus_bool_t abstract,
68 DBusError *error);
69 int _dbus_listen_unix_socket (const char *path,
70 dbus_bool_t abstract,
71 DBusError *error);
72
73 int _dbus_connect_exec (const char *path,
74 char *const argv[],
75 DBusError *error);
76
77 int _dbus_listen_systemd_sockets (int **fd,
78 DBusError *error);
79
80 dbus_bool_t _dbus_read_credentials (int client_fd,
81 DBusCredentials *credentials,
82 DBusError *error);
83 dbus_bool_t _dbus_send_credentials (int server_fd,
84 DBusError *error);
85
86 dbus_bool_t _dbus_lookup_launchd_socket (DBusString *socket_path,
87 const char *launchd_env_var,
88 DBusError *error);
89
91 typedef struct DBusUserInfo DBusUserInfo;
93 typedef struct DBusGroupInfo DBusGroupInfo;
94
98 struct DBusUserInfo
99 {
100 dbus_uid_t uid;
101 dbus_gid_t primary_gid;
102 dbus_gid_t *group_ids;
103 int n_group_ids;
104 char *username;
105 char *homedir;
106 };
107
111 struct DBusGroupInfo
112 {
113 dbus_gid_t gid;
114 char *groupname;
115 };
116
117 dbus_bool_t _dbus_user_info_fill (DBusUserInfo *info,
118 const DBusString *username,
119 DBusError *error);
120 dbus_bool_t _dbus_user_info_fill_uid (DBusUserInfo *info,
121 dbus_uid_t uid,
122 DBusError *error);
123 void _dbus_user_info_free (DBusUserInfo *info);
124
125 dbus_bool_t _dbus_group_info_fill (DBusGroupInfo *info,
126 const DBusString *groupname,
127 DBusError *error);
128 dbus_bool_t _dbus_group_info_fill_gid (DBusGroupInfo *info,
129 dbus_gid_t gid,
130 DBusError *error);
131 void _dbus_group_info_free (DBusGroupInfo *info);
132
133 dbus_uid_t _dbus_getuid (void);
134 dbus_uid_t _dbus_geteuid (void);
135
136 dbus_bool_t _dbus_parse_uid (const DBusString *uid_str,
137 dbus_uid_t *uid);
138
139 void _dbus_close_all (void);
140
141 dbus_bool_t _dbus_append_address_from_socket (int fd,
142 DBusString *address,
143 DBusError *error);
144
147 DBUS_END_DECLS
148
149 #endif /* DBUS_SYSDEPS_UNIX_H */
DBusUserInfo::username
char * username
Username.
Definition: dbus-sysdeps-unix.h:104
DBusCredentials
Definition: dbus-credentials.c:48
DBUS_BEGIN_DECLS
#define DBUS_BEGIN_DECLS
Macro used prior to declaring functions in the D-Bus header files.
_dbus_write
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 ...
Definition: dbus-sysdeps-unix.c:685
_dbus_append_address_from_socket
dbus_bool_t _dbus_append_address_from_socket(int fd, DBusString *address, DBusError *error)
Read the address from the socket and append it to the string.
Definition: dbus-sysdeps-unix.c:4106
DBusUserInfo::primary_gid
dbus_gid_t primary_gid
GID.
Definition: dbus-sysdeps-unix.h:101
_dbus_dup
int _dbus_dup(int fd, DBusError *error)
Duplicates a file descriptor.
Definition: dbus-sysdeps-unix.c:2986
DBusGroupInfo::groupname
char * groupname
Group name.
Definition: dbus-sysdeps-unix.h:114
_dbus_parse_uid
dbus_bool_t _dbus_parse_uid(const DBusString *uid_str, dbus_uid_t *uid)
Gets a UID from a UID string.
Definition: dbus-sysdeps-unix.c:2452
_dbus_user_info_fill
dbus_bool_t _dbus_user_info_fill(DBusUserInfo *info, const DBusString *username, DBusError *error)
Gets user info for the given username.
Definition: dbus-sysdeps-unix.c:2335
DBusUserInfo::group_ids
dbus_gid_t * group_ids
Groups IDs, including above primary group.
Definition: dbus-sysdeps-unix.h:102
_dbus_lookup_launchd_socket
dbus_bool_t _dbus_lookup_launchd_socket(DBusString *socket_path, const char *launchd_env_var, DBusError *error)
quries launchd for a specific env var which holds the socket path.
Definition: dbus-sysdeps-unix.c:3657
_dbus_close_all
void _dbus_close_all(void)
Closes all file descriptors except the first three (i.e.
Definition: dbus-sysdeps-unix.c:3983
DBusString
Definition: dbus-string.h:42
dbus_bool_t
dbus_uint32_t dbus_bool_t
A boolean, valid values are TRUE and FALSE.
Definition: dbus-types.h:35
DBusUserInfo::n_group_ids
int n_group_ids
Size of group IDs array.
Definition: dbus-sysdeps-unix.h:103
DBusUserInfo::uid
dbus_uid_t uid
UID.
Definition: dbus-sysdeps-unix.h:100
_dbus_group_info_fill_gid
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...
Definition: dbus-sysdeps-util-unix.c:1014
_dbus_group_info_free
void _dbus_group_info_free(DBusGroupInfo *info)
Frees the members of info (but not info itself).
Definition: dbus-userdb.c:89
_dbus_user_info_free
void _dbus_user_info_free(DBusUserInfo *info)
Frees the members of info (but not info itself)
Definition: dbus-userdb.c:76
DBusError
Object representing an exception.
Definition: dbus-errors.h:48
_dbus_close
dbus_bool_t _dbus_close(int fd, DBusError *error)
Closes a file descriptor.
Definition: dbus-sysdeps-unix.c:2958
_dbus_connect_exec
int _dbus_connect_exec(const char *path, char *const argv[], DBusError *error)
Creates a UNIX domain socket and connects it to the specified process to execute. ...
Definition: dbus-sysdeps-unix.c:926
_dbus_group_info_fill
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...
Definition: dbus-sysdeps-util-unix.c:995
DBusUserInfo::homedir
char * homedir
Home directory.
Definition: dbus-sysdeps-unix.h:105
_dbus_getuid
dbus_uid_t _dbus_getuid(void)
Gets our UID.
Definition: dbus-sysdeps-unix.c:2418
DBusGroupInfo
Information about a UNIX group.
Definition: dbus-sysdeps-unix.h:111
_dbus_user_info_fill_uid
dbus_bool_t _dbus_user_info_fill_uid(DBusUserInfo *info, dbus_uid_t uid, DBusError *error)
Gets user info for the given user ID.
Definition: dbus-sysdeps-unix.c:2352
_dbus_write_two
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.
Definition: dbus-sysdeps-unix.c:731
DBusGroupInfo::gid
dbus_gid_t gid
GID.
Definition: dbus-sysdeps-unix.h:113
_dbus_geteuid
dbus_uid_t _dbus_geteuid(void)
Gets our effective UID.
Definition: dbus-sysdeps-unix.c:2427
dbus_gid_t
unsigned long dbus_gid_t
A group ID.
Definition: dbus-sysdeps.h:100
dbus_uid_t
unsigned long dbus_uid_t
A user ID.
Definition: dbus-sysdeps.h:98
_dbus_connect_unix_socket
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.
Definition: dbus-sysdeps-unix.c:830
_dbus_read
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...
Definition: dbus-sysdeps-unix.c:625
_dbus_listen_unix_socket
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.
Definition: dbus-sysdeps-unix.c:1032
_dbus_listen_systemd_sockets
int _dbus_listen_systemd_sockets(int **fd, DBusError *error)
Acquires one or more sockets passed in from systemd.
Definition: dbus-sysdeps-unix.c:1159
DBusUserInfo
Information about a UNIX user.
Definition: dbus-sysdeps-unix.h:98
DBUS_END_DECLS
#define DBUS_END_DECLS
Macro used after declaring functions in the D-Bus header files.