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