1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24: #ifndef BUS_BUS_H
25: #define BUS_BUS_H
26:
27: #include <config.h>
28:
29: #include <dbus/dbus.h>
30: #include <dbus/dbus-string.h>
31: #include <dbus/dbus-mainloop.h>
32: #include <dbus/dbus-userdb.h>
33:
34: typedef struct BusActivation BusActivation;
35: typedef struct BusConnections BusConnections;
36: typedef struct BusContext BusContext;
37: typedef struct BusPolicy BusPolicy;
38: typedef struct BusClientPolicy BusClientPolicy;
39: typedef struct BusPolicyRule BusPolicyRule;
40: typedef struct BusRegistry BusRegistry;
41: typedef struct BusSELinuxID BusSELinuxID;
42: typedef struct BusService BusService;
43: typedef struct BusOwner BusOwner;
44: typedef struct BusTransaction BusTransaction;
45: typedef struct BusMatchmaker BusMatchmaker;
46: typedef struct BusMatchRule BusMatchRule;
47:
48: typedef struct
49: {
50: long max_incoming_bytes;
51: long max_outgoing_bytes;
52: long max_message_size;
53: int activation_timeout;
54: int auth_timeout;
55: int max_completed_connections;
56: int max_incomplete_connections;
57: int max_connections_per_user;
58: int max_pending_activations;
59: int max_services_per_connection;
60: int max_match_rules_per_connection;
61: int max_replies_per_connection;
62: int reply_timeout;
63: } BusLimits;
64:
65: typedef enum
66: {
67: FORK_FOLLOW_CONFIG_FILE,
68: FORK_ALWAYS,
69: FORK_NEVER
70: } ForceForkSetting;
71:
72: BusContext* bus_context_new (const DBusString *config_file,
73: ForceForkSetting force_fork,
74: int print_addr_fd,
75: int print_pid_fd,
76: DBusError *error);
77: dbus_bool_t bus_context_reload_config (BusContext *context,
78: DBusError *error);
79: void bus_context_shutdown (BusContext *context);
80: BusContext* bus_context_ref (BusContext *context);
81: void bus_context_unref (BusContext *context);
82: const char* bus_context_get_type (BusContext *context);
83: const char* bus_context_get_address (BusContext *context);
84: BusRegistry* bus_context_get_registry (BusContext *context);
85: BusConnections* bus_context_get_connections (BusContext *context);
86: BusActivation* bus_context_get_activation (BusContext *context);
87: BusMatchmaker* bus_context_get_matchmaker (BusContext *context);
88: DBusLoop* bus_context_get_loop (BusContext *context);
89: DBusUserDatabase* bus_context_get_user_database (BusContext *context);
90:
91: dbus_bool_t bus_context_allow_user (BusContext *context,
92: unsigned long uid);
93: BusPolicy* bus_context_get_policy (BusContext *context);
94:
95: BusClientPolicy* bus_context_create_client_policy (BusContext *context,
96: DBusConnection *connection,
97: DBusError *error);
98: int bus_context_get_activation_timeout (BusContext *context);
99: int bus_context_get_auth_timeout (BusContext *context);
100: int bus_context_get_max_completed_connections (BusContext *context);
101: int bus_context_get_max_incomplete_connections (BusContext *context);
102: int bus_context_get_max_connections_per_user (BusContext *context);
103: int bus_context_get_max_pending_activations (BusContext *context);
104: int bus_context_get_max_services_per_connection (BusContext *context);
105: int bus_context_get_max_match_rules_per_connection (BusContext *context);
106: int bus_context_get_max_replies_per_connection (BusContext *context);
107: int bus_context_get_reply_timeout (BusContext *context);
108: dbus_bool_t bus_context_check_security_policy (BusContext *context,
109: BusTransaction *transaction,
110: DBusConnection *sender,
111: DBusConnection *addressed_recipient,
112: DBusConnection *proposed_recipient,
113: DBusMessage *message,
114: DBusError *error);
115:
116: #endif