]> arthur.barton.de Git - netatalk.git/blobdiff - etc/cnid_dbd/dbd_resolve.c
Merge remote-tracking branch 'origin/branch-netatalk-3-0' into develop
[netatalk.git] / etc / cnid_dbd / dbd_resolve.c
index 4be2343d9423cded0ba523e8bbafa51ac9fc37da..53407757969b008256b7de3344250c53814f3d21 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * $Id: dbd_resolve.c,v 1.2 2005-04-28 20:49:48 bfernhomberg Exp $
  *
  * Copyright (C) Joerg Lenneis 2003
  * All Rights Reserved.  See COPYING.
@@ -12,7 +11,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 +21,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,30 +34,28 @@ 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;
     }
      
     if (rc == 0) {
-#ifdef DEBUG
-       LOG(log_info, logtype_cnid, "dbd_resolve: Could not resolve CNID %u",
-           ntohl(rqst->cnid));
-#endif
+
+        LOG(log_debug, logtype_cnid, "dbd_resolve: Could not resolve CNID %u", ntohl(rqst->cnid));
+    
         rply->result = CNID_DBD_RES_NOTFOUND;
         return 1;
     }
 
     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(CNID: %u): did: %u, name: \"%s\"",
+        ntohl(rqst->cnid), ntohl(rply->did), rply->name + CNID_NAME_OFS);
 
-#ifdef DEBUG
-    LOG(log_info, logtype_cnid, "dbd_resolve: Resolving CNID %u to did %u name %s",
-        ntohl(rqst->cnid), ntohl(rply->did), rply->name);
-#endif
     rply->result = CNID_DBD_RES_OK;
     return 1;
 }