diff options
author | Nick Mathewson <nickm@torproject.org> | 2008-11-11 15:29:40 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2008-11-11 15:29:40 +0000 |
commit | a95e0e73559349fbbcd97c183ffd481616cbfd5e (patch) | |
tree | 560ab3ac26dafa3150ced47df3b17a82298734d2 | |
parent | d54fbdb53139ff8a327aa08135a051efc653df6e (diff) | |
download | tor-a95e0e73559349fbbcd97c183ffd481616cbfd5e.tar.gz tor-a95e0e73559349fbbcd97c183ffd481616cbfd5e.zip |
apply sebastian's fix for bug 859. Apparently on win32 one must lock at least one byte when locking, but locking a nonexistant byte is okay. )
svn:r17244
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | src/common/compat.c | 4 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,9 @@ +Changes in version 0.2.1.8-alpha - 2008-??-?? + o Minor bugfixes: + - Get file locking working on win32. Bugfix on 0.2.1.6-alpha. Fixes + bug 859. + + Changes in version 0.2.1.7-alpha - 2008-11-08 o Security fixes: - The "ClientDNSRejectInternalAddresses" config option wasn't being diff --git a/src/common/compat.c b/src/common/compat.c index b3d4361969..5a3858ef8a 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -508,7 +508,7 @@ tor_lockfile_lock(const char *filename, int blocking, int *locked_out) } #ifdef WIN32 _lseek(fd, 0, SEEK_SET); - if (_locking(fd, blocking ? _LK_LOCK : _LK_NBLCK, 0) < 0) { + if (_locking(fd, blocking ? _LK_LOCK : _LK_NBLCK, 1) < 0) { if (errno != EDEADLOCK) log_warn(LD_FS,"Couldn't lock \"%s\": %s", filename, strerror(errno)); else @@ -542,7 +542,7 @@ tor_lockfile_unlock(tor_lockfile_t *lockfile) log_info(LD_FS, "Unlocking \"%s\"", lockfile->filename); #ifdef WIN32 _lseek(lockfile->fd, 0, SEEK_SET); - if (_locking(lockfile->fd, _LK_UNLCK, 0) < 0) { + if (_locking(lockfile->fd, _LK_UNLCK, 1) < 0) { log_warn(LD_FS,"Error unlocking \"%s\": %s", lockfile->filename, strerror(errno)); } |