2 * Copyright (C) Frank Lahm 2010
3 * All Rights Reserved. See COPYING.
8 #endif /* HAVE_CONFIG_H */
12 #include <netatalk/endian.h>
13 #include <atalk/logger.h>
14 #include <atalk/cnid_dbd_private.h>
20 int dbd_search(DBD *dbd, struct cnid_dbd_rqst *rqst, struct cnid_dbd_rply *rply)
24 static char resbuf[DBD_MAX_SRCH_RSLTS * sizeof(cnid_t)];
25 memset(&key, 0, sizeof(key));
29 key.data = rqst->name;
30 key.size = rqst->namelen;
32 if ((results = dbif_search(dbd, &key, 0)) < 0) {
33 LOG(log_error, logtype_cnid, "dbd_search(\"%s\"): db error", rqst->name);
34 rply->result = CNID_DBD_RES_ERR_DB;
38 LOG(log_debug, logtype_cnid, "dbd_search(\"%s\"): %d matches", rqst->name, results);
39 rply->namelen = results * sizeof(cnid_t);
40 rply->result = CNID_DBD_RES_OK;
42 LOG(log_debug, logtype_cnid, "dbd_search(\"%s\"): no matches", rqst->name);
43 rply->result = CNID_DBD_RES_NOTFOUND;