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