#include <dbus/dbus-errors.h>
#include <dbus/dbus-transport.h>
#include <dbus/dbus-message-internal.h>
+#include <dbus/dbus-authorization.h>
#include <dbus/dbus-auth.h>
#include <dbus/dbus-resources.h>
DBusMessageLoader *loader; /**< Message-loading buffer. */
DBusAuth *auth; /**< Authentication conversation */
+ DBusAuthorization *authorization; /**< Authorization conversation */
DBusCredentials *credentials; /**< Credentials of other end read from the socket */
long max_live_messages_size; /**< Max total size of received messages. */
+ long max_live_messages_unix_fds; /**< Max total unix fds of received messages. */
- DBusCounter *live_messages_size; /**< Counter for size of all live messages. */
-
+ DBusCounter *live_messages; /**< Counter for size/unix fds of all live messages. */
char *address; /**< Address of the server we are connecting to (#NULL for the server side of a transport) */
char *expected_guid; /**< GUID we expect the server to have, #NULL on server side or if we don't have an expectation */
- DBusAllowUnixUserFunction unix_user_function; /**< Function for checking whether a user is authorized. */
- void *unix_user_data; /**< Data for unix_user_function */
-
- DBusFreeFunction free_unix_user_data; /**< Function to free unix_user_data */
-
- DBusAllowWindowsUserFunction windows_user_function; /**< Function for checking whether a user is authorized. */
- void *windows_user_data; /**< Data for windows_user_function */
-
- DBusFreeFunction free_windows_user_data; /**< Function to free windows_user_data */
-
unsigned int disconnected : 1; /**< #TRUE if we are disconnected. */
- unsigned int authenticated : 1; /**< Cache of auth state; use _dbus_transport_get_is_authenticated() to query value */
+ unsigned int authenticated : 1; /**< Cache of auth state; use _dbus_transport_peek_is_authenticated() to query value */
unsigned int send_credentials_pending : 1; /**< #TRUE if we need to send credentials */
unsigned int receive_credentials_pending : 1; /**< #TRUE if we need to receive credentials */
unsigned int is_server : 1; /**< #TRUE if on the server side */
unsigned int unused_bytes_recovered : 1; /**< #TRUE if we've recovered unused bytes from auth */
- unsigned int allow_anonymous : 1; /**< #TRUE if an anonymous client can connect */
};
dbus_bool_t _dbus_transport_init_base (DBusTransport *transport,
DBusTransport **transport_p,
DBusError *error);
+#define DBUS_TRANSPORT_CAN_SEND_UNIX_FD(x) \
+ _dbus_auth_get_unix_fd_negotiated((x)->auth)
+
DBUS_END_DECLS
#endif /* DBUS_TRANSPORT_PROTECTED_H */