]> arthur.barton.de Git - netatalk.git/blobdiff - etc/cnid_dbd/dbd_resolve.c
Merge master
[netatalk.git] / etc / cnid_dbd / dbd_resolve.c
index 14f22cf4d24973d3ae132eed1b5597eaf5a72380..bb3561caba7a1018605be36649d85b13abb8ab29 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: dbd_resolve.c,v 1.3 2009-05-04 09:09:43 franklahm Exp $
+ * $Id: dbd_resolve.c,v 1.4 2009-05-06 11:54:24 franklahm Exp $
  *
  * Copyright (C) Joerg Lenneis 2003
  * All Rights Reserved.  See COPYING.
@@ -12,7 +12,8 @@
 #include <string.h>
 #include <atalk/logger.h>
 #include <errno.h>
-#include <netatalk/endian.h>
+#include <arpa/inet.h>
+
 #include <atalk/cnid_dbd_private.h>
 
 #include "dbif.h"
@@ -21,7 +22,7 @@
 
 /* Return the did/name pair corresponding to a CNID. */
 
-int dbd_resolve(struct cnid_dbd_rqst *rqst, struct cnid_dbd_rply *rply)
+int dbd_resolve(DBD *dbd, struct cnid_dbd_rqst *rqst, struct cnid_dbd_rply *rply)
 {
     DBT key, data;
     int rc;
@@ -34,7 +35,7 @@ int dbd_resolve(struct cnid_dbd_rqst *rqst, struct cnid_dbd_rply *rply)
     key.data = (void *) &rqst->cnid;
     key.size = sizeof(cnid_t);
 
-    if ((rc = dbif_get(DBIF_IDX_CNID, &key, &data, 0)) < 0) {
+    if ((rc = dbif_get(dbd, DBIF_CNID, &key, &data, 0)) < 0) {
         LOG(log_error, logtype_cnid, "dbd_resolve: DB Error resolving CNID %u", ntohl(rqst->cnid));
         rply->result = CNID_DBD_RES_ERR_DB;
         return -1;
@@ -50,11 +51,11 @@ int dbd_resolve(struct cnid_dbd_rqst *rqst, struct cnid_dbd_rply *rply)
 
     memcpy(&rply->did, (char *) data.data + CNID_DID_OFS, sizeof(cnid_t));
 
-    rply->namelen = data.size - CNID_NAME_OFS;
-    rply->name = (char *)data.data + CNID_NAME_OFS;
+    rply->namelen = data.size;
+    rply->name = (char *)data.data;
 
-    LOG(log_debug, logtype_cnid, "dbd_resolve: Resolving CNID %u to did %u name %s",
-        ntohl(rqst->cnid), ntohl(rply->did), rply->name);
+    LOG(log_debug, logtype_cnid, "dbd_resolve(CNID: %u): did: %u, name: \"%s\"",
+        ntohl(rqst->cnid), ntohl(rply->did), rply->name + CNID_NAME_OFS);
 
     rply->result = CNID_DBD_RES_OK;
     return 1;