Lines Matching refs:dict_dbm

1 /*	$NetBSD: dict_dbm.c,v 1.2 2017/02/14 01:16:49 christos Exp $	*/
5 /* dict_dbm 3
9 /* #include <dict_dbm.h>
64 #include "dict_dbm.h"
83 DICT_DBM *dict_dbm = (DICT_DBM *) dict;
111 msg_fatal("%s: lock dictionary: %m", dict_dbm->dict.name);
120 dbm_value = dbm_fetch(dict_dbm->dbm, dbm_key);
123 result = SCOPY(dict_dbm->val_buf, dbm_value.dptr, dbm_value.dsize);
134 dbm_value = dbm_fetch(dict_dbm->dbm, dbm_key);
137 result = SCOPY(dict_dbm->val_buf, dbm_value.dptr, dbm_value.dsize);
146 msg_fatal("%s: unlock dictionary: %m", dict_dbm->dict.name);
155 DICT_DBM *dict_dbm = (DICT_DBM *) dict;
208 msg_fatal("%s: lock dictionary: %m", dict_dbm->dict.name);
213 if ((status = dbm_store(dict_dbm->dbm, dbm_key, dbm_value,
215 msg_fatal("error writing DBM database %s: %m", dict_dbm->dict.name);
220 msg_warn("%s: duplicate entry: \"%s\"", dict_dbm->dict.name, name);
222 msg_fatal("%s: duplicate entry: \"%s\"", dict_dbm->dict.name, name);
230 msg_fatal("%s: unlock dictionary: %m", dict_dbm->dict.name);
239 DICT_DBM *dict_dbm = (DICT_DBM *) dict;
266 msg_fatal("%s: lock dictionary: %m", dict_dbm->dict.name);
275 dbm_clearerr(dict_dbm->dbm);
276 if ((status = dbm_delete(dict_dbm->dbm, dbm_key)) < 0) {
277 if (dbm_error(dict_dbm->dbm) != 0) /* fatal error */
278 msg_fatal("error deleting from %s: %m", dict_dbm->dict.name);
292 dbm_clearerr(dict_dbm->dbm);
293 if ((status = dbm_delete(dict_dbm->dbm, dbm_key)) < 0) {
294 if (dbm_error(dict_dbm->dbm) != 0) /* fatal error */
295 msg_fatal("error deleting from %s: %m", dict_dbm->dict.name);
307 msg_fatal("%s: unlock dictionary: %m", dict_dbm->dict.name);
318 DICT_DBM *dict_dbm = (DICT_DBM *) dict;
330 msg_fatal("%s: lock dictionary: %m", dict_dbm->dict.name);
337 dbm_key = dbm_firstkey(dict_dbm->dbm);
340 dbm_key = dbm_nextkey(dict_dbm->dbm);
351 *key = SCOPY(dict_dbm->key_buf, dbm_key.dptr, dbm_key.dsize);
356 dbm_value = dbm_fetch(dict_dbm->dbm, dbm_key);
363 *value = SCOPY(dict_dbm->val_buf, dbm_value.dptr, dbm_value.dsize);
371 if (dbm_error(dict_dbm->dbm))
372 msg_fatal("error seeking %s: %m", dict_dbm->dict.name);
381 if (dbm_error(dict_dbm->dbm))
382 msg_fatal("error seeking %s: %m", dict_dbm->dict.name);
391 msg_fatal("%s: unlock dictionary: %m", dict_dbm->dict.name);
400 DICT_DBM *dict_dbm = (DICT_DBM *) dict;
402 dbm_close(dict_dbm->dbm);
403 if (dict_dbm->key_buf)
404 vstring_free(dict_dbm->key_buf);
405 if (dict_dbm->val_buf)
406 vstring_free(dict_dbm->val_buf);
416 DICT_DBM *dict_dbm;
465 dict_dbm = (DICT_DBM *) dict_alloc(DICT_TYPE_DBM, path, sizeof(*dict_dbm));
466 dict_dbm->dict.lookup = dict_dbm_lookup;
467 dict_dbm->dict.update = dict_dbm_update;
468 dict_dbm->dict.delete = dict_dbm_delete;
469 dict_dbm->dict.sequence = dict_dbm_sequence;
470 dict_dbm->dict.close = dict_dbm_close;
471 dict_dbm->dict.lock_fd = dbm_dirfno(dbm);
472 dict_dbm->dict.stat_fd = dbm_pagfno(dbm);
473 if (dict_dbm->dict.lock_fd == dict_dbm->dict.stat_fd)
475 if (fstat(dict_dbm->dict.stat_fd, &st) < 0)
477 dict_dbm->dict.mtime = st.st_mtime;
478 dict_dbm->dict.owner.uid = st.st_uid;
479 dict_dbm->dict.owner.status = (st.st_uid != 0);
487 && st.st_mtime > dict_dbm->dict.mtime
493 dict_dbm->dict.flags = dict_flags | DICT_FLAG_FIXED;
495 dict_dbm->dict.flags |= (DICT_FLAG_TRY0NULL | DICT_FLAG_TRY1NULL);
497 dict_dbm->dict.fold_buf = vstring_alloc(10);
498 dict_dbm->dbm = dbm;
499 dict_dbm->key_buf = 0;
500 dict_dbm->val_buf = 0;
502 DICT_DBM_OPEN_RETURN(DICT_DEBUG (&dict_dbm->dict));