00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef DBUS_SYSDEPS_UNIX_H
00026 #define DBUS_SYSDEPS_UNIX_H
00027
00028 #include <dbus/dbus-sysdeps.h>
00029
00030 #ifdef DBUS_WIN
00031 #error "Don't include this on Windows"
00032 #endif
00033
00034 DBUS_BEGIN_DECLS
00035
00043 dbus_bool_t
00044 _dbus_close (int fd,
00045 DBusError *error);
00046 int _dbus_dup (int fd,
00047 DBusError *error);
00048 int
00049 _dbus_read (int fd,
00050 DBusString *buffer,
00051 int count);
00052 int
00053 _dbus_write (int fd,
00054 const DBusString *buffer,
00055 int start,
00056 int len);
00057 int
00058 _dbus_write_two (int fd,
00059 const DBusString *buffer1,
00060 int start1,
00061 int len1,
00062 const DBusString *buffer2,
00063 int start2,
00064 int len2);
00065
00066 dbus_bool_t _dbus_open_unix_socket (int *fd,
00067 DBusError *error);
00068 int _dbus_connect_unix_socket (const char *path,
00069 dbus_bool_t abstract,
00070 DBusError *error);
00071 int _dbus_listen_unix_socket (const char *path,
00072 dbus_bool_t abstract,
00073 DBusError *error);
00074
00075 int _dbus_listen_systemd_sockets (int **fd,
00076 DBusError *error);
00077
00078 dbus_bool_t _dbus_read_credentials (int client_fd,
00079 DBusCredentials *credentials,
00080 DBusError *error);
00081 dbus_bool_t _dbus_send_credentials (int server_fd,
00082 DBusError *error);
00083
00084 dbus_bool_t _dbus_lookup_launchd_socket (DBusString *socket_path,
00085 const char *launchd_env_var,
00086 DBusError *error);
00087
00089 typedef struct DBusUserInfo DBusUserInfo;
00091 typedef struct DBusGroupInfo DBusGroupInfo;
00092
00096 struct DBusUserInfo
00097 {
00098 dbus_uid_t uid;
00099 dbus_gid_t primary_gid;
00100 dbus_gid_t *group_ids;
00101 int n_group_ids;
00102 char *username;
00103 char *homedir;
00104 };
00105
00109 struct DBusGroupInfo
00110 {
00111 dbus_gid_t gid;
00112 char *groupname;
00113 };
00114
00115 dbus_bool_t _dbus_user_info_fill (DBusUserInfo *info,
00116 const DBusString *username,
00117 DBusError *error);
00118 dbus_bool_t _dbus_user_info_fill_uid (DBusUserInfo *info,
00119 dbus_uid_t uid,
00120 DBusError *error);
00121 void _dbus_user_info_free (DBusUserInfo *info);
00122
00123 dbus_bool_t _dbus_group_info_fill (DBusGroupInfo *info,
00124 const DBusString *groupname,
00125 DBusError *error);
00126 dbus_bool_t _dbus_group_info_fill_gid (DBusGroupInfo *info,
00127 dbus_gid_t gid,
00128 DBusError *error);
00129 void _dbus_group_info_free (DBusGroupInfo *info);
00130
00131 dbus_uid_t _dbus_getuid (void);
00132 dbus_uid_t _dbus_geteuid (void);
00133 dbus_gid_t _dbus_getgid (void);
00134
00135 dbus_bool_t _dbus_parse_uid (const DBusString *uid_str,
00136 dbus_uid_t *uid);
00137
00140 DBUS_END_DECLS
00141
00142 #endif