Lines Matching refs:policy
164 BusPolicy *policy; in bus_policy_new() local
166 policy = dbus_new0 (BusPolicy, 1); in bus_policy_new()
167 if (policy == NULL) in bus_policy_new()
170 policy->refcount = 1; in bus_policy_new()
172 policy->rules_by_uid = _dbus_hash_table_new (DBUS_HASH_UINTPTR, in bus_policy_new()
175 if (policy->rules_by_uid == NULL) in bus_policy_new()
178 policy->rules_by_gid = _dbus_hash_table_new (DBUS_HASH_UINTPTR, in bus_policy_new()
181 if (policy->rules_by_gid == NULL) in bus_policy_new()
184 return policy; in bus_policy_new()
187 bus_policy_unref (policy); in bus_policy_new()
192 bus_policy_ref (BusPolicy *policy) in bus_policy_ref() argument
194 _dbus_assert (policy->refcount > 0); in bus_policy_ref()
196 policy->refcount += 1; in bus_policy_ref()
198 return policy; in bus_policy_ref()
202 bus_policy_unref (BusPolicy *policy) in bus_policy_unref() argument
204 _dbus_assert (policy->refcount > 0); in bus_policy_unref()
206 policy->refcount -= 1; in bus_policy_unref()
208 if (policy->refcount == 0) in bus_policy_unref()
210 _dbus_list_foreach (&policy->default_rules, free_rule_func, NULL); in bus_policy_unref()
211 _dbus_list_clear (&policy->default_rules); in bus_policy_unref()
213 _dbus_list_foreach (&policy->mandatory_rules, free_rule_func, NULL); in bus_policy_unref()
214 _dbus_list_clear (&policy->mandatory_rules); in bus_policy_unref()
216 _dbus_list_foreach (&policy->at_console_true_rules, free_rule_func, NULL); in bus_policy_unref()
217 _dbus_list_clear (&policy->at_console_true_rules); in bus_policy_unref()
219 _dbus_list_foreach (&policy->at_console_false_rules, free_rule_func, NULL); in bus_policy_unref()
220 _dbus_list_clear (&policy->at_console_false_rules); in bus_policy_unref()
222 if (policy->rules_by_uid) in bus_policy_unref()
224 _dbus_hash_table_unref (policy->rules_by_uid); in bus_policy_unref()
225 policy->rules_by_uid = NULL; in bus_policy_unref()
228 if (policy->rules_by_gid) in bus_policy_unref()
230 _dbus_hash_table_unref (policy->rules_by_gid); in bus_policy_unref()
231 policy->rules_by_gid = NULL; in bus_policy_unref()
234 dbus_free (policy); in bus_policy_unref()
271 bus_policy_create_client_policy (BusPolicy *policy, in bus_policy_create_client_policy() argument
286 if (!add_list_to_client (&policy->default_rules, in bus_policy_create_client_policy()
293 if (_dbus_hash_table_get_n_entries (policy->rules_by_gid) > 0) in bus_policy_create_client_policy()
307 list = _dbus_hash_table_lookup_uintptr (policy->rules_by_gid, in bus_policy_create_client_policy()
327 if (_dbus_hash_table_get_n_entries (policy->rules_by_uid) > 0) in bus_policy_create_client_policy()
331 list = _dbus_hash_table_lookup_uintptr (policy->rules_by_uid, in bus_policy_create_client_policy()
346 if (!add_list_to_client (&policy->at_console_true_rules, client)) in bus_policy_create_client_policy()
353 else if (!add_list_to_client (&policy->at_console_false_rules, client)) in bus_policy_create_client_policy()
359 if (!add_list_to_client (&policy->mandatory_rules, in bus_policy_create_client_policy()
437 bus_policy_allow_unix_user (BusPolicy *policy, in bus_policy_allow_unix_user() argument
456 &policy->default_rules, in bus_policy_allow_unix_user()
461 &policy->mandatory_rules, in bus_policy_allow_unix_user()
479 bus_policy_allow_windows_user (BusPolicy *policy, in bus_policy_allow_windows_user() argument
490 bus_policy_append_default_rule (BusPolicy *policy, in bus_policy_append_default_rule() argument
493 if (!_dbus_list_append (&policy->default_rules, rule)) in bus_policy_append_default_rule()
502 bus_policy_append_mandatory_rule (BusPolicy *policy, in bus_policy_append_mandatory_rule() argument
505 if (!_dbus_list_append (&policy->mandatory_rules, rule)) in bus_policy_append_mandatory_rule()
540 bus_policy_append_user_rule (BusPolicy *policy, in bus_policy_append_user_rule() argument
546 list = get_list (policy->rules_by_uid, uid); in bus_policy_append_user_rule()
560 bus_policy_append_group_rule (BusPolicy *policy, in bus_policy_append_group_rule() argument
566 list = get_list (policy->rules_by_gid, gid); in bus_policy_append_group_rule()
580 bus_policy_append_console_rule (BusPolicy *policy, in bus_policy_append_console_rule() argument
586 if (!_dbus_list_append (&policy->at_console_true_rules, rule)) in bus_policy_append_console_rule()
591 if (!_dbus_list_append (&policy->at_console_false_rules, rule)) in bus_policy_append_console_rule()
657 bus_policy_merge (BusPolicy *policy, in bus_policy_merge() argument
664 if (!append_copy_of_policy_list (&policy->default_rules, in bus_policy_merge()
668 if (!append_copy_of_policy_list (&policy->mandatory_rules, in bus_policy_merge()
672 if (!append_copy_of_policy_list (&policy->at_console_true_rules, in bus_policy_merge()
676 if (!append_copy_of_policy_list (&policy->at_console_false_rules, in bus_policy_merge()
680 if (!merge_id_hash (policy->rules_by_uid, in bus_policy_merge()
684 if (!merge_id_hash (policy->rules_by_gid, in bus_policy_merge()
701 BusClientPolicy *policy; in bus_client_policy_new() local
703 policy = dbus_new0 (BusClientPolicy, 1); in bus_client_policy_new()
704 if (policy == NULL) in bus_client_policy_new()
707 policy->refcount = 1; in bus_client_policy_new()
709 return policy; in bus_client_policy_new()
713 bus_client_policy_ref (BusClientPolicy *policy) in bus_client_policy_ref() argument
715 _dbus_assert (policy->refcount > 0); in bus_client_policy_ref()
717 policy->refcount += 1; in bus_client_policy_ref()
719 return policy; in bus_client_policy_ref()
732 bus_client_policy_unref (BusClientPolicy *policy) in bus_client_policy_unref() argument
734 _dbus_assert (policy->refcount > 0); in bus_client_policy_unref()
736 policy->refcount -= 1; in bus_client_policy_unref()
738 if (policy->refcount == 0) in bus_client_policy_unref()
740 _dbus_list_foreach (&policy->rules, in bus_client_policy_unref()
744 _dbus_list_clear (&policy->rules); in bus_client_policy_unref()
746 dbus_free (policy); in bus_client_policy_unref()
751 remove_rules_by_type_up_to (BusClientPolicy *policy, in remove_rules_by_type_up_to() argument
757 link = _dbus_list_get_first_link (&policy->rules); in remove_rules_by_type_up_to()
761 DBusList *next = _dbus_list_get_next_link (&policy->rules, link); in remove_rules_by_type_up_to()
765 _dbus_list_remove_link (&policy->rules, link); in remove_rules_by_type_up_to()
774 bus_client_policy_optimize (BusClientPolicy *policy) in bus_client_policy_optimize() argument
793 _dbus_list_get_length (&policy->rules)); in bus_client_policy_optimize()
795 link = _dbus_list_get_first_link (&policy->rules); in bus_client_policy_optimize()
802 next = _dbus_list_get_next_link (&policy->rules, link); in bus_client_policy_optimize()
840 remove_rules_by_type_up_to (policy, rule->type, in bus_client_policy_optimize()
847 _dbus_list_get_length (&policy->rules)); in bus_client_policy_optimize()
851 bus_client_policy_append_rule (BusClientPolicy *policy, in bus_client_policy_append_rule() argument
855 rule, rule->type, policy); in bus_client_policy_append_rule()
857 if (!_dbus_list_append (&policy->rules, rule)) in bus_client_policy_append_rule()
866 bus_client_policy_check_can_send (BusClientPolicy *policy, in bus_client_policy_check_can_send() argument
885 link = _dbus_list_get_first_link (&policy->rules); in bus_client_policy_check_can_send()
890 link = _dbus_list_get_next_link (&policy->rules, link); in bus_client_policy_check_can_send()
1047 bus_client_policy_check_can_receive (BusClientPolicy *policy, in bus_client_policy_check_can_receive() argument
1072 link = _dbus_list_get_first_link (&policy->rules); in bus_client_policy_check_can_receive()
1077 link = _dbus_list_get_next_link (&policy->rules, link); in bus_client_policy_check_can_receive()
1299 bus_client_policy_check_can_own (BusClientPolicy *policy, in bus_client_policy_check_can_own() argument
1302 return bus_rules_check_can_own (policy->rules, service_name); in bus_client_policy_check_can_own()
1307 bus_policy_check_can_own (BusPolicy *policy, in bus_policy_check_can_own() argument
1310 return bus_rules_check_can_own (policy->default_rules, service_name); in bus_policy_check_can_own()