STAR_ENABLE_FILE_LOCKING was a secret

This commit is contained in:
Caolán McNamara 2012-02-29 21:02:22 +00:00
parent 7029ccec25
commit 05a8216d03
2 changed files with 1 additions and 50 deletions

View file

@ -837,7 +837,7 @@ struct Locking_Impl
Locking_Impl() : m_enabled(0)
{
#ifndef HAVE_O_EXLOCK
m_enabled = ((getenv("SAL_ENABLE_FILE_LOCKING") != 0) || (getenv("STAR_ENABLE_FILE_LOCKING") != 0));
m_enabled = (getenv("SAL_ENABLE_FILE_LOCKING") != 0);
#endif /* HAVE_O_EXLOCK */
}
};

View file

@ -34,7 +34,6 @@
#include <errno.h>
#include <unistd.h>
#include <limits.h>
#include <stdlib.h> // fuer getenv()
#include <tools/debug.hxx>
#include <tools/fsys.hxx>
@ -500,8 +499,6 @@ void SvFileStream::FlushData()
// lokal gibt es nicht
}
static char *pFileLockEnvVar = (char*)1;
/*************************************************************************
|*
|* SvFileStream::LockRange()
@ -510,11 +507,6 @@ static char *pFileLockEnvVar = (char*)1;
sal_Bool SvFileStream::LockRange( sal_Size nByteOffset, sal_Size nBytes )
{
struct flock aflock;
aflock.l_start = nByteOffset;
aflock.l_whence = SEEK_SET;
aflock.l_len = nBytes;
int nLockMode = 0;
if ( ! IsOpen() )
@ -559,47 +551,6 @@ sal_Bool SvFileStream::LockRange( sal_Size nByteOffset, sal_Size nBytes )
return sal_False;
}
// HACK: File-Locking nur via Environmentvariable einschalten
// um einen Haenger im Zusammenspiel mit einem Linux
// NFS-2-Server (kein Lockdaemon) zu verhindern.
// File-Locking ?ber NFS ist generell ein Performancekiller.
// HR, 22.10.1997 fuer SOLARIS
// HR, 18.05.1998 Environmentvariable
if ( pFileLockEnvVar == (char*)1 )
pFileLockEnvVar = getenv("STAR_ENABLE_FILE_LOCKING");
if ( ! pFileLockEnvVar )
return sal_True;
aflock.l_type = nLockMode;
sal_IntPtr iFileHandle;
oslFileError rc = osl_getFileOSHandle(pInstanceData->rHandle, &iFileHandle);
if (rc != osl_File_E_None)
{
SetError( ::GetSvError( rc ));
return sal_False;
}
if (fcntl((int)iFileHandle, F_GETLK, &aflock) == -1)
{
#if defined SOLARIS
if (errno == ENOSYS)
return sal_True;
#endif
SetError( ::GetSvError( errno ));
return sal_False;
}
if (aflock.l_type != F_UNLCK)
{
SetError(SVSTREAM_LOCKING_VIOLATION);
return sal_False;
}
aflock.l_type = nLockMode;
if (fcntl((int)iFileHandle, F_SETLK, &aflock) == -1)
{
SetError( ::GetSvError( errno ));
return sal_False;
}
return sal_True;
}