]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/cnid/cnid_get.c
Replaced EAGAIN with DB_LOCK_DEADLOCK.
[netatalk.git] / libatalk / cnid / cnid_get.c
index e5f7e6e51a696ef48eb62b2148bf32e7b6ea662a..56b6e9710661cd9054d6d7f5169eeb6ef622f461 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_get.c,v 1.4 2001-08-31 14:58:48 rufustfirefly Exp $
+ * $Id: cnid_get.c,v 1.7 2001-09-22 07:12:10 jmarcus Exp $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -29,6 +29,7 @@ cnid_t cnid_get(void *CNID, const cnid_t did, const char *name,
   CNID_private *db;
   DBT key, data;
   cnid_t id;
+  int rc = 0;
 
   if (!(db = CNID) || (len > MAXPATHLEN))
     return 0;
@@ -44,13 +45,13 @@ cnid_t cnid_get(void *CNID, const cnid_t did, const char *name,
   key.data = start;
   key.size = CNID_DID_LEN + len + 1;
 
-  while ((errno = db->db_didname->get(db->db_didname, NULL,
+  while ((rc = db->db_didname->get(db->db_didname, NULL,
                                      &key, &data, 0))) {
-    if (errno == EAGAIN
+    if (rc == DB_LOCK_DEADLOCK
       continue;
 
-    if (errno != DB_NOTFOUND)
-      syslog(LOG_ERR, "cnid_get: can't get CNID(%u:%s)", did, name);
+    if (rc != DB_NOTFOUND)
+      syslog(LOG_ERR, "cnid_get: can't get CNID(%u:%s) (%d)", did, name, rc);
 
     return 0;
   }