コード例 #1
0
ファイル: as_admin.c プロジェクト: XeCycle/aerospike-client-c
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;
}
コード例 #2
0
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;
}