]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/enumerate.c
removed unneeded cnid_lookups; fixed a bug in afp_createid.
[netatalk.git] / etc / afpd / enumerate.c
index 90137c38cdb768e410664da7980a4a9a413275af..b67672e1a30d2c396c93ea3d45a8df9224fd0a49 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: enumerate.c,v 1.6 2001-08-14 14:00:10 rufustfirefly Exp $
+ * $Id: enumerate.c,v 1.8 2001-08-27 15:26:16 uhees Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -56,30 +56,21 @@ adddir( vol, dir, name, namlen, upath, upathlen, st )
 #endif /* USE_LASTDID */
 
     if ((cdir = dirnew(namlen + 1)) == NULL) {
-       syslog( LOG_ERR, "adddir: malloc: %m" );
+       syslog( LOG_ERR, "adddir: malloc: %s", strerror(errno) );
        return NULL;
     }
     strcpy( cdir->d_name, name );
     cdir->d_name[namlen] = '\0';
 
-       cdir->d_did = 0;
+    cdir->d_did = 0;
 
-#ifdef CNID_DB
-    /* find out if we have a fixed did already */
-    cdir->d_did = cnid_lookup(vol->v_db, st, dir->d_did, upath,
-                                   upathlen);
-#endif /* CNID_DB */
-
-       if (cdir->d_did == 0) {
 #if AD_VERSION > AD_VERSION1
-         memset(&ad, 0, sizeof(ad));
-      if (ad_open(upath, ADFLAGS_HF|ADFLAGS_DIR, O_RDONLY, 0, &ad) < 0) {
-        /* if we can't parse the AppleDouble header, return 0 for the DID */
-       cdir->d_did = 0;
-      } else {
-        /* ... else retrieve the DID entry into cdir->d_did */
-       memcpy(&cdir->d_did, ad_entry(&ad, ADEID_DID), sizeof(cdir->d_did));
-       ad_close(&ad, ADFLAGS_HF);
+    /* look in AD v2 header */
+    memset(&ad, 0, sizeof(ad));
+    if (ad_open(upath, ADFLAGS_HF|ADFLAGS_DIR, O_RDONLY, 0, &ad) >= 0) {
+        /* if we can parse the AppleDouble header, retrieve the DID entry into cdir->d_did */
+           memcpy(&cdir->d_did, ad_entry(&ad, ADEID_DID), sizeof(cdir->d_did));
+           ad_close(&ad, ADFLAGS_HF);
        }
 #endif /* AD_VERSION */
 
@@ -88,7 +79,6 @@ adddir( vol, dir, name, namlen, upath, upathlen, st )
     cdir->d_did = cnid_add(vol->v_db, st, dir->d_did, upath,
                                   upathlen, cdir->d_did);
 #endif /* CNID_DB */
-       }
 
        if (cdir->d_did == 0) {
 #ifdef USE_LASTDID
@@ -158,7 +148,7 @@ int afp_enumerate(obj, ibuf, ibuflen, rbuf, rbuflen )
 
     if ( sd.sd_buflen == 0 ) {
        if (( sd.sd_buf = (char *)malloc( SDBUFBRK )) == NULL ) {
-           syslog( LOG_ERR, "afp_enumerate: malloc: %m" );
+           syslog( LOG_ERR, "afp_enumerate: malloc: %s", strerror(errno) );
            *rbuflen = 0;
            return AFPERR_MISC;
        }
@@ -253,7 +243,8 @@ int afp_enumerate(obj, ibuf, ibuflen, rbuf, rbuflen )
                start = sd.sd_buf;
                if ((buf = (char *) realloc( sd.sd_buf, sd.sd_buflen + 
                                             SDBUFBRK )) == NULL ) {
-                   syslog( LOG_ERR, "afp_enumerate: realloc: %m" );
+                   syslog( LOG_ERR, "afp_enumerate: realloc: %s",
+                           strerror(errno) );
                    closedir(dp);
                    *rbuflen = 0;
                    return AFPERR_MISC;
@@ -311,7 +302,8 @@ int afp_enumerate(obj, ibuf, ibuflen, rbuf, rbuflen )
        sd.sd_last++;
 
        if ( stat( sd.sd_last, &st ) < 0 ) {
-           syslog( LOG_DEBUG, "afp_enumerate: stat %s: %m", sd.sd_last );
+           syslog( LOG_DEBUG, "afp_enumerate: stat %s: %s",
+                   sd.sd_last, strerror(errno) );
            sd.sd_last += len + 1;
            continue;
        }