|
89 |
char *bdb_cache_dir = "/var/lib/univention-directory-listener"; |
89 |
char *bdb_cache_dir = "/var/lib/univention-directory-listener"; |
90 |
char *bdb_ldap_dir = "/var/lib/univention-ldap"; |
90 |
char *bdb_ldap_dir = "/var/lib/univention-ldap"; |
91 |
|
91 |
|
92 |
BdbCacheMasterEntry bdb_cache_master_entry; |
92 |
CacheMasterEntry cache_master_entry; |
93 |
|
93 |
|
94 |
DB *dbp; |
94 |
DB *dbp; |
95 |
#ifdef WITH_DB42 |
95 |
#ifdef WITH_DB42 |
|
278 |
return fclose(fp) || (rv != 1); |
278 |
return fclose(fp) || (rv != 1); |
279 |
} |
279 |
} |
280 |
|
280 |
|
281 |
int bdb_cache_get_master_entry(BdbCacheMasterEntry *master_entry) { |
281 |
int bdb_cache_get_master_entry(CacheMasterEntry *master_entry) { |
282 |
DBT key, data; |
282 |
DBT key, data; |
283 |
int rv; |
283 |
int rv; |
284 |
|
284 |
|
|
297 |
return rv; |
297 |
return rv; |
298 |
} |
298 |
} |
299 |
|
299 |
|
300 |
if (data.size != sizeof(BdbCacheMasterEntry)) { |
300 |
if (data.size != sizeof(CacheMasterEntry)) { |
301 |
univention_debug(UV_DEBUG_LISTENER, UV_DEBUG_ERROR, "master entry has unexpected length"); |
301 |
univention_debug(UV_DEBUG_LISTENER, UV_DEBUG_ERROR, "master entry has unexpected length"); |
302 |
return 1; |
302 |
return 1; |
303 |
} |
303 |
} |
304 |
|
304 |
|
305 |
memcpy(master_entry, data.data, sizeof(BdbCacheMasterEntry)); |
305 |
memcpy(master_entry, data.data, sizeof(CacheMasterEntry)); |
306 |
free(data.data); |
306 |
free(data.data); |
307 |
|
307 |
|
308 |
return 0; |
308 |
return 0; |
309 |
} |
309 |
} |
310 |
|
310 |
|
311 |
int bdb_cache_update_master_entry(BdbCacheMasterEntry *master_entry, DB_TXN *dbtxnp) { |
311 |
int bdb_cache_update_master_entry(CacheMasterEntry *master_entry, DB_TXN *dbtxnp) { |
312 |
DBT key, data; |
312 |
DBT key, data; |
313 |
int rv; |
313 |
int rv; |
314 |
int flags; |
314 |
int flags; |
|
320 |
key.size = MASTER_KEY_SIZE; |
320 |
key.size = MASTER_KEY_SIZE; |
321 |
|
321 |
|
322 |
data.data = (void *)master_entry; |
322 |
data.data = (void *)master_entry; |
323 |
data.size = sizeof(BdbCacheMasterEntry); |
323 |
data.size = sizeof(CacheMasterEntry); |
324 |
|
324 |
|
325 |
#ifdef WITH_DB42 |
325 |
#ifdef WITH_DB42 |
326 |
if (dbtxnp == NULL) |
326 |
if (dbtxnp == NULL) |
|
343 |
DB_TXN *bdb_cache_new_transaction(NotifierID id, char *dn) { |
343 |
DB_TXN *bdb_cache_new_transaction(NotifierID id, char *dn) { |
344 |
#ifdef WITH_DB42 |
344 |
#ifdef WITH_DB42 |
345 |
DB_TXN *dbtxnp; |
345 |
DB_TXN *dbtxnp; |
346 |
BdbCacheMasterEntry master_entry; |
346 |
CacheMasterEntry master_entry; |
347 |
NotifierID *old_id; |
347 |
NotifierID *old_id; |
348 |
|
348 |
|
349 |
dbenvp->txn_begin(dbenvp, NULL, &dbtxnp, 0); |
349 |
dbenvp->txn_begin(dbenvp, NULL, &dbtxnp, 0); |