Fix broken profile locking on OpenVMS. b=180738 r=ccarlen sr=dveditz

This commit is contained in:
colin%theblakes.com 2002-11-21 13:34:25 +00:00
Родитель 16b5880c9f
Коммит cc4f959287
1 изменённых файлов: 14 добавлений и 4 удалений

Просмотреть файл

@ -52,6 +52,10 @@
#include "prsystem.h"
#endif
#ifdef VMS
#include <rmsdef.h>
#endif
#include "nsICharsetConverterManager.h"
#include "nsIPlatformCharset.h"
@ -1840,12 +1844,18 @@ nsresult nsProfileLock::Lock(nsILocalFile* aFile)
if (NS_FAILED(rv))
return rv;
remove(filePath.get());
mLockFileDesc = open(filePath.get(), O_WRONLY | O_CREAT | O_EXCL, 0666);
mLockFileDesc = open_noshr(filePath.get(), O_CREAT, 0666);
if (mLockFileDesc == -1)
{
NS_ERROR("Failed to open lock file.");
return NS_ERROR_FAILURE;
if ((errno == EVMSERR) && (vaxc$errno == RMS$_FLK))
{
return NS_ERROR_FILE_ACCESS_DENIED;
}
else
{
NS_ERROR("Failed to open lock file.");
return NS_ERROR_FAILURE;
}
}
#elif defined(XP_UNIX)
#ifdef USE_SYMLINK_LOCKING