2 * $Id: cnid_tdb_get.c,v 1.4 2009-11-20 17:37:14 didg Exp $
9 #ifdef CNID_BACKEND_TDB
13 /* Return CNID for a given did/name. */
14 cnid_t cnid_tdb_get(struct _cnid_db *cdb, const cnid_t did, char *name, const size_t len)
16 char start[CNID_DID_LEN + MAXPATHLEN + 1], *buf;
17 struct _cnid_tdb_private *db;
21 if (!cdb || !(db = cdb->_private) || (len > MAXPATHLEN)) {
25 memset(&key, 0, sizeof(key));
26 memset(&data, 0, sizeof(data));
29 memcpy(buf, &did, sizeof(did));
31 memcpy(buf, name, len);
32 *(buf + len) = '\0'; /* Make it a C-string. */
34 key.dsize = CNID_DID_LEN + len + 1;
35 data = tdb_fetch(db->tdb_didname, key);
39 memcpy(&id, data.dptr, sizeof(id));