D-Bus  1.12.16
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 
35 
43 DBUS_PRIVATE_EXPORT
45 _dbus_close (int fd,
46  DBusError *error);
47 DBUS_PRIVATE_EXPORT
48 int _dbus_dup (int fd,
49  DBusError *error);
50 DBUS_PRIVATE_EXPORT
51 int
52 _dbus_read (int fd,
53  DBusString *buffer,
54  int count);
55 int
56 _dbus_write (int fd,
57  const DBusString *buffer,
58  int start,
59  int len);
60 int
61 _dbus_write_two (int fd,
62  const DBusString *buffer1,
63  int start1,
64  int len1,
65  const DBusString *buffer2,
66  int start2,
67  int len2);
68 
69 int _dbus_connect_unix_socket (const char *path,
70  dbus_bool_t abstract,
71  DBusError *error);
72 int _dbus_listen_unix_socket (const char *path,
73  dbus_bool_t abstract,
74  DBusError *error);
75 
76 int _dbus_connect_exec (const char *path,
77  char *const argv[],
78  DBusError *error);
79 
81  DBusError *error);
82 
83 dbus_bool_t _dbus_read_credentials (int client_fd,
84  DBusCredentials *credentials,
85  DBusError *error);
86 dbus_bool_t _dbus_send_credentials (int server_fd,
87  DBusError *error);
88 
90  const char *launchd_env_var,
91  DBusError *error);
92 
93 DBUS_PRIVATE_EXPORT
94 dbus_bool_t _dbus_lookup_user_bus (dbus_bool_t *supported,
95  DBusString *address,
96  DBusError *error);
97 
99 typedef struct DBusUserInfo DBusUserInfo;
102 
107 {
112  char *username;
113  char *homedir;
114 };
115 
120 {
122  char *groupname;
123 };
124 
126  const DBusString *username,
127  DBusError *error);
129  dbus_uid_t uid,
130  DBusError *error);
132 
134  const DBusString *groupname,
135  DBusError *error);
137  dbus_gid_t gid,
138  DBusError *error);
140 
141 DBUS_PRIVATE_EXPORT
143 
144 dbus_bool_t _dbus_parse_uid (const DBusString *uid_str,
145  dbus_uid_t *uid);
146 
147 DBUS_PRIVATE_EXPORT
148 void _dbus_close_all (void);
149 
151  DBusString *address,
152  DBusError *error);
153 
154 DBUS_PRIVATE_EXPORT
155 void _dbus_fd_set_close_on_exec (int fd);
156 
157 typedef enum
158 {
159  DBUS_FORCE_STDIN_NULL = (1 << 0),
160  DBUS_FORCE_STDOUT_NULL = (1 << 1),
161  DBUS_FORCE_STDERR_NULL = (1 << 2)
162 } DBusEnsureStandardFdsFlags;
163 
164 DBUS_PRIVATE_EXPORT
165 dbus_bool_t _dbus_ensure_standard_fds (DBusEnsureStandardFdsFlags flags,
166  const char **error_str_p);
167 
169 typedef void (* DBusSignalHandler) (int sig);
170 
171 void _dbus_set_signal_handler (int sig,
172  DBusSignalHandler handler);
173 
177 
178 #endif /* DBUS_SYSDEPS_UNIX_H */