/*
- * $Id: cnid.c,v 1.13 2010-03-31 09:47:32 franklahm Exp $
- *
* Copyright (c) 2003 the Netatalk Team
* Copyright (c) 2003 Rafal Lewczuk <rlewczuk@pronet.pl>
*
#include <atalk/list.h>
#include <atalk/logger.h>
#include <atalk/util.h>
+#include <atalk/compat.h>
/* List of all registered modules. */
static struct list_head modules = ATALK_LIST_HEAD_INIT(modules);
/* --------------- */
cnid_t cnid_add(struct _cnid_db *cdb, const struct stat *st, const cnid_t did,
- char *name, const size_t len, cnid_t hint)
+ const char *name, const size_t len, cnid_t hint)
{
cnid_t ret;
/* --------------- */
cnid_t cnid_lookup(struct _cnid_db *cdb, const struct stat *st, const cnid_t did,
- char *name, const size_t len)
+ char *name, const size_t len)
{
-cnid_t ret;
+ cnid_t ret;
block_signal(cdb->flags);
ret = valide(cdb->cnid_lookup(cdb, st, did, name, len));
return ret;
}
+/* --------------- */
+int cnid_find(struct _cnid_db *cdb, const char *name, size_t namelen, void *buffer, size_t buflen)
+{
+ int ret;
+
+ if (cdb->cnid_find == NULL) {
+ LOG(log_error, logtype_cnid, "cnid_find not supported by CNID backend");
+ return -1;
+ }
+
+ block_signal(cdb->flags);
+ ret = cdb->cnid_find(cdb, name, namelen, buffer, buflen);
+ unblock_signal(cdb->flags);
+ return ret;
+}
+
/* --------------- */
char *cnid_resolve(struct _cnid_db *cdb, cnid_t *id, void *buffer, size_t len)
{