]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/directory.c
Back-port from HEAD: Do directory name matching using strcmp(), not
[netatalk.git] / etc / afpd / directory.c
index 81abb9a4ab37d197a45ea0e8fc595dc15284bdf2..43fb6d150312f4bd118e4b9d6677b50626c511e0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: directory.c,v 1.40 2002-09-27 11:34:22 didg Exp $
+ * $Id: directory.c,v 1.41.2.2 2002-11-07 17:10:02 srittau Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -865,7 +865,7 @@ char        **cpath;
             if ( !extend ) {
                 cdir = dir->d_child;
                 while (cdir) {
-                    if ( strcasecmp( cdir->d_name, path ) == 0 ) {
+                    if ( strcmp( cdir->d_name, path ) == 0 ) {
                         break;
                     }
                     cdir = (cdir == dir->d_child->d_prev) ? NULL :
@@ -881,7 +881,8 @@ char        **cpath;
                        /* dir is not valid anymore 
                           we delete dir from the cache and abort.
                        */
-                       dir_invalidate(vol, dir);
+                       if ( dir->d_did != DIRDID_ROOT_PARENT) 
+                           dir_invalidate(vol, dir);
                         return( NULL );
                     }
                     cdir = extenddir( vol, dir, path );
@@ -1174,7 +1175,7 @@ int               ibuflen, *rbuflen;
     memcpy( &did, ibuf, sizeof( did ));
     ibuf += sizeof( int );
 
-    if (( dir = dirsearch( vol, did )) == NULL ) {
+    if (( dir = dirlookup( vol, did )) == NULL ) {
         return( AFPERR_NOOBJ );
     }
 
@@ -1535,7 +1536,7 @@ int               ibuflen, *rbuflen;
 
     memcpy( &did, ibuf, sizeof( did ));
     ibuf += sizeof( did );
-    if (( dir = dirsearch( vol, did )) == NULL ) {
+    if (( dir = dirlookup( vol, did )) == NULL ) {
         return( AFPERR_NOOBJ );
     }
 
@@ -1964,7 +1965,7 @@ int               ibuflen, *rbuflen;
 
     memcpy( &did, ibuf, sizeof( did ));
     ibuf += sizeof( did );
-    if (( dir = dirsearch( vol, did )) == NULL ) {
+    if (( dir = dirlookup( vol, did )) == NULL ) {
         return( AFPERR_PARAM );
     }
 
@@ -2000,7 +2001,7 @@ int               ibuflen, *rbuflen;
     memcpy(&did, ibuf, sizeof(did));
     ibuf += sizeof(did);
 
-    if (( parentdir = dirsearch( vol, did )) == NULL ) {
+    if (( parentdir = dirlookup( vol, did )) == NULL ) {
         return( AFPERR_NOOBJ );
     }