2 * $Id: cnid_get.c,v 1.6 2001-09-21 15:09:54 jmarcus Exp $
7 #endif /* HAVE_CONFIG_H */
12 #include <sys/param.h>
18 #include <netatalk/endian.h>
19 #include <atalk/adouble.h>
20 #include <atalk/cnid.h>
22 #include "cnid_private.h"
24 /* return CNID for a given did/name */
25 cnid_t cnid_get(void *CNID, const cnid_t did, const char *name,
28 char start[CNID_DID_LEN + MAXPATHLEN + 1], *buf;
34 if (!(db = CNID) || (len > MAXPATHLEN))
37 memset(&key, 0, sizeof(key));
38 memset(&data, 0, sizeof(data));
41 memcpy(buf, &did, sizeof(did));
43 memcpy(buf, name, len);
44 *(buf + len) = '\0'; /* make sure to nul terminate. */
46 key.size = CNID_DID_LEN + len + 1;
48 while ((rc = db->db_didname->get(db->db_didname, NULL,
53 if (rc != DB_NOTFOUND)
54 syslog(LOG_ERR, "cnid_get: can't get CNID(%u:%s) (%d)", did, name, rc);
59 memcpy(&id, data.data, sizeof(id));