diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-06-13 15:46:46 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-06-13 15:46:46 +0000 |
commit | b50ca095af232be3a88231965449a836e5321db5 (patch) | |
tree | ed2bec23526c43c5fffffdda266b138844f38aa3 /source3 | |
parent | 33179a95d82a27a077acbad57d3cd9c403afb7eb (diff) | |
download | samba-b50ca095af232be3a88231965449a836e5321db5.tar.gz samba-b50ca095af232be3a88231965449a836e5321db5.tar.bz2 samba-b50ca095af232be3a88231965449a836e5321db5.zip |
allow posix locking database to be opened read-only (for smbstatus)
(This used to be commit b9d78738bb30da3d989dfacc95cfde529f2afca5)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/locking/locking.c | 2 | ||||
-rw-r--r-- | source3/locking/posix.c | 20 |
2 files changed, 11 insertions, 11 deletions
diff --git a/source3/locking/locking.c b/source3/locking/locking.c index 302b5b56c9..8fc1c4a4bc 100644 --- a/source3/locking/locking.c +++ b/source3/locking/locking.c @@ -233,7 +233,7 @@ BOOL locking_init(int read_only) return False; } - if (!posix_locking_init()) + if (!posix_locking_init(read_only)) return False; return True; diff --git a/source3/locking/posix.c b/source3/locking/posix.c index 6ab4bef4cc..69df55ba3c 100644 --- a/source3/locking/posix.c +++ b/source3/locking/posix.c @@ -1346,25 +1346,25 @@ void posix_locking_close_file(files_struct *fsp) Create the in-memory POSIX lock databases. ********************************************************************/ -BOOL posix_locking_init(void) +BOOL posix_locking_init(int read_only) { if (posix_lock_tdb && posix_pending_close_tdb) return True; - + if (!posix_lock_tdb) posix_lock_tdb = tdb_open(NULL, 0, TDB_INTERNAL, - O_RDWR|O_CREAT, 0644); - if (!posix_lock_tdb) { - DEBUG(0,("Failed to open POSIX byte range locking database.\n")); + read_only?O_RDONLY:(O_RDWR|O_CREAT), 0644); + if (!posix_lock_tdb) { + DEBUG(0,("Failed to open POSIX byte range locking database.\n")); return False; - } + } if (!posix_pending_close_tdb) posix_pending_close_tdb = tdb_open(NULL, 0, TDB_INTERNAL, - O_RDWR|O_CREAT, 0644); - if (!posix_pending_close_tdb) { - DEBUG(0,("Failed to open POSIX pending close database.\n")); + read_only?O_RDONLY:(O_RDWR|O_CREAT), 0644); + if (!posix_pending_close_tdb) { + DEBUG(0,("Failed to open POSIX pending close database.\n")); return False; - } + } return True; } |