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
00085 typedef struct DBusUserInfo DBusUserInfo;
00087 typedef struct DBusGroupInfo DBusGroupInfo;
00088
00092 struct DBusUserInfo
00093 {
00094 dbus_uid_t uid;
00095 dbus_gid_t primary_gid;
00096 dbus_gid_t *group_ids;
00097 int n_group_ids;
00098 char *username;
00099 char *homedir;
00100 };
00101
00105 struct DBusGroupInfo
00106 {
00107 dbus_gid_t gid;
00108 char *groupname;
00109 };
00110
00111 dbus_bool_t _dbus_user_info_fill (DBusUserInfo *info,
00112 const DBusString *username,
00113 DBusError *error);
00114 dbus_bool_t _dbus_user_info_fill_uid (DBusUserInfo *info,
00115 dbus_uid_t uid,
00116 DBusError *error);
00117 void _dbus_user_info_free (DBusUserInfo *info);
00118
00119 dbus_bool_t _dbus_group_info_fill (DBusGroupInfo *info,
00120 const DBusString *groupname,
00121 DBusError *error);
00122 dbus_bool_t _dbus_group_info_fill_gid (DBusGroupInfo *info,
00123 dbus_gid_t gid,
00124 DBusError *error);
00125 void _dbus_group_info_free (DBusGroupInfo *info);
00126
00127 dbus_uid_t _dbus_getuid (void);
00128 dbus_uid_t _dbus_geteuid (void);
00129 dbus_gid_t _dbus_getgid (void);
00130
00131 dbus_bool_t _dbus_parse_uid (const DBusString *uid_str,
00132 dbus_uid_t *uid);
00133
00136 DBUS_END_DECLS
00137
00138 #endif