Files
Nicolas Williams ed4b1be5bb kadm5: Add online kadm5_iter_principals()
kadm5_get_principals() is not online.  If you have... many principals,
it will be slow.  At least it's no longer quadratic, but it, it's still
slow.  Time to add a version that uses a callback:

    kadm5_ret_t
    kadm5_iter_principals(void *server_handle,
                          const char *expression,
                          int (*cb)(void *, const char *),
                          void *cbdata)

The callback gets called with the given callback data and one principal
name (unparsed).

Note that the callback MUST NOT re-enter the kadm5 library with the
*same* kadm handle.  For example, the kadmin protocol doesn't really
multiplex requests well, though it could pipeline them, but it can't
pipeline when LIST is running, not with the protocol implemented here,
so a separate connection is needed, and that requires a separate kadm
handle.  We add kadm5_dup_context() to deal with this.
2022-03-20 18:27:03 -05:00

99 lines
2.3 KiB
Plaintext

# $Id$
HEIMDAL_KAMD5_SERVER_1.0 {
global:
kadm5_ad_init_with_password;
kadm5_ad_init_with_password_ctx;
kadm5_all_keys_are_bogus;
kadm5_add_passwd_quality_verifier;
kadm5_check_password_quality;
kadm5_chpass_principal;
kadm5_chpass_principal_3;
kadm5_chpass_principal_with_key;
kadm5_chpass_principal_with_key_3;
kadm5_create_policy;
kadm5_create_principal;
kadm5_create_principal_3;
kadm5_delete_principal;
kadm5_destroy;
kadm5_dup_context;
kadm5_decrypt_key;
kadm5_delete_policy;
kadm5_flush;
kadm5_free_key_data;
kadm5_free_name_list;
kadm5_free_policy_ent;
kadm5_free_principal_ent;
kadm5_get_instance;
kadm5_get_policy;
kadm5_get_policies;
kadm5_get_principal;
kadm5_get_principals;
kadm5_get_privs;
kadm5_init_with_creds;
kadm5_init_with_creds_ctx;
kadm5_init_with_password;
kadm5_init_with_password_ctx;
kadm5_init_with_skey;
kadm5_init_with_skey_ctx;
kadm5_iter_principals;
kadm5_lock;
kadm5_modify_principal;
kadm5_modify_policy;
kadm5_prune_principal;
kadm5_randkey_principal;
kadm5_randkey_principal_3;
kadm5_rename_principal;
kadm5_ret_key_data;
kadm5_ret_principal_ent;
kadm5_ret_principal_ent_mask;
kadm5_ret_tl_data;
kadm5_setup_passwd_quality_check;
kadm5_setkey_principal;
kadm5_setkey_principal_3;
kadm5_some_keys_are_bogus;
kadm5_store_key_data;
kadm5_store_principal_ent;
kadm5_store_principal_ent_mask;
kadm5_store_principal_ent_nokeys;
kadm5_store_tl_data;
kadm5_unlock;
kadm5_s_init_with_password_ctx;
kadm5_s_init_with_password;
kadm5_s_init_with_skey_ctx;
kadm5_s_init_with_skey;
kadm5_s_init_with_creds_ctx;
kadm5_s_init_with_creds;
kadm5_s_chpass_principal_cond;
kadm5_s_create_principal_with_key;
kadm5_log_exclusivelock;
kadm5_log_set_version;
kadm5_log_sharedlock;
kadm5_log_signal_master;
kadm5_log_signal_socket;
kadm5_log_previous;
kadm5_log_goto_first;
kadm5_log_goto_end;
kadm5_log_foreach;
kadm5_log_get_version_fd;
kadm5_log_get_version;
kadm5_log_recover;
kadm5_log_replay;
kadm5_log_end;
kadm5_log_reinit;
kadm5_log_init;
kadm5_log_init_nb;
kadm5_log_init_nolock;
kadm5_log_init_sharedlock;
kadm5_log_next;
kadm5_log_nop;
kadm5_log_truncate;
kadm5_log_modify;
_kadm5_acl_check_permission;
_kadm5_unmarshal_params;
_kadm5_s_get_db;
_kadm5_privs_to_string;
local:
*;
};