Author: jra
Date: 2007-07-11 23:40:14 +0000 (Wed, 11 Jul 2007)
New Revision: 23845

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23845

Log:
Second part of the fix for #4777. Looks like on AIX opendir
returns an errno of ELOOP for a symlink of msdfs:server\path\to\link.
Cope with this by mapping to a known error NT_STATUS_OBJECT_PATH_NOT_FOUND
that we know dfs_path_lookup should ignore.
Jeremy.

Modified:
   branches/SAMBA_3_0_25/source/libsmb/errormap.c
   branches/SAMBA_3_2/source/lib/errmap_unix.c
   branches/SAMBA_3_2_0/source/lib/errmap_unix.c


Changeset:
Modified: branches/SAMBA_3_0_25/source/libsmb/errormap.c
===================================================================
--- branches/SAMBA_3_0_25/source/libsmb/errormap.c      2007-07-11 22:39:11 UTC 
(rev 23844)
+++ branches/SAMBA_3_0_25/source/libsmb/errormap.c      2007-07-11 23:40:14 UTC 
(rev 23845)
@@ -1521,6 +1521,9 @@
        { ENOMEM, ERRDOS, ERRnomem, NT_STATUS_NO_MEMORY },
        { EISDIR, ERRDOS, ERRnoaccess, NT_STATUS_FILE_IS_A_DIRECTORY},
        { EMLINK, ERRDOS, ERRgeneral, NT_STATUS_TOO_MANY_LINKS },
+#ifdef ELOOP
+       { ELOOP, ERRDOS, ERRbadpath, NT_STATUS_OBJECT_PATH_NOT_FOUND },
+#endif
 #ifdef EDQUOT
        { EDQUOT, ERRHRD, ERRdiskfull, NT_STATUS_DISK_FULL }, /* Windows apps 
need this, not NT_STATUS_QUOTA_EXCEEDED */
 #endif

Modified: branches/SAMBA_3_2/source/lib/errmap_unix.c
===================================================================
--- branches/SAMBA_3_2/source/lib/errmap_unix.c 2007-07-11 22:39:11 UTC (rev 
23844)
+++ branches/SAMBA_3_2/source/lib/errmap_unix.c 2007-07-11 23:40:14 UTC (rev 
23845)
@@ -40,6 +40,9 @@
        { EISDIR, ERRDOS, ERRnoaccess, NT_STATUS_FILE_IS_A_DIRECTORY},
        { EMLINK, ERRDOS, ERRgeneral, NT_STATUS_TOO_MANY_LINKS },
        { EINTR,  ERRHRD, ERRgeneral, NT_STATUS_RETRY },
+#ifdef ELOOP
+       { ELOOP, ERRDOS, ERRbadpath, NT_STATUS_OBJECT_PATH_NOT_FOUND },
+#endif
 #ifdef EDQUOT
        { EDQUOT, ERRHRD, ERRdiskfull, NT_STATUS_DISK_FULL }, /* Windows apps 
need this, not NT_STATUS_QUOTA_EXCEEDED */
 #endif

Modified: branches/SAMBA_3_2_0/source/lib/errmap_unix.c
===================================================================
--- branches/SAMBA_3_2_0/source/lib/errmap_unix.c       2007-07-11 22:39:11 UTC 
(rev 23844)
+++ branches/SAMBA_3_2_0/source/lib/errmap_unix.c       2007-07-11 23:40:14 UTC 
(rev 23845)
@@ -40,6 +40,9 @@
        { EISDIR, ERRDOS, ERRnoaccess, NT_STATUS_FILE_IS_A_DIRECTORY},
        { EMLINK, ERRDOS, ERRgeneral, NT_STATUS_TOO_MANY_LINKS },
        { EINTR,  ERRHRD, ERRgeneral, NT_STATUS_RETRY },
+#ifdef ELOOP
+       { ELOOP, ERRDOS, ERRbadpath, NT_STATUS_OBJECT_PATH_NOT_FOUND },
+#endif
 #ifdef EDQUOT
        { EDQUOT, ERRHRD, ERRdiskfull, NT_STATUS_DISK_FULL }, /* Windows apps 
need this, not NT_STATUS_QUOTA_EXCEEDED */
 #endif

Reply via email to