2003-01-21 Havoc Pennington <hp@pobox.com>
[platform/upstream/dbus.git] / dbus / dbus-sysdeps.h
index 92b782a..5b9a0c0 100644 (file)
@@ -31,6 +31,9 @@
  */
 #include <string.h>
 
+/* and it would just be annoying to abstract this */
+#include <errno.h>
+
 DBUS_BEGIN_DECLS;
 
 /* The idea of this file is to encapsulate everywhere that we're
@@ -46,6 +49,78 @@ void _dbus_abort (void);
 
 const char* _dbus_getenv (const char *varname);
 
+
+int _dbus_read      (int               fd,
+                     DBusString       *buffer,
+                     int               count);
+int _dbus_write     (int               fd,
+                     const DBusString *buffer,
+                     int               start,
+                     int               len);
+int _dbus_write_two (int               fd,
+                     const DBusString *buffer1,
+                     int               start1,
+                     int               len1,
+                     const DBusString *buffer2,
+                     int               start2,
+                     int               len2);
+
+typedef struct
+{
+  /* -1 if not available */
+  int pid;
+  int uid;
+  int gid;
+} DBusCredentials;
+
+int _dbus_connect_unix_socket (const char     *path,
+                               DBusResultCode *result);
+int _dbus_listen_unix_socket  (const char     *path,
+                               DBusResultCode *result);
+int _dbus_accept              (int             listen_fd);
+
+dbus_bool_t _dbus_read_credentials_unix_socket (int              client_fd,
+                                                DBusCredentials *credentials,
+                                                DBusResultCode  *result);
+dbus_bool_t _dbus_send_credentials_unix_socket (int              server_fd,
+                                                DBusResultCode  *result);
+
+
+dbus_bool_t _dbus_credentials_from_username        (const DBusString      *username,
+                                                    DBusCredentials       *credentials);
+dbus_bool_t _dbus_credentials_from_uid_string      (const DBusString      *uid_str,
+                                                    DBusCredentials       *credentials);
+void        _dbus_credentials_from_current_process (DBusCredentials       *credentials);
+dbus_bool_t _dbus_credentials_match                (const DBusCredentials *expected_credentials,
+                                                    const DBusCredentials *provided_credentials);
+
+dbus_bool_t _dbus_string_append_our_uid (DBusString *str);
+
+
+
+#define _DBUS_POLLIN      0x0001    /* There is data to read */
+#define _DBUS_POLLPRI     0x0002    /* There is urgent data to read */
+#define _DBUS_POLLOUT     0x0004    /* Writing now will not block */
+#define _DBUS_POLLERR     0x0008    /* Error condition */
+#define _DBUS_POLLHUP     0x0010    /* Hung up */
+#define _DBUS_POLLNVAL    0x0020    /* Invalid request: fd not open */
+
+typedef struct
+{
+  int fd;
+  short events;
+  short revents;
+} DBusPollFD;
+
+int _dbus_poll (DBusPollFD *fds,
+                int         n_fds,
+                int         timeout_milliseconds);
+
+void _dbus_sleep_milliseconds (int milliseconds);
+
+void _dbus_get_current_time (long *tv_sec,
+                             long *tv_usec);
+
 DBUS_END_DECLS;
 
 #endif /* DBUS_SYSDEPS_H */