2 * $Id: cnid_get.c,v 1.4 2001-08-31 14:58:48 rufustfirefly 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;
33 if (!(db = CNID) || (len > MAXPATHLEN))
36 memset(&key, 0, sizeof(key));
37 memset(&data, 0, sizeof(data));
40 memcpy(buf, &did, sizeof(did));
42 memcpy(buf, name, len);
43 *(buf + len) = '\0'; /* make sure to nul terminate. */
45 key.size = CNID_DID_LEN + len + 1;
47 while ((errno = db->db_didname->get(db->db_didname, NULL,
52 if (errno != DB_NOTFOUND)
53 syslog(LOG_ERR, "cnid_get: can't get CNID(%u:%s)", did, name);
58 memcpy(&id, data.data, sizeof(id));