as_status aerospike_change_password(aerospike* as, as_error* err, const as_policy_admin* policy, const char* user, const char* password) { as_error_reset(err); char hash[AS_PASSWORD_HASH_SIZE]; as_password_get_constant_hash(password, hash); if (! user) { user = as->cluster->user; } uint8_t buffer[AS_STACK_BUF_SIZE]; uint8_t* p = buffer + 8; p = as_admin_write_header(p, CHANGE_PASSWORD, 3); p = as_admin_write_field_string(p, USER, user); p = as_admin_write_field_string(p, OLD_PASSWORD, as->cluster->password); p = as_admin_write_field_string(p, PASSWORD, hash); int status = as_admin_execute(as, err, policy, buffer, p); if (status == 0) { as_cluster_change_password(as->cluster, user, hash); } return status; }
int aerospike_set_password(aerospike* as, const as_policy_admin* policy, const char* user, const char* password) { char hash[AS_PASSWORD_HASH_SIZE]; as_password_get_constant_hash(password, hash); if (! user) { user = as->cluster->user; } uint8_t buffer[STACK_BUF_SZ]; uint8_t* p = buffer + 8; p = write_header(p, SET_PASSWORD, 2); p = write_field_string(p, USER, user); p = write_field_string(p, PASSWORD, hash); int status = as_execute(as, policy, buffer, p); if (status == 0) { as_cluster_change_password(as->cluster, user, hash); } return status; }