]> arthur.barton.de Git - netatalk.git/blobdiff - etc/cnid_dbd/dbd_rebuild_add.c
Merge master
[netatalk.git] / etc / cnid_dbd / dbd_rebuild_add.c
index 45b030718616b4c70da11b200eb935085326f914..562838b384a28dacc46873f8742a8296a6a2eba1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: dbd_rebuild_add.c,v 1.3 2009-05-06 11:54:24 franklahm Exp $
+ * $Id: dbd_rebuild_add.c,v 1.4 2009-12-23 10:18:48 franklahm Exp $
  *
  * Copyright (C) Joerg Lenneis 2005
  * All Rights Reserved.  See COPYING.
 
 #include <stdio.h>
 #include <string.h>
+#include <arpa/inet.h>
+
 #include <atalk/logger.h>
-#include <netatalk/endian.h>
 #include <atalk/cnid_dbd_private.h>
 
-
 #include "pack.h"
 #include "dbif.h"
 #include "dbd.h"
@@ -28,7 +28,7 @@ int dbd_rebuild_add(DBD *dbd, struct cnid_dbd_rqst *rqst, struct cnid_dbd_rply *
 {
     DBT key, data;
     cnid_t cur, tmp, id;
-    
+
     memset(&key, 0, sizeof(key));
     memset(&data, 0, sizeof(data));
 
@@ -44,33 +44,38 @@ int dbd_rebuild_add(DBD *dbd, struct cnid_dbd_rqst *rqst, struct cnid_dbd_rply *
     /* FIXME: In cnid_cdb.c Bjoern does a lookup here and returns the CNID found if sucessful. Why? */
 
     if (dbif_put(dbd, DBIF_CNID, &key, &data, 0) < 0) {
-       rply->result = CNID_DBD_RES_ERR_DB;
-       return -1;
+        rply->result = CNID_DBD_RES_ERR_DB;
+        return -1;
     }
 
-    key.data = ROOTINFO_KEY;   
+    LOG(log_debug, logtype_cnid,
+        "dbd_rebuild_add(CNID: %u, did: %u, name: \"%s\", dev/ino:0x%llx/0x%llx): success",
+        ntohl(rqst->cnid), ntohl(rqst->did), rqst->name,
+        (unsigned long long)rqst->dev, (unsigned long long)rqst->ino);
+
+    key.data = ROOTINFO_KEY;
     key.size = ROOTINFO_KEYLEN;
-    
+
     if (dbif_get(dbd, DBIF_CNID, &key, &data, 0) <= 0) {
-       /* FIXME: If we cannot find ROOTINFO_KEY, should this be considered
+        /* FIXME: If we cannot find ROOTINFO_KEY, should this be considered
            fatal or should we just return 0 and roll back? */
-       rply->result = CNID_DBD_RES_ERR_DB;
-       return -1;
+        rply->result = CNID_DBD_RES_ERR_DB;
+        return -1;
     }
-    
-    memcpy(&tmp, (char *) data.data + CNID_TYPE_OFS, sizeof(cnid_t));    
+
+    memcpy(&tmp, (char *) data.data + CNID_TYPE_OFS, sizeof(cnid_t));
     cur = ntohl(tmp);
     id  = ntohl(rqst->cnid);
 
     if (id > cur) {
-       data.size = ROOTINFO_DATALEN;
-       memcpy((char *) data.data + CNID_TYPE_OFS, &rqst->cnid, sizeof(cnid_t));
-       if (dbif_put(dbd, DBIF_CNID, &key, &data, 0) < 0) {
-           rply->result = CNID_DBD_RES_ERR_DB;
-           return -1;
-       }
+        data.size = ROOTINFO_DATALEN;
+        memcpy((char *) data.data + CNID_TYPE_OFS, &rqst->cnid, sizeof(cnid_t));
+        if (dbif_put(dbd, DBIF_CNID, &key, &data, 0) < 0) {
+            rply->result = CNID_DBD_RES_ERR_DB;
+            return -1;
+        }
     }
-    
+
     rply->cnid = rqst->cnid;
     rply->result = CNID_DBD_RES_OK;
     return 1;