static NTSTATUS dsgetdcname_cache_store(TALLOC_CTX *mem_ctx, const char *domain_name, const DATA_BLOB *blob) { time_t expire_time; char *key; bool ret = false; if (!gencache_init()) { return NT_STATUS_INTERNAL_DB_ERROR; } key = dsgetdcname_cache_key(mem_ctx, domain_name); if (!key) { return NT_STATUS_NO_MEMORY; } expire_time = time(NULL) + DSGETDCNAME_CACHE_TTL; if (gencache_lock_entry(key) != 0) { return NT_STATUS_LOCK_NOT_GRANTED; } ret = gencache_set_data_blob(key, blob, expire_time); gencache_unlock_entry(key); return ret ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; }
static NTSTATUS dsgetdcname_cache_store(TALLOC_CTX *mem_ctx, const char *domain_name, const DATA_BLOB *blob) { time_t expire_time; char *key; bool ret = false; key = dsgetdcname_cache_key(mem_ctx, domain_name); if (!key) { return NT_STATUS_NO_MEMORY; } expire_time = time(NULL) + DSGETDCNAME_CACHE_TTL; ret = gencache_set_data_blob(key, blob, expire_time); return ret ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; }