2 * $Id: cnid_get.c,v 1.2 2001-06-29 14:14:46 rufustfirefly Exp $
7 #endif /* HAVE_CONFIG_H */
11 #include <sys/param.h>
17 #include <netatalk/endian.h>
18 #include <atalk/adouble.h>
19 #include <atalk/cnid.h>
21 #include "cnid_private.h"
23 /* return CNID for a given did/name */
24 cnid_t cnid_get(void *CNID, const cnid_t did, const char *name,
27 char start[CNID_DID_LEN + MAXPATHLEN + 1], *buf;
32 if (!(db = CNID) || (len > MAXPATHLEN))
35 memset(&key, 0, sizeof(key));
36 memset(&data, 0, sizeof(data));
39 memcpy(buf, &did, sizeof(did));
41 memcpy(buf, name, len);
42 *(buf + len) = '\0'; /* make sure to nul terminate. */
44 key.size = CNID_DID_LEN + len + 1;
46 while (errno = db->db_didname->get(db->db_didname, NULL,
51 if (errno != DB_NOTFOUND)
52 syslog(LOG_ERR, "cnid_get: can't get CNID(%u:%s)", did, name);
57 memcpy(&id, data.data, sizeof(id));