Howard Chu
2c3488aeeb
More for stale sub-cursor flags
...
Same fix for cursor_first/last.
2013-07-14 08:28:26 -07:00
Howard Chu
56a41d87d4
Fix stale sub-cursor C_INIT flag
...
Whenever we enter cursor_set() the sub-cursor's flag must be
cleared. If the new cursor position has valid subdata it will
be initialized again, if not then the sub-cursor has nothing
to point to.
2013-07-14 08:20:18 -07:00
Howard Chu
8ae56c34d5
Tweak comments, defaults should be OK already
2013-07-12 13:55:18 -07:00
Howard Chu
fa7228962b
Bump version to 0.9.7
2013-07-12 13:36:05 -07:00
Howard Chu
79ac4cb361
Merge remote-tracking branch 'origin/mdb.master'
2013-07-12 13:23:45 -07:00
Hallvard Furuseth
f04dc0ebd2
Also set/clear P_KEEP in parent txn's cursors
2013-07-12 13:17:04 -07:00
Howard Chu
e9ed4d75f7
Spill pages, take 3
2013-07-12 13:17:04 -07:00
Howard Chu
d7bc4baf63
Delay touching pages until cursor is positioned.
...
This avoids unnecessary rewrites of pages that do not change.
(Restructuring for upcoming mdb_page_spill work.)
2013-07-12 13:17:04 -07:00
Hallvard Furuseth
c09db5757d
Simplify: Always set C_UNTRACK for tracked cursors.
...
TODO: Rename C_UNTRACK to C_TRACKED. Omitted now for readability.
The current name is because it's lazy: not always set when tracked.
2013-07-12 13:17:04 -07:00
Hallvard Furuseth
6741f9c0ef
Save freelist using proper mdb_cursor_put().
...
(Restructuring for upcoming mdb_page_spill work.)
mdb_freelist_save() can't just Get() the destination, since
mdb_page_spill() may have put the destination in the read-only map.
TODO: Can this new put() modify the freelist, which would break it? The
final iteration's put() can shorten the node, the rest uses MDB_CURRENT.
We could set P_KEEP on dirty freeDB leaves and ovpages, since they are
all about to be modified. But the code in this commit must stay anyway,
if mdb should support dropping a 256G DB. I.e. too big for dirty_list.
2013-07-12 13:17:04 -07:00
Howard Chu
08373439a6
Move code out to mdb_page_dirty()
2013-07-12 13:17:04 -07:00
Howard Chu
87a7f06feb
Factor out parent
2013-07-12 13:17:04 -07:00
Howard Chu
ba6dfe0bbb
Fix env_read_header() on Windows
...
Commit d6d2638acc broke read
on zero-length files.
2013-07-12 12:55:08 -07:00
Hallvard Furuseth
3d46d5502a
Do not follow uninited cursors' page pointers.
...
Nor uninited cursors' subcursors' page pointers.
2013-07-10 22:11:44 +02:00
Howard Chu
b711c07f34
Fix rebalance/cursor adjust
...
When collapsing root, must also move cursor index down,
not just the page pointer.
Also in mtest, break from NEXT loops on error, otherwise it just
prints the previous key/data again, which looks confusing.
2013-07-10 11:04:37 -07:00
Howard Chu
f81eb631ff
Cursors: Clear C_EOF when clearing C_INITIALIZED
2013-07-10 08:49:29 -07:00
Howard Chu
64676da8d9
Fixup other cursors after delete op
2013-07-09 14:21:35 -07:00
Hallvard Furuseth
a77767013a
ITS#7515 Reject conflicting page versions.
...
If mdb_page_touch() sees a page in txn's dirty_list, that
is the page version txn's cursors should have. Fail if
the user may be seeing and depending on another version.
2013-07-07 17:14:38 +02:00
Hallvard Furuseth
be47ca7667
ITS#7515 Fix tracking of parent txn's cursors.
...
Restore mc_flags and xcursors, they were tracked but not merged.
Simplify: Track parent txn's original cursors after backing them
up, instead of tracking copies and merging them back at commit.
2013-07-07 17:13:27 +02:00
Hallvard Furuseth
9be6af0dcb
Simplify MDB_cursor: Drop flags C_ALLOCD,C_SHADOW.
2013-07-07 17:13:27 +02:00
Hallvard Furuseth
3d1e709504
Silence more uninit warnings
2013-07-06 21:42:45 +02:00
Howard Chu
06a3ad08cd
Silence uninit warning in prev commit
2013-07-02 02:23:49 -07:00
Howard Chu
589370d880
Tweaks for MDB_MULTIPLE
...
Terminate loop on intermediate failures, return count of written items,
document usage.
2013-07-02 02:19:17 -07:00
Howard Chu
60720f5d9c
Merge remote-tracking branch 'origin/mdb.master'
2013-07-01 14:55:25 -07:00
Howard Chu
fb674c1cf5
ITS#7635 simplify 9474c1a0b6
2013-07-01 14:53:29 -07:00
Howard Chu
8442047d2d
Merge remote-tracking branch 'origin/mdb.master'
2013-07-01 14:31:57 -07:00
Howard Chu
9474c1a0b6
ITS#7635 fix read txn potential data race
2013-07-01 13:41:23 -07:00
Howard Chu
3347a02905
Fix uninit warnings, lseek usage
2013-06-30 07:40:02 -07:00
Hallvard Furuseth
7f67383552
Fix alloc/free issues.
...
Page leak, mdb_page_alloc(). On error, don't shorten me_pghead.
Memleak, mdb_ovpage_free(). Free page or keep it in dirty_list.
Bad MIDL, mdb_midl_need(). Fix midl[-1] (allocated size).
2013-06-26 18:02:52 +02:00
Hallvard Furuseth
12c558fe13
Factor out some vars, simplify.
2013-06-26 18:02:48 +02:00
Hallvard Furuseth
b7ce06f5c5
Makefile/user-macro comments.
2013-06-26 18:02:26 +02:00
Hallvard Furuseth
26a25df5fc
Tweak I/O, fix last commit.
2013-06-26 18:02:17 +02:00
Hallvard Furuseth
d6d2638acc
Improve MDB error handling, drop seek calls.
...
Catch I/O errors. Do nothing between OS call failure and ErrCode().
Do not use errno after non-OS-errors like write() >= 0, which could
give a failure return of success (errno 0) or some irrelevant error
code. Drop seek calls, use pwrite/pread/Windows OVERLAPPED offset.
2013-06-22 23:15:10 +02:00
Hallvard Furuseth
a5701cf2fe
Fix Windows I/O.
...
Don't put a 64-bit filesize in a 32-bit int before shifting
down. Always pass &sizehi to SetFilePointer->maxsize, so
sizelo not is treated a signed distance. Hide unused vars
when _WIN32. Reinitialize OVERLAPPED before reuse.
2013-06-22 23:01:30 +02:00
Hallvard Furuseth
3d4ba01e8b
Catch more MDB errors. DPRINTF in mdb_env_reset0.
2013-06-22 22:17:41 +02:00
Hallvard Furuseth
51ff20a4d6
Tweak MIDLs, catch errors.
...
Grow midls earlier in order to catch errors earlier. Use
mdb_midl_need() instead of mdb_midl_grow(), then mdb_midl_xappend()
needs no error checks. Factor out mdb_midl_append_range().
2013-06-22 22:10:43 +02:00
Hallvard Furuseth
6b200e3beb
Factor out MDB variables/expressions, cleanup.
...
mdb_page_malloc(): Take a txn arg instead of a cursor.
2013-06-22 12:30:04 +02:00
Hallvard Furuseth
9e6ef6c88f
Rearrange MDB dirty page code.
...
Split out mdb_dpage_free(), mdb_page_flush() and clean up.
2013-06-22 11:56:04 +02:00
Hallvard Furuseth
c6f9323b3d
Simplify mdb_page_alloc().
...
Merge if() branches. Restore retry=500 when MDB_PARANOID, for clarity.
2013-06-20 07:41:35 +02:00
Hallvard Furuseth
4a9ee2cb72
ITS#7620: Keep empty IDLs. Tweak mdb_page_alloc().
...
MDB_env.me_pghead: Don't free it when empty. mdb_ovpage_free()
needs it, but cannot allocate it.
mdb_midl_alloc(): Fill in length=0.
mdb_page_alloc(): Also Skip freeDB if txnid<3, instead of <4,
and consistently DPRINTF consumed IDLs.
2013-06-20 07:41:35 +02:00
Howard Chu
1d94ea5b55
ITS#7623 Clear P_SUBP on conversion from fake page
2013-06-17 22:26:11 +02:00
Hallvard Furuseth
60086c1bc7
ITS#7515 Nested MDB txns: Inherit txn flags.
...
Committing a nested txn lost the MDB_TXN_DIRTY flag
in the parent, unless the child had set it too.
2013-06-13 08:58:25 +02:00
Hallvard Furuseth
7030ad16e2
Clean up mdb_page_touch(), mdb_page_copy().
...
When copying, round up/down to aligned sizes. Skip the unused portion,
this was not done when touching a page dirty in the parent txn.
No other change in behavior.
Simplify mdb_page_touch(), including: Drop test m3==mc, the condition
is caught below. Don't "modify" the parent's pgno into the same pgno,
when a nested txn copies a parent's page into its freelist.
2013-06-13 08:58:24 +02:00
Hallvard Furuseth
79844bd446
ITS#7594 Fix MDB cursor tracking with subDBs.
...
The tracking code should not change the current cursor.
It did when that was a C_SUB cursor, which should not be
checked against the tracked cursors but their xcursors.
However, do not bother to skip the tracking code for the
current cursor when it would not change that cursor anyway.
2013-06-13 08:58:24 +02:00
Hallvard Furuseth
2bacf6e59e
ITS#7594 Invalidate a dropped MDB DB's cursors.
2013-06-13 08:58:24 +02:00
Hallvard Furuseth
62e4c4f9d0
Don't #define _GNU_SOURCE if already defined.
2013-06-13 08:58:24 +02:00
Hallvard Furuseth
c37a11a424
More for ITS#7620 Fix mdb_ovpage_free().
...
Do not binary-search dirty_list, it is unsorted when MDB_WRITEMAP.
Catch errors. In nested txns, put the page in mt_free_pgs after
all since pages dirty in a parent txn would add complexities.
2013-06-13 08:25:25 +02:00
Howard Chu
2d0b362b6f
Partial revert c2cac4588a
...
MDB_NEXT was fine before, duh.
2013-06-12 08:41:32 -07:00
Hallvard Furuseth
99427aa7de
Drop me_pgfree, add mdb_freelist_save().
...
Split up saving me_pghead, to make me_pgfree unneeded. Also mf_pghead
is now a midl. Needed after e7f6767ea8
("Return fresh overflow pages to current pghead").
Tweak MDB_DEBUG freelist output, make it ascending.
2013-06-12 17:20:42 +02:00
Howard Chu
c2cac4588a
Fix CURSOR_NEXT/PREV on emptied DB
2013-06-11 17:13:08 -07:00
Howard Chu
bcb67dd22f
Make sure mdb_stat() gets valid data
2013-06-08 14:10:08 -07:00
Howard Chu
e7f6767ea8
Return fresh overflow pages to current pghead
...
And remove them from the current dirty list.
2013-06-06 16:44:02 -07:00
Howard Chu
aff123ba11
ITS#7594 more for subDB cursor fix
2013-06-05 16:13:43 -07:00
Howard Chu
3b623d66e1
ITS#7594 better fix
...
Update the subDB cursor, don't invalidate it
2013-06-05 15:23:54 -07:00
Howard Chu
65faa5ed7e
tweak mdb_copy, trap signals
2013-05-30 15:56:30 -07:00
Howard Chu
d29b9600e6
Windows portability fixes for prev commit
2013-05-30 15:33:59 -07:00
Howard Chu
f207c50b15
Add warning about interrupting copy
2013-05-30 13:13:33 -07:00
Howard Chu
ad573fe125
Fix prev commit
2013-05-30 13:09:28 -07:00
Howard Chu
c68e5ae9be
Add mdb_env_copyfd()
...
Allow writing backup to an already opened file handle, for piping
to tar/gzip/ssh/whatever.
2013-05-30 13:06:12 -07:00
Howard Chu
4b49291653
Add _M_IX86 macro for MSVC
2013-05-25 10:16:55 -07:00
Stef Walter
ffe383c27b
ITS#7583 Fix ldap_init_fd() for LDAP_PROTO_UDP
...
ldap_init_fd() tried to handle UDP sockets but was missing
certain key pieces to make it work. Fill in the address and
set the UDP flag correctly.
2013-05-23 12:40:09 -07:00
Howard Chu
63312f109f
ITS#7582 CLDAP, avoid ref to uninit'd memory
2013-05-23 12:36:15 -07:00
Howard Chu
e31c7d3b31
ITS#7594 De-init other subcursors in page_touch
2013-05-23 12:17:21 -07:00
Hallvard Furuseth
92fe958805
Drop unused liblmdb MIDL-range support.
2013-05-21 23:58:57 +02:00
Hallvard Furuseth
feaeab0c04
Factor out mdb_find_oldest,mdb_dlist_free,dirty_list.
...
Do not rescan reader table (mdb_find_oldest) after "goto again".
Skip clearing dirty_list[nonzero].mid in mdb_dlist_free(); it
was not done in mdb_reset0() anyway.
2013-05-21 23:55:13 +02:00
Hallvard Furuseth
5ea1cd8f6d
mdb_stat cleanup.
...
Exit with success when there was no failure.
Do not use data containing NUL as a DB name (which is a C string).
2013-05-21 23:48:27 +02:00
Hallvard Furuseth
a1b16ce5f0
ITS#7598 Tweak MDB_<NEXT/PREV>_NODUP,fix mdb_stat.
...
MDB_NEXT_NODUP, MDB_PREV_NODUP: Allow for non-MDB_DUPSORT databases.
No mdb.c code changes needed.
mdb_stat.c: Use MDB_NEXT_NODUP, to avoid a crash with a DUPSORT mainDB.
2013-05-21 22:44:51 +02:00
Hallvard Furuseth
1b6d7ee7e1
ITS#7598 mdb_dbi_open(named DB): Check mainDB flags.
...
Reject attempts to open named databases if the main
database has flag MDB_DUPSORT or MDB_INTEGERKEY.
DUPSORT would require an xcursor for the DB, INTEGERKEY
would expect the DB name to be a binary integer.
2013-05-21 19:04:52 +02:00
Hallvard Furuseth
a2ce25482a
ITS#7515 Fix nested txn touch of subpage/ovpage.
...
mdb_page_touch(): Don't touch a subpage, replacing with non-subpage.
mdb_cursor_put(): Don't overwrite ancestor txn's dirty overflow page.
2013-05-20 23:12:52 +02:00
Hallvard Furuseth
5bdf2aae6e
Tweak mdb_page_malloc(),mdb_page_get() semantics.
...
mdb_page_malloc(): Add "number of pages" parameter.
mdb_page_get(): Add output param for how page was found.
Do not set return params on error.
mdb_cursor_put(): Catch mdb_page_get() error.
Prepares for next commit, no change in caller behavior other
than on mdb_page_get error.
2013-05-20 23:12:26 +02:00
Hallvard Furuseth
2eb50b1d2e
More ITS#7589 followup: OVPAGES() -> mp_pages.
2013-05-19 19:08:07 +02:00
Hallvard Furuseth
e4ce404992
More ITS#7589: Fix prev commit.
...
mp_pages gives #pages in the ovpage. OVPAGES() no longer does.
2013-05-19 18:38:13 +02:00
Hallvard Furuseth
0cdd9dffdd
ITS#7589 mdb_cursor_put(): Update ovpage nodesize.
...
Update the nodesize when overwriting an overflow page.
As before, do not attempt to shrink the page.
2013-05-17 19:31:17 +02:00
Howard Chu
5ba27410ae
Merge remote-tracking branch 'origin/mdb.master'
2013-05-16 17:23:29 -07:00
Howard Chu
833cd905b7
Include <netinet/in.h> for Solaris 8
...
Needed for <resolv.h>, which is needed for BYTE_ORDER.
2013-05-15 11:50:40 -07:00
Howard Chu
81f4d50c77
Merge remote-tracking branch 'origin/mdb.master'
2013-05-14 17:12:33 -07:00
Howard Chu
7233bc295b
Fix mdb_page_split - nested split
...
If updating a page's separator triggers a split in its parent,
we may have missed adjusting the parent's cursor position.
2013-05-14 16:57:50 -07:00
Howard Chu
1105aa35ba
Doxygen cleanup
2013-05-13 12:36:47 -07:00
Howard Chu
4a6adbf589
Merge remote-tracking branch 'origin/mdb.master'
2013-05-10 13:04:44 -07:00
Howard Chu
9ebd5992c9
Fix 66c839f029
...
Forgot #include <errno.h>
2013-05-10 05:56:16 -07:00
Howard Chu
66c839f029
Refactor mdb_midl_append, add mdb_midl_grow()
2013-05-09 17:27:29 -07:00
Hallvard Furuseth
2d6aed7537
ITS#7515 Fix nested transaction error handling.
...
mdb_txn_begin(): Do not free(mt_free_pgs), it needs mdb_midl_free().
mdb_txn_commit(): Catch commit(child) error.
2013-05-05 15:13:31 +02:00
Hallvard Furuseth
521fdb00cc
Fix mdb_env_close(unopened MDB_env).
...
Do not try to scan me_dbxs in a closed/never-opened MDB_env.
Broken by 7d643d3acb
and 151c416b46 .
2013-05-05 14:26:05 +02:00
Hallvard Furuseth
0b9a208530
Simplify/cleanup mdb_cursor_init, C_ALLOCD.
...
No real change.
mdb_cursor_init() checks if it needs mx, so pass it unconditionally.
Set C_ALLOCD for shadow cursors, for clarity. (It was always set as
it should anyway from the origin cursor, which would have C_ALLOCD.)
2013-05-04 12:53:43 +02:00
Hallvard Furuseth
f355de0298
MDB warning cleanup.
...
Unused function when MDB_DEBUG. Unused 'excl' param.
2013-05-04 12:41:28 +02:00
Hallvard Furuseth
b389341b4b
mdb_dcmp(): Assume the database has MDB_DUPSORT.
...
There was little point in returning EINVAL when not: Comparing (A,B)
and (B,A) would claim (A > B && B > A), which could confuse callers.
2013-05-04 12:34:49 +02:00
Hallvard Furuseth
91a93004ce
Update MDB doc: Cursors, DB handles, data lifetime
2013-05-04 12:34:20 +02:00
Hallvard Furuseth
385889b0be
Allow mdb_cursor_close() after readonly txn ends.
...
Catch mdb_cursor_renew(write txn's cursor). Add flag C_UNTRACK, so
mdb_cursor_close need not peek inside a possibly-freed readonly txn.
2013-05-04 12:34:02 +02:00
Hallvard Furuseth
17ffe9c992
Close cursors when commit(writer). Factor out code.
...
Close remaining cursors when committing a write txn. The doc says this
happens, and it avoids cursor tracking when updating mainDB + freeDB.
Rename mdb_cursor_merge() -> mdb_cursors_close() for code reuse,
and add a merge option. Simplify its loop a bit.
Factor out cleanup of DBIs.
2013-05-04 12:33:06 +02:00
Hallvard Furuseth
dca0cef678
Plug txn leak and MDB_NOTLS slot leaks on error.
...
On mdb_env_copy() error: Abort the txn.
On mdb_txn_renew0() error: Release new MDB_NOTLS reader slot.
2013-05-04 12:31:31 +02:00
Hallvard Furuseth
f45d40a88b
Cleaner "Support mdb_txn_abort(a reset txn)".
...
Redo 8a562f560e so !mt_dbxs indicates
"txn was reset", so mt_numdbs gets one magic value instead of two.
2013-05-04 10:03:19 +02:00
Hallvard Furuseth
151c416b46
Update fixes for dbi_open/close, ITS#7515.
...
Reset me_dbflags[dbi] when closing DBI, to get rid of MDB_VALID flag.
mdb_env_close(): Re-fix DB-name memleak. DBIs > me_numdbs may exist.
2013-05-04 10:03:19 +02:00
Howard Chu
21da623bf4
Allow reading freelist while working on it
...
The circular dependency issues appear to have been resolved.
Still, need to watch closely, maybe revert this change if
problems arise.
2013-05-01 22:45:15 -07:00
Howard Chu
054812517f
Merge remote branch 'origin/mdb.master'
2013-04-30 23:18:01 -07:00
Howard Chu
568c22c4cc
Avoid assert
...
Due to underfilled branch page. We're in the process of merging/moving
nodes to it because we already know it's underfilled. Took this approach
rather than just removing the assert in mdb_page_search_root, because
that assert may yet catch other situations we don't know about.
(Although, it has been there since the original commit of mdb.c and
has never triggered any other times...)
2013-04-30 21:09:09 -07:00
Hallvard Furuseth
37bd48a618
Plug mdb_cursor_renew() memleak
2013-04-30 21:06:36 -07:00
Howard Chu
1e68029078
Drop ldap_int_sasl_mutex
...
It was introduced for Cyrus 1.5 in 2001; we've been on 2.x since 2002 and
Cyrus does its own locking when needed.
2013-04-24 00:52:52 -07:00
Howard Chu
c057582573
Fix MDB_LAST, reset cursor index
2013-04-20 19:30:06 -07:00
Howard Chu
da3e4d78d6
Fix typo from 7aba5f5ab9
2013-04-20 09:47:33 -07:00
Hallvard Furuseth
9dd61011fe
Tweak comments/readability.
...
Show MDB_PERSISTENT/MDB_VALID/DB_VALID relationship.
mdb_txn_renew0(): Remove obsolete "cannot fail" comment.
2013-04-18 08:00:03 +02:00
Howard Chu
272e4e98ad
Add MDB_NOTLS envflag.
2013-04-18 04:17:03 +02:00
Hallvard Furuseth
afe488d8a9
Catch MDB txn reuse/sync errors.
2013-04-18 04:16:07 +02:00
Hallvard Furuseth
8a562f560e
Support mdb_txn_abort(a reset txn).
2013-04-18 04:15:45 +02:00
Hallvard Furuseth
ce6335b0d9
Cleanup for TLS key and read-only filesystem.
...
Move key init into mdb_env_setup_locks().
Don't create unused TLS key when read-only filesystem.
Drop internal flag MDB_ROFS, we can instead test either
!me_txns, !mt_u.reader or me_lfd==INVALID_HANDLE_VALUE.
2013-04-18 04:15:13 +02:00
Hallvard Furuseth
65a6542765
Clean up MDB_env setup.
...
Malloc before I/O. Avoids possible malloc error after I/O.
Don't allocate dirty & free lists when MDB_RDONLY.
Factor out code.
2013-04-18 04:13:43 +02:00
Howard Chu
dbb9ded2f8
Fix mdb_rebalance
...
Don't do anything with (fake root) subpages
2013-04-17 14:33:41 -07:00
Howard Chu
aca6c08897
ITS#7574 blind fix
...
Fix 227329c8e1 , don't persist
the MDB_VALID bit in db.md_flags.
2013-04-16 12:05:03 -07:00
Howard Chu
92fc932f21
fix prev commit
2013-04-15 09:30:39 -07:00
Howard Chu
0cccf79a02
Fix mdb_rebalance
...
Need to check NUMKEYS as well as fill threshold, when deciding
whether to change anything. Don't let the page drop below the
minimum number of keys.
2013-04-14 23:59:54 -07:00
Howard Chu
14c5a5dff1
Revert "ITS#7570 fix MDB_GET_MULTIPLE and MDB_NEXT_MULTIPLE"
...
This reverts commit 372b3ddb85 .
Original code works as designed.
2013-04-14 16:53:30 -07:00
Claude Brisson
372b3ddb85
ITS#7570 fix MDB_GET_MULTIPLE and MDB_NEXT_MULTIPLE
2013-04-11 15:10:23 -07:00
Howard Chu
1da5f1faf0
Merge remote-tracking branch 'origin/mdb.master'
2013-04-07 19:23:19 -07:00
Howard Chu
fbe6a6051b
Fix 227329c8e1
...
mdb_dbi_close() must allow any dbi < maxdbs, since opens in an
uncommitted txn don't increment env->me_numdbs.
2013-04-07 19:21:46 -07:00
Howard Chu
15af1b8cac
Merge remote-tracking branch 'origin/mdb.master'
2013-04-05 03:48:05 -07:00
Howard Chu
e43fa77eaa
Revert "Fix 6beaad52129da5353fd40c0ec48e6a78c4f71a2e"
...
This reverts commit 8eef7a4275 .
Previous commit was correct, duplicate keys should not appear here.
2013-04-05 03:44:56 -07:00
Howard Chu
55d91653fd
Merge remote-tracking branch 'origin/mdb.master'
2013-04-05 03:04:31 -07:00
Howard Chu
227329c8e1
Fixes for dbi_open/close, ITS#7515
2013-04-05 02:58:08 -07:00
Howard Chu
6b46799379
ITS#7561 Fix mdb_drop bugs
...
Check for overflow pages, reset cursor position properly.
2013-04-04 16:52:55 -07:00
Howard Chu
8eef7a4275
Fix 6beaad5212
...
In APPEND don't immediately reject matching key, since this
is valid for APPENDDUP.
2013-04-04 07:25:21 -07:00
Howard Chu
6beaad5212
Fix d3990eb2f8
...
Append mode should *reject* keys that are too small.
Also allow APPENDDUP in mdb_put().
2013-04-03 18:26:41 -07:00
Howard Chu
e31d748dbe
Fix rebalance when collapsing root page
...
When fixing other cursors, must also fix their depth.
2013-04-01 20:34:40 -07:00
Howard Chu
cb1cc64831
More fixes for MDB_LAST
...
Make sure C_INITIALIZED gets set on successful call
2013-04-01 19:49:40 -07:00
Howard Chu
3213fc4db7
ITS#7556 fix cursor_sibling for PREV
2013-04-01 19:06:05 -07:00
Hallvard Furuseth
7d643d3acb
Plug MDB memory leak of DB names.
2013-03-31 23:50:02 +02:00
Hallvard Furuseth
ccb7b26916
Silence signedness warning
2013-03-31 23:48:10 +02:00
Hallvard Furuseth
a70b026f6b
Fix MDB_DEBUG compile when no varargs macros.
...
Variables mdb_debug, mdb_debug_start were used undefined.
2013-03-31 23:47:45 +02:00
Howard Chu
30da15a18d
Tweak mode_t def per Hallvard's suggestion
2013-03-31 20:56:08 +01:00
Howard Chu
0c568117ce
MSVC doesn't define mode_t
2013-03-31 08:10:43 -08:00
Howard Chu
7aae15739b
Fix CURSOR_LAST/CURSOR_PREV
2013-03-29 01:08:06 -07:00
Howard Chu
b107cffb87
Merge remote-tracking branch 'origin/mdb.master'
2013-03-26 11:37:14 -07:00
Howard Chu
863fa77a08
ITS#7553 better fix
2013-03-26 11:24:59 -07:00
Howard Chu
faf077bd5c
Merge remote-tracking branch 'origin/mdb.master'
2013-03-25 12:16:49 -07:00
Howard Chu
8a99b00acc
ITS#7553 deinit cursor after deleting last node
2013-03-25 12:15:53 -07:00
Howard Chu
bccbcd1938
Silence stupid warnings
2013-03-25 11:53:32 -07:00
Howard Chu
dc2e2dbaa1
Merge remote-tracking branch 'origin/mdb.master'
2013-03-23 14:06:33 -07:00
Claude Brisson
bbb27cde4a
bugfix for mdb_cursor_put with MDB_MULTIPLE
...
If the variable dkey.mv_size is non-zero, then it means dkey
contains some original data which has to be put back in the
child db, typically when the child db has just been created.
But when using MDB_MULTIPLE, if this variable has not been
reset to zero, we may come back to this section and wrongly
think that there is some original data to be taken care of.
2013-03-23 14:03:12 -07:00
Howard Chu
334ca55089
Merge remote-tracking branch 'origin/mdb.master'
2013-03-12 17:34:40 -07:00
Howard Chu
77001f549b
ITS#7538 fallout from ITS#7536 fix.
...
Allow leaf pages to have only 1 key.
2013-03-12 17:29:34 -07:00
Howard Chu
3247d7cbd6
Precalculate max size of a node
2013-03-12 17:25:49 -07:00
Howard Chu
8c1d95a438
Fix f97552a83a
...
Causes Bus Error on SPARC
2013-03-11 10:28:25 -07:00
Howard Chu
f80171e079
Check for MADV_RANDOM
...
Android supports madvise but not posix_madvise
2013-03-11 06:04:54 -07:00
Howard Chu
9c4ee82297
ITS#7377 Fix c0f3d9b9a8
...
Add missing parens
2013-03-11 05:59:07 -07:00
Howard Chu
b1da555c4c
Turn off readahead on main mmap
...
It's harmful when the DB is larger than RAM.
2013-03-11 05:49:14 -07:00
Howard Chu
8289ac3b5c
Merge remote-tracking branch 'origin/mdb.master'
2013-03-06 15:50:47 -08:00
Howard Chu
d74330128a
ITS#7536 fix mdb_rebalance
...
A page must always have at least 2 keys (unless it's a root page)
2013-03-06 15:10:22 -08:00
Howard Chu
6dab37f2ac
Use CC/LDFLAGS to link the shared lib
2013-02-25 05:06:51 -08:00
Howard Chu
d8b407d9a2
Install manpages too
2013-02-25 02:02:15 -08:00
Howard Chu
26e4222ffb
Delete obsolete @todo
...
We do it now... (coalescing freelist entries in page_alloc)
2013-02-24 23:43:36 -08:00
Howard Chu
58e27b6c20
Add sample apps for comparison/education purposes
2013-02-24 23:43:18 -08:00
Howard Chu
66c9f03055
Add $(DESTDIR) to make install target
2013-02-25 06:50:51 +00:00
Howard Chu
f839815778
Merge remote-tracking branch 'origin/mdb.master'
2013-02-21 05:20:20 +00:00
Howard Chu
3394bac2c0
Update error code instances
2013-02-20 05:08:52 -08:00
Hallvard Furuseth
80cd881184
Tweak MDB_INCOMPATIBLE description
2013-02-20 12:19:45 +01:00
Hallvard Furuseth
fbd76c44e4
Tweak prev commit: Restore if-test as an assert
2013-02-20 09:08:41 +01:00
Hallvard Furuseth
208e5c614d
ITS#7515 Fix mdb_txn_commit(nested txn).
...
Don't modify the parent txn until the current txn cannot fail.
Don't assume new dirty child pgnos > dirty parent pgnos.
Page alloc/touch: Fail if child+parent dirty pages would exceed
dirty_list's maxsize. Avoids an error situation in commit.
2013-02-19 18:44:10 -08:00
Hallvard Furuseth
f43ae20be7
ITS#7512 Plug mdb_txn_abort(nested txn) page leaks.
...
Also catch mdb_cursor_shadow() errors.
2013-02-19 22:03:04 +01:00
Hallvard Furuseth
f97552a83a
Check DB flags when refreshing a stale MDB DBI.
...
It's hairy to figure out when a DBI is valid. Catch destructive
user errors, and flags which another process changed under us.
2013-02-19 22:02:37 +01:00
Hallvard Furuseth
2dbb8bb833
mdb_cursor_prev,mdb_cursor_next: Fix return value.
...
Return mdb_node_read()'s return value if it fails, not 1.
(Can happen if mdb_page_get() fails and NDEBUG is #defined.)
2013-02-19 22:02:15 +01:00
Hallvard Furuseth
e4af9ee5da
ITS#7515 mdb_dbi_open(): Also open in parent txns.
...
This makes aborting nested and non-nested txns more
similar: The new DBI is available to the surrounding
context (parent txn and MDB_env respectively).
2013-02-19 22:01:29 +01:00
Hallvard Furuseth
4b67270374
mdb_page_alloc(): Handle freeDB txnid range holes.
...
A txn writes no freeDB entry if previous txn dropped mainDB and a read
txn prevents freelist entry reuse. This surprised mdb_page_alloc (and
mdb_txn_commit too before 65c053a6e7 ).
2013-02-19 21:17:33 +01:00
Hallvard Furuseth
f19655eabc
ITS#7517 Document that dirty DBs may not be closed
2013-02-19 21:15:26 +01:00
Hallvard Furuseth
8ad25001ff
ITS#7485 Document key/data size limits in lmdb.h.
...
mdb.c already describes them. The user doc should too.
2013-02-19 21:14:23 +01:00
Hallvard Furuseth
ef25056cfb
Revert "ITS#7515 update parent's mt_next_pgno on child commit"
...
This reverts commit fd4861bf00 .
It duplicated earlier code.
2013-02-17 08:42:14 +01:00
Howard Chu
fd4861bf00
ITS#7515 update parent's mt_next_pgno on child commit
2013-02-17 00:49:53 +00:00
Howard Chu
890f1da3ee
Don't limit retries when coalescing freelist
...
Try to use whatever's available.
2013-02-17 00:48:43 +00:00
Hallvard Furuseth
00d7a96bd5
ITS#7515 Fix MDB parent/child txn interaction.
...
mdb_txn_commit(child): Copy more state. Copy all of mt_dbs:
Include mainDB, and even freeDB since mdb_drop() can update
it. Don't skip DBs with unchanged root, this could break
when the new was newly opened and the old unused junk.
mdb_page_get(): Search parents' dirty lists.
2013-02-16 19:11:20 +01:00
Hallvard Furuseth
d90581fa5a
ITS#7377 Catch MDB failure updating root pointers.
...
"cannot fail" was wrong, it fails at least when exceeding mapsize.
2013-02-16 19:08:54 +01:00
Hallvard Furuseth
c7db955a94
ITS#7517 Don't save dropped dirty MDB databases.
...
mdb_txn_commit's attempt to save the DB could corrupt another DB if
another thread had called mdb_dbi_open and reused the closed DBI.
2013-02-16 19:08:37 +01:00
Hallvard Furuseth
8e1bbdf0dd
mdb_stat -ff[f]: show contiguous page spans.
2013-02-16 19:07:16 +01:00
Hallvard Furuseth
7aba5f5ab9
Add error code MDB_MAP_RESIZED.
2013-02-16 19:06:28 +01:00
Howard Chu
c6a4982793
More for ITS#7455
...
Don't memmove freelist entry when chunking it. Just advance the pointer,
now that it's no longer a complex struct. Also just calculate maxfree_1pg
at startup; it's a constant during runtime.
2013-02-15 13:33:50 +00:00
Hallvard Furuseth
1f953c5559
ITS#7455 Save freelist in single-page chunks
2013-02-15 13:33:50 +00:00
Hallvard Furuseth
7cacc0ec81
Freelist cleanup/streamlining
...
Drop unneeded definitions, redundant code.
2013-02-15 13:33:49 +00:00
Howard Chu
5e59695b8d
Don't memmove freelist entry when chunking it
...
Just advance the pointer, now that it's no longer a complex struct
2013-02-15 13:27:50 +00:00
Hallvard Furuseth
52ecd38e18
ITS#7455 Save freelist in single-page chunks
2013-02-15 13:27:50 +00:00
Hallvard Furuseth
1b8bfc5756
Freelist cleanup/streamlining
...
Drop unneeded definitions, redundant code.
2013-02-15 13:27:02 +00:00
Howard Chu
9ac070beb3
Merge remote-tracking branch 'origin/mdb.master'
2013-02-07 18:30:58 +00:00
Hallvard Furuseth
65c053a6e7
ITS#7512 Fix MDB page leak when malloc error.
...
mdb_page_alloc(): Delay moving me_pgfirst,me_pglast
until malloc(MDB_oldpages to hold the IDs) succeeds.
2013-02-07 08:17:30 +01:00
Howard Chu
e0eb495fb3
Revert "ITS#7515 fix mdb_dbi_open/close"
...
This reverts commit 48dc782ea6 .
2013-02-04 10:53:17 -08:00
Howard Chu
744e311939
NULL key is allowed for MDB_CURRENT
2013-02-01 06:19:23 -08:00
Howard Chu
48dc782ea6
ITS#7515 fix mdb_dbi_open/close
...
If a DBI handle is opened by a txn that aborts, the DBI handle
should no longer be valid.
2013-01-31 20:05:48 -08:00
Quanah Gibson-Mount
bc4e47a5a4
Merge remote branch 'origin/mdb.master'
2013-01-31 16:46:55 -08:00
Howard Chu
27aaecc744
ITS#7511 make sure cursor is marked valid after successful put
2013-01-28 18:45:36 -08:00
Howard Chu
9fa0c3bf31
ITS#7505 fix prev commit, partial revert
2013-01-29 01:08:24 +00:00
Howard Chu
0b8ac92b7a
ITS#7505 Fix mdb_update_key when key is too big
2013-01-27 18:02:18 +00:00
Howard Chu
1c581612f7
Merge remote-tracking branch 'origin/mdb.master'
2013-01-26 18:56:29 +00:00
Howard Chu
cfedb365b4
Fix MDB_CURRENT updating for dupsort items
2013-01-26 18:55:35 +00:00
Howard Chu
461db2de1a
ITS#7497 fix lineno overflow in ldif_read_record()
2013-01-23 02:19:02 +00:00
Hallvard Furuseth
7fdf672041
Update MDB comments: Caveats, flags, etc.
2013-01-16 18:42:57 +01:00
Howard Chu
04ea399c7c
Merge remote branch 'origin/mdb.master'
2013-01-15 04:29:22 -08:00
Howard Chu
8e7bb2042b
ITS#7485 data sizes limited to 32 bits
...
That's all we have space for in a node record.
2013-01-15 04:28:47 -08:00
Howard Chu
b3345a21e0
Merge remote-tracking branch 'origin/mdb.master'
2013-01-14 16:51:37 -08:00
Howard Chu
1a0d02c4c4
ITS#7485 more size checks
2013-01-14 13:46:25 -08:00
Howard Chu
25a99d4024
ITS#7485 check maxkeysize in mdb_cursor_put
...
Also MDB_MAXKEYSIZE is redefinable at compile time.
2013-01-14 13:12:15 -08:00
Howard Chu
9e35127f1d
One more rename
...
Forgot this in 98fe339089
2013-01-14 12:57:54 -08:00
Howard Chu
53cf2eed90
ITS#7491 check for filled dirty page list
...
Very large single transactions will fail. It's not just a problem when
nested transactions are used. We could make this dynamically sized,
but I'm not sure what the point is.
2013-01-11 11:45:25 -08:00
Howard Chu
e250e052c3
Merge remote-tracking branch 'origin/mdb.master'
2013-01-10 02:59:39 -08:00
Howard Chu
fed573cb86
Happy New Year
2013-01-10 02:58:55 -08:00
Howard Chu
8102d9d2df
Merge remote-tracking branch 'origin/mdb.master'
2013-01-09 12:22:41 -08:00
Hallvard Furuseth
cd80a15474
Delete liblmdb/mfree. It has moved into mdb_stat.
2013-01-09 20:49:43 +01:00
David Bender
8f52aa24d3
ITS#7476 Prevent EINTR from stopping otherwise successful connect
2013-01-09 09:11:35 -08:00
Howard Chu
0521a7b374
Merge remote branch 'origin/mdb.master'
2013-01-09 08:57:53 -08:00
Howard Chu
2a36346b50
ITS#7455 don't give up so soon
...
If we're operating on the freelist, see if our current pghead
can satisfy the request before giving up and using new pages.
2013-01-09 08:30:13 -08:00
Kurt Zeilenga
0fd1bf30b8
Happy New Year
2013-01-02 10:22:57 -08:00
Howard Chu
5e1dbc48ab
Merge remote-tracking branch 'origin/mdb.master'
2012-12-19 13:20:50 -08:00
Howard Chu
057e068630
Fix typo
2012-12-19 13:20:24 -08:00
Howard Chu
9f2c72e5fb
Merge remote-tracking branch 'origin/mdb.master'
2012-12-19 13:12:50 -08:00
Howard Chu
460a05bf78
Add initial mdb utility manpages
2012-12-19 13:09:56 -08:00
Howard Chu
2565e974b9
ITS#7477 check for invalid LDIF
2012-12-19 09:15:09 -08:00
Howard Chu
9ed5ca4f7a
Merge remote-tracking branch 'origin/mdb.master'
2012-12-11 22:22:52 -08:00
Howard Chu
82b97a8af0
init_meta should write mapsize
...
Was leaving it 0 initially.
2012-12-11 22:21:52 -08:00
Howard Chu
1c1b5ca0c4
Merge remote-tracking branch 'origin/mdb.master'
2012-12-11 16:01:27 -08:00
Howard Chu
0702fbd688
Update version date
2012-12-11 16:01:25 -08:00
Howard Chu
bae86317e0
Merge remote-tracking branch 'origin/mdb.master'
2012-12-11 14:22:31 -08:00
Howard Chu
9acf801cc1
Make sure init_meta is at beginning of file
2012-12-11 12:55:47 -08:00
Howard Chu
ed86a086f7
More for prev commit
...
Use the latest meta page
2012-12-11 12:46:17 -08:00
Howard Chu
e74d70e88e
Partially revert 65d40eb5d2
...
Allow both increasing and decreasing the environment size.
But don't allow decreasing below the currently occupied space.
2012-12-11 12:03:19 -08:00
Howard Chu
470b126e9f
Merge remote-tracking branch 'origin/mdb.master'
2012-12-10 17:22:26 -08:00
Howard Chu
282be11654
FIx prev commit
2012-12-10 17:21:24 -08:00
Howard Chu
3bf87500a3
Merge remote-tracking branch 'origin/mdb.master'
2012-12-10 12:22:30 -08:00
Howard Chu
0ce6bb4be0
Add error checks to txn_commit
...
These ops could fail if the map is full.
2012-12-10 12:21:36 -08:00
Howard Chu
aff2693fc0
ITS#7455 simplify
...
Don't try to reclaim overflow pages while operating on
the freelist (for now). The circular dependencies are much like
the single-page case, but worse. Maybe look into this in the
future, but it's not absolutely necessary now.
2012-12-10 12:16:50 -08:00
Howard Chu
e26fc73417
ITS#7467 add verbose freelist info
2012-12-07 13:19:36 -08:00
Howard Chu
6a9476822d
Merge remote-tracking branch 'origin/mdb.master'
2012-12-07 12:28:25 -08:00
Howard Chu
784757faa9
ITS#7465 fail if both -a and -s specified
2012-12-07 12:06:30 -08:00
Howard Chu
6062cd9777
Merge remote-tracking branch 'origin/mdb.master'
2012-12-06 17:41:14 -08:00
Howard Chu
9a5d4370be
Yet more retries for overflow page scan
2012-12-06 17:39:49 -08:00
Howard Chu
8ab758c9cc
Merge remote-tracking branch 'origin/mdb.master'
2012-12-06 17:11:29 -08:00
Howard Chu
5863d5cc61
Freelist fixes
...
Keep list sorted if it grows during a write. Don't free pghead until
we're sure our writes are all finished.
2012-12-06 09:05:30 -08:00
Howard Chu
a037e27fc0
Merge remote branch 'origin/mdb.master'
2012-12-04 06:39:01 -08:00
Howard Chu
7b10fdde00
Fix mdb_env_copy
...
Just write in 2^31 sized chunks
2012-12-04 06:30:22 -08:00
Howard Chu
bbfe587246
Add support for 64 bit index hashing
2012-12-03 18:14:28 -08:00
Howard Chu
f9d41ba98a
Merge remote-tracking branch 'origin/mdb.master'
2012-12-03 16:54:33 -08:00
Howard Chu
04b7c42109
Rename mdb_open/close mdb_dbi_open/close
...
Avoid possible symbol clashes with MDB-Tools libmdb
2012-12-03 16:53:24 -08:00
Howard Chu
e545b742e5
Fix 5c1ee7f7ba
...
mdb_cursor_sibling() no longer pops cursor before returning.
2012-12-03 13:57:46 -08:00
Howard Chu
5af47adf6b
Fix mdb_midl_shrink
2012-12-03 13:57:28 -08:00
Howard Chu
ef3b4213ff
Merge remote-tracking branch 'origin/mdb.master'
2012-11-30 12:56:58 -08:00
Howard Chu
d3f51fdcf7
More retries for overflow page scan
2012-11-30 12:54:19 -08:00
Howard Chu
1509d75363
Merge remote-tracking branch 'origin/mdb.master'
2012-11-30 12:47:00 -08:00
Howard Chu
98fe339089
Rename libmdb to liblmdb
2012-11-30 12:45:34 -08:00
Howard Chu
2a94ebced6
Add install target
2012-11-30 12:39:53 -08:00
Howard Chu
d0e86d485d
Merge remote-tracking branch 'origin/mdb.master'
2012-11-30 12:33:18 -08:00
Howard Chu
13f3bcd59c
Rename libmdb to liblmdb, lmdb.h
...
Avoid naming conflicts with other mdb* packages. Bump version to 0.9.5
2012-11-30 12:30:51 -08:00
Howard Chu
f165507199
ITS#7455 use freelist for overflow pages
2012-11-30 12:18:27 -08:00
Howard Chu
185136397d
Drop unneeded #include <time.h>
2012-11-28 15:34:44 -08:00
Howard Chu
049b145ec7
Doc layout tweaks
2012-11-28 15:34:19 -08:00
Hallvard Furuseth
97ed96206d
mdb_env_sync(,force=1): Override MDB_MAPASYNC.
...
With MDB_MAPASYNC, the API provided no way to ensure full sync.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
b9275c9991
mdb_cursor_dbi(): Assume valid args.
...
It returned 0, which is the freelist DBI and is valid for a few uses.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
7e620a34a2
API change: mdb_drop() only accepts del=0 or 1.
...
This allows for other flag values in the future.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
d903bed218
API change: mdb_env_set_maxdbs(, *named* DBs).
...
Let the user specify the number of databases he will actually
use. Adding 2 for FREE_DBI and MAIN_DBI is an internal matter.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
6b56e0fab1
ITS#7453 Fix reset of MDB_NOSYNC/MDB_NOMETASYNC.
...
mdb_env_open() with these flags did not open a synchronizing
file descriptor. Thus disabling them later did not work.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
0201b9002c
Tweak MDB_FIXEDMAP handling.
...
Drop mmap()'s MAP_FIXED flag, so it returns another address instead
of unmapping existing overlapping pages. Verify the returned address.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
52e3adbdec
Renumber MDB_NOSUBDIR. Check mdb_env_open() flags.
...
MDB_NOSUBDIR was == MDB_REVERSEKEY. That affected the freelist:
Env flags are stored in mm_flags alias mm_dbs[FREE_DBI].md_flags.
It stays a persistent flag, in case mdb_env_open someday wants
to pick/verify which lockfile to use with the datafile.
Catch bad flags so they will no longer make it into the data file.
2012-11-28 00:59:00 +01:00
Ralf Haferkamp
c728ebf586
ITS#7428 Use non-blocking IO during SSL Handshake
...
If a timeout is set, perform the SSL Handshake using non-blocking IO. This way
we can timeout if SSL Handshake gets stuck for whatever reason.
This code is currently hidden behind #ifdefs (LDAP_USE_NON_BLOCKING_TLS) and
disabled by default as there seem to be some problems using NON-blocking
I/O during the TLS Handshake when linking against NSS (either a bug in NSS
itself of in tls_m.c, see discussion on -devel)
This patch adds an additional parameter to ldap_int_poll() in order to indicate
if we're waiting in order to perform a read or write operation.
2012-11-21 14:25:18 +01:00
Howard Chu
88fd28886d
Merge remote-tracking branch 'origin/mdb.master'
2012-11-05 09:47:03 -08:00
Howard Chu
bb36bdcd1c
ITS#7432 fix typo in mdb_midl_sort
...
Wasn't pushing the optimal half of the array onto the stack,
thus used more stack than expected -> overrun.
2012-11-05 05:06:06 -08:00
Howard Chu
64b164b4fc
Merge remote-tracking branch 'origin/mdb.master'
2012-10-30 16:34:14 -07:00
Howard Chu
0108327c27
Better fix for MDB_DEBUG tweak -- from hbf
2012-10-25 07:03:25 -07:00
Howard Chu
b68aa3f86b
Revert "MDB_DEBUG tweak for old compilers"
...
This reverts commit ef2092eac9 .
2012-10-25 06:54:09 -07:00
Howard Chu
ef2092eac9
MDB_DEBUG tweak for old compilers
2012-10-25 05:28:55 -07:00
Howard Chu
52a0b4f83c
Merge remote-tracking branch 'origin/mdb.master'
2012-10-23 04:49:09 -07:00
Howard Chu
c2f15990c7
Fix flag checks in mdb_open
2012-10-23 04:48:04 -07:00
Howard Chu
f5b8d017df
fix Windows mdb_env_copy(), WriteFile overflow
2012-10-23 04:32:55 -07:00
Howard Chu
f51efd4b03
Merge remote-tracking branch 'origin/mdb.master'
2012-10-22 17:05:26 -07:00
Howard Chu
66f2b7b2ec
Make sure mdb_open flags are committed on main DB
...
If no data was modified in the txn, mdb_open flag changes were dropped.
2012-10-22 17:03:15 -07:00
Howard Chu
5f2ddb5532
Minor cleanup
2012-10-22 16:13:42 -07:00
Howard Chu
5c1ee7f7ba
Fix MDB_PREV
...
Could return 1 garbage record before actual data, if starting from EOF
2012-10-22 16:02:30 -07:00
Howard Chu
617769bce5
Tweak output, add free page info
2012-10-16 17:01:16 -07:00
Howard Chu
754cd88819
Add mdb_env_info() to retrieve interesting env params
2012-10-16 16:22:21 -07:00
Howard Chu
7f0771a3ed
Merge mdb_stata into mdb_stat
2012-10-16 15:37:29 -07:00
Howard Chu
65d40eb5d2
Make sure increases of mapsize are persisted
2012-10-16 14:53:25 -07:00
Hallvard Furuseth
94965307c8
ITS#7377 Errorcheck Windows calls and thread keys.
2012-10-15 17:04:48 +02:00
Hallvard Furuseth
88b7bb4639
Explicitly unlock the MDB lockfile on Windows.
2012-10-15 17:04:43 +02:00
Hallvard Furuseth
e9d87866c4
mdb_env_open(): Keep mdb_env_set_flags() flags.
2012-10-15 17:04:11 +02:00
Hallvard Furuseth
092f9a5c66
More for mdb_env_copy().
...
Fix #define _GNU_SOURCE = 1 to match any command line -D_GNU_SOURCE.
.gitignore += mdb_copy.
2012-10-15 17:03:46 +02:00
Hallvard Furuseth
462d9dfd10
Fix last commit.
...
Add flag MDB_ENV_ACTIVE instead of using the state of me_lfd.
Require MDB_RDONLY for MDB_ROFS. Swap reader/writer mutex lock.
2012-10-15 17:03:33 +02:00
Howard Chu
e40713b631
Support read access on read-only media
2012-10-13 04:05:00 -07:00
Howard Chu
f037dd2d19
Silence warning in prev commit
2012-10-11 16:47:56 -07:00
Howard Chu
ebb6859ea5
Add mdb_copy for backing up a DB environment
2012-10-11 12:24:01 -07:00
Hallvard Furuseth
756ce8e10c
Tweak MDB restrictions
2012-10-03 21:13:21 +02:00
Hallvard Furuseth
a3f33dd20e
Fix mdb_open() off-by-one error in maxdbs check
2012-10-03 18:08:56 +02:00
Hallvard Furuseth
38fb8e6eb1
ITS#7377 Wrap fcntl F_SETLK in EINTR loop too.
...
This can happen even on local filesystems.
2012-10-03 18:06:29 +02:00
Hallvard Furuseth
ab3fea51dc
ITS#7377 Catch ftruncate() error
2012-10-03 18:06:29 +02:00
Hallvard Furuseth
2b960613e0
ITS#7377 Document caveats/troubeshooting.
2012-10-03 18:04:07 +02:00
Howard Chu
0fc0ccdc0c
Merge remote-tracking branch 'origin/mdb.master'
2012-09-30 10:03:21 -07:00
Howard Chu
7333b6bdc9
Fix prev commit
...
It only worked if the freelist was already non-empty
2012-09-30 10:01:57 -07:00
Howard Chu
b0ad9e76c7
Merge remote-tracking branch 'origin/mdb.master'
2012-09-30 07:50:56 -07:00
Howard Chu
cd228b4722
Fix mdb_drop
...
if it was the only operation in a txn, it would be ignored.
2012-09-30 07:49:30 -07:00
Howard Chu
a1c2dc66db
Merge remote-tracking branch 'origin/mdb.master'
2012-09-27 05:07:24 -07:00
Howard Chu
0c4c6fe72a
ITS#7385, check further for bad splits
...
More for 48ef27b6f5
Our definition of "large" data item needs to be smaller to
handle more cases where a bad split is possible
2012-09-27 05:06:23 -07:00
Howard Chu
2a68553ec1
Merge remote-tracking branch 'origin/mdb.master'
2012-09-19 06:16:36 -07:00
Howard Chu
ba6c3281a1
Add MDB_GET_CURRENT
...
return whatever the cursor is currently pointing at
2012-09-19 06:15:09 -07:00
Howard Chu
c264d70fbe
Merge remote-tracking branch 'origin/mdb.master'
2012-09-18 12:37:59 -07:00
Howard Chu
d13ca0de4f
ITS#7394 ignore WRITEMAP if RDONLY
2012-09-18 12:36:54 -07:00
Howard Chu
b8e48e95fb
Merge remote-tracking branch 'origin/mdb.master'
2012-09-17 08:21:20 -07:00
Howard Chu
0a359fb629
More for 48ef27b6f5
...
page_split with newindex > split_indx
2012-09-17 07:02:41 -07:00
Howard Chu
5ef56b437e
More for ab04c50a32
...
Use explicit MDB_RDONLY flag
2012-09-17 07:01:28 -07:00
Hallvard Furuseth
c67ea9c060
ITS#7377 Catch MDB user errors.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
c0f3d9b9a8
ITS#7377 Catch MDB setup errors and clean up.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
fe1b3794de
ITS#7364 Limit mdb lock upgrade before sem_unlink.
...
Do not try shared lock when closing or after error. Track file lock
state to decide. Change meaning of *excl to reflect file lock state.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
c760e536ec
ITS#7364 Always sem_unlink() in mdb_env_open().
...
Drop the sem_unlink() error checks, which could prevent the 2nd
unlink. Instead use O_EXCL in sem_open().
This makes "open+close the database" the API for trying to clean
away the old semaphores, if they were left behind by a previous run.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
31be24896b
ITS#7377 Wrap sem_wait & file locks in EINTR loops
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
a35f9b2a53
Remove mdb data races. Use (txnid_t)-1 as "no ID".
...
Avoid race between numreaders++ and reading numreaders at cleanup. Make
the un-mutexed reset of reader table entry, atomic: Reset mr_pid only.
Instead check mr_pid != 0 in mdb_page_alloc()'s scan for readers.
(txnid_t)-1 as "no ID"-mark avoids a check for mr_txnid != 0.
The scan can stop when seeing an old reader.
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
38cc1e96b4
Save pid in MDB_env instead of repeating getpid().
...
An open MDB environment does not survive or catch fork(),
so repeating getpid() was pointless.
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
20a216fcc9
MDB_WRITEMAP needs no DSYNC descriptor (me_mfd)
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
588a84a5ae
ITS#7363 Preprocessor namespace cleanup.
...
Rename USE_POSIX_SEM to MDB_USE_POSIX_SEM.
Separate MDB_FDATASYNC from MDB_USE_POSIX_SEM.
2012-09-17 15:42:14 +02:00
Howard Chu
8bb10add24
More for ab04c50a32
...
Fix typos, error code ranges
2012-09-17 06:35:03 -07:00
Howard Chu
acbff5b1ea
Add mdb_cursor_renew()
...
Allow cursors on read-only txns to be reused with later txns.
2012-09-17 04:41:13 -07:00
Howard Chu
076b2b36a9
Shared lib should depend on pthread
2012-09-17 03:48:54 -07:00
Howard Chu
c542442c9f
Add MDB_SET_KEY cursor op
...
Overwrites the passed in key with the DB's key
2012-09-17 02:17:25 -07:00
Howard Chu
ad79308d5a
Merge remote-tracking branch 'origin/mdb.master'
2012-09-14 06:52:37 -07:00
Howard Chu
ab04c50a32
ITS#7383 More explicit error codes
2012-09-14 06:51:31 -07:00
Howard Chu
c2bd7e630d
Merge remote-tracking branch 'origin/mdb.master'
2012-09-12 10:47:36 -07:00
Howard Chu
48ef27b6f5
ITS#7385 fix mdb_page_split (again)
...
More for d793594173 ITS#7229
2012-09-12 10:45:51 -07:00
Howard Chu
c56ede7781
Merge remote-tracking branch 'origin/mdb.master'
2012-09-07 13:42:52 -07:00
Howard Chu
de77882898
Update comments, bump version
...
Note read-write vs read-only mmap tradeoffs.
2012-09-07 13:40:07 -07:00
Howard Chu
2e677bcb99
msync should default to fully synchronous
2012-09-06 11:17:25 -07:00
Howard Chu
1c733bdc4e
Add msync support for WRITEMAP option
2012-09-05 08:40:17 -07:00
Howard Chu
d8a89464cd
Add MDB_WRITEMAP to use a writable mmap
2012-09-05 08:39:46 -07:00
Howard Chu
14a08f877f
More for 57b5fbea49
...
Fix abort of child txn
2012-09-04 06:02:26 -07:00
Hallvard Furuseth
4608cd9552
libmdb: Fix P_INVALID when pgno_t != unsigned long
2012-08-29 06:43:35 +02:00
Hallvard Furuseth
3e3c785034
libmdb: Check sem_open() against SEM_FAILED.
2012-08-29 06:42:52 +02:00
Howard Chu
d7dd1bdb82
Merge remote-tracking branch 'origin/mdb.master'
2012-08-27 14:45:58 -07:00
Howard Chu
4bc18a5dd3
In mdb_audit, change assert to fprintf
2012-08-27 14:45:16 -07:00
Howard Chu
85ae5011e7
Fix mdb_audit()
...
due to a0993354a6
2012-08-26 11:05:45 -07:00
Howard Chu
f980c64cb6
Merge remote-tracking branch 'origin/mdb.master'
2012-08-24 05:34:29 -07:00
Ondrej Kuznik
bd92b570a8
ITS#7369 mdb_stat: cleanup in case something went wrong.
2012-08-24 05:33:46 -07:00
Howard Chu
a2d1b42e39
ITS#7369 abort txn before exiting
2012-08-24 05:23:55 -07:00
Howard Chu
67dd10ed2c
Merge remote-tracking branch 'origin/mdb.master'
2012-08-22 23:02:48 -07:00
Howard Chu
916995236e
ITS#7364 also close the mutexes as needed
...
Otherwise a process that opens and closes an env more than once
will leak mutex handles. (WIN32/BSD)
2012-08-22 23:01:19 -07:00
Chris Mikkelson
46cf442700
ITS#7364 Remove POSIX semaphores when the last user closes the mdb environment.
2012-08-22 22:55:01 -07:00
Rich Megginson
a0e48e7246
ITS#7360 accept nss certname in the form of tokenname:certnickname
...
There are cases where the user may want to force the use of a particular
PKCS11 device to use for a given certificate. Allow the user to do this
with MozNSS by specifying the cert as "tokenname:certnickname" where
token name is the name of a token/slot in a PKCS11 device and certnickname
is the nickname of a certificate on that device.
2012-08-22 14:21:23 -07:00
Howard Chu
1ebf95c31b
ITS#7359 cleanup for loop
2012-08-22 14:13:10 -07:00
Jan Vcelak
6833b8717a
ITS#7359 MozNSS: fix whitespaces in all my changes
...
To be compliant with OpenLDAP coding standards.
2012-08-22 14:12:01 -07:00
Howard Chu
d377f353b7
Merge remote-tracking branch 'origin/mdb.master'
2012-08-22 14:09:56 -07:00
Chris Mikkelson
9f983b7999
ITS#7363 Use posix semaphores on apple and bsd systems.
2012-08-22 14:09:08 -07:00
Jan Vcelak
46dc6c424b
ITS#7359 MozNSS: prefer unlocked slot when getting private key
2012-08-21 13:32:34 -07:00
Howard Chu
68c3cf9795
ITS#7358 fix ITS#7270 patch
...
commit 8bb9e88d5f breaks Visual C
(as well as our own coding rules)
2012-08-21 13:22:19 -07:00
Howard Chu
a787eb641f
Merge commit 'd53644f6'
2012-08-21 12:18:10 -07:00
Howard Chu
f114fec545
Loop thru all DBs and show their stats
...
This is quick and dirty, should be integrated into mdb_stat.
2012-08-16 10:25:40 -07:00
Howard Chu
d53644f682
Minor cleanup
2012-08-02 16:03:10 -07:00
Howard Chu
d1120fbccc
Write optimization: avoid copying unused portions of pages.
2012-07-31 16:03:48 -07:00
Jan Vcelak
f425a07d02
ITS#7331 MozNSS: ignore untrusted issuer error when verifying server cert
...
Untrusted issuer error can appear with self-signed PEM certificates.
2012-07-26 10:16:39 -07:00
Howard Chu
8fe328dd51
Merge remote-tracking branch 'origin/mdb.master'
2012-07-26 08:43:57 -07:00
Howard Chu
234cd9dfb5
Fix txn_commit error check
2012-07-26 08:42:41 -07:00
Howard Chu
0e3fa1ee14
Merge remote-tracking branch 'origin/mdb.master'
2012-07-26 07:25:07 -07:00
Howard Chu
23219ed32a
Fix 205bb17793
...
Ignore current cursor pos if it's out of bounds.
2012-07-26 07:22:52 -07:00
Howard Chu
d1a7fa267b
Update sub-DBs before updating free list
2012-07-26 06:25:31 -07:00
Howard Chu
4317c7ce54
Merge remote-tracking branch 'origin/mdb.master'
2012-07-25 12:32:28 -07:00
Howard Chu
d3990eb2f8
Append mode should also detect keys that are too small
2012-07-25 12:31:08 -07:00
Howard Chu
cf74dfbb2d
Merge remote-tracking branch 'origin/mdb.master'
2012-07-24 10:18:40 -07:00
Howard Chu
5da67968af
Fix root split check in mdb_page_split
2012-07-24 08:50:42 -07:00
Mat Booth
e6d190c7de
ITS#7332 Changes required to build with Microsoft Visual Studio
2012-07-23 08:29:39 -07:00
Howard Chu
205bb17793
Skip unneeded calls to mdb_page_get in mdb_page_search
2012-07-23 04:23:49 -07:00
Howard Chu
832f7de6ae
Merge remote-tracking branch 'origin/mdb.master'
2012-07-22 17:58:39 -07:00
Howard Chu
ccc4d23e74
Leave extra space when creating a fake page
...
Minimizes the number of memcpy's if additional dups are stored.
2012-07-22 17:45:50 -07:00
Howard Chu
05ec98d119
Append mode still needs to detect duplicates
2012-07-22 17:45:50 -07:00
Emily Backes
c453a236fc
Update name information
2012-07-22 07:08:35 -07:00
Howard Chu
2b1b64f021
Merge remote-tracking branch 'origin/mdb.master'
2012-07-21 06:21:36 -07:00
Howard Chu
14fb1f59c7
Append tweaks, page_split fixes
...
Append mode now does no key comparisons, input must be in sorted order.
page_split was not updating cursor parents correctly.
2012-07-21 06:19:09 -07:00
Howard Chu
accd19edbc
Merge remote-tracking branch 'origin/mdb.master'
2012-07-18 14:19:19 -07:00
Howard Chu
7e9a6134fd
Make sure cursor's DB is init'd if STALE.
2012-07-17 04:04:52 -07:00
Howard Chu
a0993354a6
Don't use env-private copy of DB root nodes.
...
Just lookup the DB roots as needed. When many DBs are in use,
most of the copies won't be referenced in a given txn, and
there's a bad race condition in the copy routine.
2012-07-13 15:48:26 -07:00
Howard Chu
0ea56294f1
Fix darwin sem_open() names
...
Must begin with '/'
2012-07-13 14:14:36 -07:00
Howard Chu
1a9775dc5a
Fix ID -> MDB_ID due to 20baad4a20
2012-07-13 14:14:36 -07:00
Howard Chu
248fd1c7b8
Windows thread callback support
2012-07-13 14:14:36 -07:00
Howard Chu
43d47c46a7
ITS#6262 fix gettime() regression
...
Add a mutex in ldap_pvt_gettime(), delete the mutex comment
since it's no longer relevant (and was ignored anyway). This
could only ever affect multi-processor machines.
2012-07-11 16:53:33 -07:00
Howard Chu
113538806f
Merge remote-tracking branch 'origin/mdb.master'
2012-07-09 08:44:12 -07:00
Howard Chu
e562f53e10
Drop me_toggle, unused
2012-07-08 18:43:45 -07:00
Howard Chu
179c44e7da
Revert "libmdb: Do not use the MDB_txbody.mtb_txnid field."
...
This reverts commit 4a0b30499c .
2012-07-08 18:18:12 -07:00
Howard Chu
c6b5abbfd2
Merge remote-tracking branch 'origin/mdb.master'
2012-07-06 18:03:06 -07:00
Howard Chu
433105f09b
Fix: avoid direct reference to meta pages
...
Relevant info should be copied during txn_begin only.
2012-07-06 17:38:03 -07:00
Howard Chu
df7ddb6bf4
Add MDB_NOMETASYNC env option.
...
Just a trial. This may not make sense if we decide to split the
meta pages into their own separate file, to allow meta traffic to
reside on a separate spindle.
2012-07-05 18:11:18 -07:00
Howard Chu
38560c2517
Tweak b802bcf704
...
Clarify prev commit, fix Doxygen comments broken by earlier changes
2012-07-05 17:43:29 -07:00
Howard Chu
b802bcf704
Partial revert of 13c663f666
...
Don't re-use free pages so soon; that leaves us vulnerable to
DB corruption if data syncs successfully but meta doesn't.
2012-07-05 16:52:13 -07:00
Jan Vcelak
2db5195650
ITS#7316 MozNSS: do not retry when reading the pin from file
...
Avoid infinite loop if the pin in the password file is wrong.
2012-06-26 06:47:48 -07:00
Jan Vcelak
a171237999
ITS#7315 MozNSS: do not authenticate to a slot manually
...
We cannot rely on tc_certificate->slot value, the library will choose
the correct slot itself when needed. Just provide correct pin argument.
2012-06-26 06:46:29 -07:00
Jan Vcelak
3531c344e1
ITS#7314 MozNSS: lock whole init and clenaup process
2012-06-26 06:44:46 -07:00
Jan Vcelak
d07779e97b
ITS#7313 MozNSS: store certificate object instead of nickname in in ctx
...
PEM certificates should not be referenced by nicknames, because the
nicknames are derived from basename of the cerificate file and in
general are not easy-predictable.
The code of Mozilla NSS backend depends on some aspects of PEM module
and tries to guess the nicknames correctly. In some cases the guessing
is wrong.
2012-06-26 06:43:11 -07:00
Jan Vcelak
87132b820d
ITS#7312 MozNSS: context specific token description for certdb
2012-06-26 06:41:05 -07:00
Jan Vcelak
221531b31a
ITS#7241 unbind: free socket prior to destroying TLS context
2012-06-25 12:53:29 -07:00
Howard Chu
450d224291
ITS#7293 make ldapava_free static
2012-06-23 05:41:39 -07:00
Howard Chu
e2b5aaf5dd
ITS#7290 fix ldap_int_initialize() to set debug level
2012-06-07 05:15:04 -07:00
Jan Vcelak
00d0e16272
ITS#7291 MozNSS: read pin from file file can cause infinite loop
...
The buffer allocated for reading password file has to be initialized
with zeros, or we need to append zero at the end of the file. Otherwise
we might read unitialized memory and consider it to be a password.
2012-06-07 05:05:08 -07:00
Tim Strobell (Contractor)
4b6bd2c600
ITS#7289 MozNSS: cipher suite selection by name may be ignored
2012-06-07 05:03:15 -07:00
Jan Vcelak
dc3842fca3
ITS#7287 MozNSS: do not overwrite error in tlsm_verify_cert
2012-06-05 03:43:24 -07:00
Tim Strobell (Contractor)
2c2bb2e7ae
ITS#7285 Mozilla NSS: default cipher suite always selected
2012-06-05 03:43:15 -07:00
Quanah Gibson-Mount
3f46f2e0bc
Merge remote branch 'origin/mdb.master'
2012-06-04 19:41:58 -07:00
Howard Chu
a334257800
Tweak prev commit, use first unused slot
2012-06-02 05:26:31 -07:00
Howard Chu
4cabb24b83
Fix mdb_open, re-use closed dbi slots
2012-06-02 05:24:47 -07:00
Jan Vcelak
df1d118de8
ITS#7276 MozNSS: allow CA certdb together with PEM CA bundle file
...
Prior to this patch, if TLS_CACERTDIR was set to Mozilla NSS certificate
database and TLS_CACERT was set to a PEM bundle file with CA
certificates, the PEM file content was not loaded.
With this patch and the same settings, OpenLDAP can verify certificates
which are signed by CAs stored both in certdb and PEM bundle file.
2012-05-30 06:18:50 -07:00
Frederik Deweerdt
8bb9e88d5f
ITS#7270 Protect accesses to ldap_int_hostname with a mutex.
...
Not protecting the accesses to ldap_int_hostname could lead to a double
free.
2012-05-30 05:49:53 -07:00
Howard Chu
22bf5188a9
Merge remote-tracking branch 'origin/mdb.master'
2012-05-09 12:13:05 -07:00
Howard Chu
eeec509150
ITS#7266 fix rebalance for LEAF2 pages
2012-05-09 11:24:25 -07:00
Howard Chu
ff1839ebe6
Merge remote-tracking branch 'origin/mdb.master'
2012-05-08 22:19:05 -07:00
Howard Chu
a540597dd6
More freelist tweaks, avoid referencing freed page
2012-05-08 22:17:17 -07:00
Howard Chu
326d07d8c6
Merge remote-tracking branch 'origin/mdb.master'
2012-05-05 19:42:30 -07:00
Howard Chu
fadf75a9cb
Further clarification of mdb_open()
2012-05-05 19:41:45 -07:00
Howard Chu
4d0d12db27
Merge remote-tracking branch 'origin/mdb.master'
2012-04-18 16:05:16 -07:00
Howard Chu
fbf9c23304
ITS#7251 fix Apple/Windows shared mutex naming
2012-04-18 15:59:54 -07:00
Hallvard Furuseth
20baad4a20
libmdb: midl.h namespace cleanup.
...
Prefix ID, NOID, ID2, IDL, ID2L with 'MDB_'.
Also drop bdb from file description.
2012-04-12 08:24:36 +02:00
Hallvard Furuseth
0a4aa88927
libmdb: Simplify pick_meta() from read_meta().
...
Put one call in #if MDB_DEBUG. Move DPRINTF(Using meta page #) there.
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
dce5bb2fee
libmdb: Simplify mdb_default_cmp. No real change.
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
729a8a2819
libmdb: signed meets unsigned warning cleanup
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
99fa22c164
libmdb: MDB_FDATASYNC code cleanup.
...
Define MDB_FDATASYNC() instead of redefining fdatasync().
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
592b3f8727
libmdb: Add C++ 'extern "C" {}' to *.h
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
8e1ebbb4a8
libmdb: Don't open datafile twice when not needed.
...
If the database is opened with MDB_RDONLY or MDB_NOSYNC,
instead use the same file descriptor for me_mfd and me_fd.
Also factor out Windows/Unix error handling after open.
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
6d0b424dbe
libmdb: Set close-on-exec flag on lockfile
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
4a0b30499c
libmdb: Do not use the MDB_txbody.mtb_txnid field.
...
Get txn->mt_txnid from the meta page instead. Otherwise it
and txn->mt_toggle could become inconsistent, since read-only
txns fetched both from MDB_txbody without mutex proteciton.
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
d1738c3e6b
Fix MDB_DEBUG in last ITS#7299 commit.
...
Make DPRINTF usable in if-else. Silence signed vs unsigned warning.
2012-04-12 07:34:13 +02:00
Howard Chu
d806b970b1
Merge remote branch 'origin/mdb.master'
2012-04-10 15:42:43 -07:00
Howard Chu
d793594173
ITS#7229 more mdb_page_split tweaks
...
Also add mdb_debug/mdb_debug_start to toggle debug output at runtime
2012-04-10 14:05:05 -07:00
Howard Chu
a66f9e9292
ITS#7210 fix check for freelist changes
...
Was being fooled before because the newly malloc'd block had
the same address as the previously freed block.
2012-04-09 19:24:47 -07:00
Howard Chu
321b0fa93e
Merge remote branch 'origin/mdb.master'
2012-04-09 05:19:41 -07:00
Howard Chu
191d78948b
ITS#7238 doc clarification
2012-04-09 05:01:37 -07:00
Howard Chu
ae027b5214
ITS#7229 additional tweaks
...
Should probably compare nsize to pg_size/4 instead...
2012-04-09 04:45:32 -07:00
Howard Chu
de0cb27d70
ITS#7230 check and strip 0 length IDLs from freelist
2012-04-09 04:44:08 -07:00
Howard Chu
d2da9c1a7d
Merge remote branch 'origin/mdb.master'
2012-04-07 04:59:30 -07:00
Howard Chu
7ba25c488a
ITS#7229 more mdb_page_split fixes
2012-04-07 01:27:38 -07:00
Howard Chu
04c44f016c
Merge remote branch 'origin/mdb.master'
2012-04-04 05:52:45 -07:00
Howard Chu
84acc0e803
ITS#7219 fixup keysize in previous commit
2012-04-04 05:44:53 -07:00
Howard Chu
fc1396fa2e
Merge remote branch 'origin/mdb.master'
2012-04-04 01:39:27 -07:00
Howard Chu
0f10814494
ITS#7219 fix for odd-aligned keys in mdb_update_key()
2012-04-03 12:24:27 -07:00
Howard Chu
487d3966ee
Merge remote branch 'origin/mdb.master'
2012-03-30 06:37:12 -07:00
Howard Chu
91bab157f6
ITS#7210 fix leak of overflow pages in freelist
2012-03-30 06:36:02 -07:00
Howard Chu
7ff8baf1d3
Merge remote branch 'origin/mdb.master'
2012-03-28 10:45:06 -07:00
Howard Chu
f53beeabee
Partial revert of prev commit
...
Sub-DBs were correct before
2012-03-28 10:44:18 -07:00
Howard Chu
55060f6b1f
Merge remote branch 'origin/mdb.master'
2012-03-28 10:35:56 -07:00
Howard Chu
ac0b18911b
Fix entry counts in cursor_put
...
when replacing an existing item
2012-03-28 10:34:35 -07:00
Howard Chu
b8bbe985b8
Merge remote branch 'origin/mdb.master'
2012-03-28 09:34:13 -07:00
Howard Chu
0952cfdf84
Fix uninit'd xcursor index
2012-03-28 09:33:06 -07:00
Howard Chu
5c16c8842b
Add mfree utility to show the freelist
2012-03-28 09:20:18 -07:00
Howard Chu
04f488e7a0
ITS#7210 additional freelist fixes
...
Also allow read access to freelist in mdb_cursor_open
2012-03-28 09:18:00 -07:00
Howard Chu
b92af0760b
ITS#7210 partial fix
...
Allow pages from free list to be used when growing the free list.
(Yes, this is self-referential...)
2012-03-27 06:44:28 -07:00
Howard Chu
5fcc9285fb
Merge remote branch 'origin/mdb.master'
2012-03-26 06:59:41 -07:00
Howard Chu
8a4981d8aa
ITS#7213 fix page_split with MDB_APPEND
...
don't skip the cursor adjust checks
2012-03-26 06:58:16 -07:00
Howard Chu
dcf94e25f5
ITS#7207 check for ld->ld_defconn
2012-03-26 03:35:31 -07:00
Howard Chu
25e8e82c5f
Update overflow page count when freeing overflow page
2012-03-20 17:14:59 -07:00
Howard Chu
9b21d585dc
Merge remote branch 'origin/mdb.master'
2012-03-09 12:48:57 -08:00
Hallvard Furuseth
c7da506dd2
Fix MDB_txninfo.mt2 padding on Windows/Apple
2012-03-09 19:30:34 +01:00
Hallvard Furuseth
c7fe1f466e
Tweak mdb comment with conflicting spec of 'ID'
2012-03-09 19:25:44 +01:00
Hallvard Furuseth
5c182fbedf
Fix valgrind call after malloc failure in mdb.
...
Also line up the code logic a bit.
2012-03-09 19:22:31 +01:00
Hallvard Furuseth
d3b9939e71
Clean up MAP_FAILED handling in mdb.
...
Delay (MDB_txninfo*) cast to after comparing mmap() with MAP_FAILED.
Otherwise, if MAP_FAILED = (void*)-1 but MDB_txninfo requires stricter
alignment, the compiler could assume the result is never MAP_FAILED.
Also store NULL in env->(me_map, me_txns) after mmap failure.
2012-03-09 19:06:04 +01:00
Hallvard Furuseth
2baadabdff
ITS#7191 Align dirty MDB pages on the stack
2012-03-09 18:45:39 +01:00
Howard Chu
cfa8dd6884
Merge remote branch 'origin/mdb.master'
2012-03-08 21:39:01 -08:00
Howard Chu
15f3e650da
ITS#7191 more alignment tweaks
...
Revealed when gcc optimization is enabled
2012-03-08 21:28:24 -08:00
Howard Chu
bb921063e0
ITS#7194 fix IPv6 URL detection
2012-03-08 19:35:44 -08:00
Howard Chu
3743a5a68e
Merge remote branch 'origin/mdb.master'
2012-03-06 22:56:29 -08:00
Howard Chu
2ccf0d58b2
Fix typo in 7bc62c5128
2012-03-06 22:55:53 -08:00
Howard Chu
5ce2a2aee6
Merge remote branch 'origin/mdb.master'
2012-03-06 22:17:19 -08:00
Howard Chu
7bc62c5128
ITS#7190 fix merging of branch pages in deletes
2012-03-06 22:12:21 -08:00
Hallvard Furuseth
d50d57ed63
Fix libmdb comments
2012-03-03 09:58:05 +01:00
Hallvard Furuseth
e1b88d93ac
Remove development file libmdb/make.sh
2012-03-03 09:52:33 +01:00
Hallvard Furuseth
d8b4598085
ITS#7191 Fix mdb_xcursor_init1() unaligned access
2012-03-03 09:49:20 +01:00
Howard Chu
9547dd7a0d
Merge remote branch 'origin/mdb.master'
2012-03-02 17:28:51 -08:00
Howard Chu
1b07b48c1a
ITS#7196 use IOV_MAX if it's defined and small
2012-03-02 17:26:49 -08:00
Howard Chu
de7f6d38fa
ITS#7115 add missing pool_idle/unidle stubs
2012-02-27 20:42:29 -08:00
Howard Chu
aa33f4b220
Merge remote branch 'origin/mdb.master'
2012-02-21 11:52:44 -08:00
Howard Chu
b23bb7a0b1
ITS#7160 get BYTE_ORDER def for HPUX (and Solaris)
2012-02-21 11:52:01 -08:00
Howard Chu
33f6bc4fe6
ITS#7167 only poll sockets for write as needed
2012-02-20 14:51:30 -08:00
Howard Chu
92ed65d298
ITS#7174 lutil_str2bin: can't modify input strings
2012-02-19 18:10:16 -08:00
Hallvard Furuseth
ffbad797c8
Fix typo in ldap_int_client_controls() comment
2012-02-07 16:11:43 +01:00
Jan Vcelak
4e9926ca97
ITS#7136 MozNSS: store TLS params until the deferred initialization is finished
...
Deferred TLS initialization is used with Mozilla NSS. The real
initialization takes place when the TLS context is needed for the first
time. If the initialization parameters were freed immediately after
tlsm_ctx_init was called, they were not available at the time of
deferred initialization which caused segmentation fault.
With this patch, initialization parameters are copied and stored until
the deferred initialization is finished. The parameters are freed
afterwards.
Red Hat Bugzilla: #783431
2012-01-25 21:24:28 -08:00
Jan Vcelak
1107103dd7
ITS#7135 MozNSS, PEM: fix segfault when TLS certificate key is not set
...
Red Hat Bugzilla: #772890
2012-01-25 21:22:47 -08:00
Howard Chu
ce2c041671
Cleanup gssapi_flags -> ldo_gssapi_flags
2012-01-24 15:43:39 -08:00
Howard Chu
7ff18967d7
More for prev commit ( 270ef33acf)
2012-01-24 15:43:14 -08:00
Howard Chu
270ef33acf
ITS#7118, #7133 tentative fix
...
Move mutexes to end of structs, so libldap can ignore them
2012-01-24 13:32:52 -08:00
Hallvard Furuseth
1a931a86ee
Silence 'assign away const' warning
2012-01-24 01:45:51 +01:00
Hallvard Furuseth
999ff398d6
thr_debug: tweak debug_already_initialized().
...
With gcc, declare debug_already_initialized() as 'noinline' so
its deliberate uninitialized access stays inside the function and
valgrind can ignore it there.
2012-01-24 01:45:51 +01:00
Hallvard Furuseth
23f3657807
ITS#7115: Tighten ldap_pvt_thread_pool_unidle().
...
Only wait out already-started pauses, not pause reqests.
ltp_pause now says whether a pause is requested or has started.
This reduces the chance that slapd:send_ldap_ber() will start
a pause in the middle of an operation.
2012-01-24 00:47:48 +01:00
Howard Chu
a8f6deee03
Merge remote branch 'origin/mdb.master'
2012-01-21 17:32:18 -08:00
Howard Chu
953796759e
Fix typo in e8e57be421
2012-01-21 17:31:23 -08:00
Howard Chu
7d13ef7e42
Merge remote branch 'origin/mdb.master'
2012-01-21 08:29:03 -08:00
Howard Chu
e8e57be421
Add valgrind support with -DUSE_VALGRIND
...
Track allocations and invalid accesses to freed tmp pages.
2012-01-21 08:22:59 -08:00
Howard Chu
3d6b924c25
txn_commit must abort txn before returning errors
...
Fix for failure when committing a txn that is a child of
some parent txn.
2012-01-21 08:20:43 -08:00
Howard Chu
1c8de1883c
ITS#7121 fix page splits when newindx == 0
2012-01-21 08:18:37 -08:00
Howard Chu
b9cbcb0588
ITS#7126 fix cursor tracking code
...
Don't compare cursors that aren't deep enough to match the
current cursor.
2012-01-21 08:12:56 -08:00
Howard Chu
713bf092b6
Happy New Year!
2012-01-21 08:09:16 -08:00
Howard Chu
a17f8e7326
ITS#7121 fix page splits when data+key size is too large
2012-01-21 08:09:16 -08:00
Kurt Zeilenga
81afbb2fca
Happy New Year!
2012-01-21 08:07:21 -08:00
Hallvard Furuseth
fa7575666f
ITS#7115 Re-fix tpool.c (idle/unidle)
2012-01-13 15:38:12 +01:00
Howard Chu
e86da2fe3f
ITS#7121 fix page splits when data+key size is too large
2012-01-04 15:27:15 -08:00
Kurt Zeilenga
2bbf9804b9
Happy New Year!
2012-01-01 07:10:53 -08:00
Howard Chu
68ee165fb5
ITS#7115 blocked writers should not interfere with pool pause
2011-12-21 01:24:23 -08:00
Howard Chu
fadb48a723
Add $(SOLIBS) macro for shared lib dependencies
2011-11-21 16:30:58 -08:00
Howard Chu
95a72ac82a
Add $(SOLIBS) macro for shared lib dependencies
2011-11-18 15:43:55 -08:00
Howard Chu
ea026cb2cf
Merge remote branch 'origin/mdb.master'
2011-11-15 11:23:48 -08:00
Howard Chu
dd9c56f0fb
More s/DEBUG/MDB_DEBUG/
2011-11-15 11:23:00 -08:00
Howard Chu
40477fae4e
Merge remote branch 'origin/mdb.master'
2011-11-14 16:22:51 -08:00
Howard Chu
575691ca8a
Alignment fixes for debug msgs
2011-11-14 16:21:59 -08:00
Howard Chu
51c1ba6818
s/DEBUG/MDB_DEBUG/
2011-11-14 14:40:43 -08:00
Howard Chu
122fa3a895
Merge remote branch 'origin/mdb.master'
2011-11-11 12:50:12 -08:00
Howard Chu
29de655bc4
Add MDB_FDATASYNC to allow override to fsync if needed.
2011-11-11 12:49:11 -08:00
Howard Chu
ca15238dfb
Merge remote branch 'origin/mdb.master'
2011-11-11 11:00:14 -08:00
Howard Chu
291c0ce2db
Use <inttypes.h> instead of <stdint.h>
2011-11-11 10:59:27 -08:00
Howard Chu
334099c0db
Merge remote branch 'origin/mdb.master'
2011-11-10 12:43:41 -08:00
Howard Chu
8763c41e30
Fix size check
2011-11-10 12:41:34 -08:00
Howard Chu
52a0d00031
Merge remote branch 'origin/mdb.master'
2011-11-09 15:36:00 -08:00
Howard Chu
04b522cc72
More Solaris warning cleanup
2011-11-09 15:32:37 -08:00
Howard Chu
b905811d3c
Merge remote branch 'origin/mdb.master'
2011-11-09 01:02:38 -08:00
Howard Chu
68143e4532
More pgno alignment tweaks
2011-11-09 00:36:50 -08:00
Howard Chu
056910df03
Merge remote branch 'origin/mdb.master'
2011-11-08 20:06:23 -08:00
Howard Chu
690792c170
Add dummy DKEY define
2011-11-08 20:05:29 -08:00
Howard Chu
dac408369b
Merge remote branch 'origin/mdb.master'
2011-11-08 19:05:39 -08:00
Howard Chu
cc7a89cd67
Add Solaris byte-order detection
2011-11-08 19:04:39 -08:00
Howard Chu
f0c9d77326
Fix mdb_drop return
2011-11-08 16:45:45 -08:00
Howard Chu
6018fe9671
Merge remote branch 'origin/mdb.master'
2011-10-14 22:05:37 -07:00
Howard Chu
a103a64434
Android/ARM portability
...
2-byte alignment isn't good enough for subpages
2011-10-14 22:03:46 -07:00
Howard Chu
277a8edd2e
Android defines wctomb but doesn't provide it
2011-10-12 19:18:05 -07:00
Howard Chu
fb5ba5f09c
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-10-06 19:15:43 -07:00
Howard Chu
331bf92df5
Fix page_split with MDB_RESERVE
2011-10-06 18:53:07 -07:00
Howard Chu
19e4df476d
Fix subcursor initialization
2011-10-06 16:12:52 -07:00
Howard Chu
1adc0b9b1c
Merge remote branch 'origin/mdb.master'
2011-10-04 02:22:01 -07:00
Howard Chu
934a19553c
Don't use Append mode when splits are caused by sub-page inserts
...
Sub-pages need room to grow...
2011-10-03 18:02:17 -07:00
Howard Chu
ea0d07ffa3
Fix freelist bug on page split
...
NULL out env->pghead before writing it, so that its pages can't be used
to satisfy the write.
2011-10-03 12:40:53 -07:00
Howard Chu
7cd16d7b9f
Merge remote branch 'origin/mdb.master'
2011-10-03 11:30:10 -07:00
Howard Chu
85bfb3c1d1
Add rudimentary MDB_MULTIPLE support for puts
...
Only for DUPFIXED DBs. Still could do better.
2011-10-03 11:28:14 -07:00
Howard Chu
02cafebb8e
Merge remote branch 'origin/mdb.master'
2011-10-02 21:28:55 -07:00
Howard Chu
fa3c2945f5
Add MDB_APPEND to avoid splitting full pages
2011-10-02 21:27:07 -07:00
Howard Chu
163514e470
Fix 6e05ca17e9
...
Missed a MDB_RESERVE case
2011-10-02 19:52:12 -07:00
Howard Chu
c2df36c86f
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-10-02 19:36:57 -07:00
Howard Chu
28b8aaeb96
Add mdb_cursor_txn() and mdb_cursor_dbi() for querying the cursor
2011-10-02 19:28:33 -07:00
Howard Chu
2dd578221b
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-10-02 11:14:53 -07:00
Howard Chu
6e05ca17e9
Add MDB_RESERVE mode
...
When putting a record, just make space for the data, don't copy it.
(Not compatible with MDB_DUPSORT, since the actual data is needed
to determine the insert location.)
2011-10-02 10:02:30 -07:00
Howard Chu
fe11433619
Tweak cursor adjustment code
...
Skip the original cursor that made the change
2011-09-30 22:15:05 -07:00
Howard Chu
8a5d0952ad
ITS#7006 fix MozNSS wildcard cert match
2011-09-30 03:27:19 -07:00
Rich Megginson
8e9af53fb6
ITS#7034 use mutex for connection handshake when using PEM nss
...
PEM nss is not thread safe when establishing the initial connection
using SSL_ForceHandshake. Create a new mutex - tlsm_pem_mutex - to
protect this function call.
The call to SSL_ConfigServerSessionIDCache() is not thread-safe - move it
to the init section and protect it with the init mutex.
2011-09-30 03:16:57 -07:00
Howard Chu
9b082bf716
ITS#7051 fix GNUtls cert dn parse
2011-09-30 00:41:13 -07:00
Howard Chu
19d1e72bbc
Make sure mdb_open actually got a sub-db record
2011-09-29 21:07:07 -07:00
Howard Chu
fa0d64242b
Doc for the MDB_NOSUBDIR env option
2011-09-22 21:46:12 -07:00
Howard Chu
7a40080dd1
Add MDB_NOSUBDIR option
...
Create the data file using exactly the given pathname, and
the lock file using a suffix on the data file name.
2011-09-22 18:05:06 -07:00
Howard Chu
54eb76cc7a
Reader table notes
2011-09-22 04:34:40 -07:00
Howard Chu
4bcaabecf5
assert cleanup
2011-09-21 17:21:48 -07:00
Howard Chu
619e671f1c
txn_abort/commit free all their cursors now.
2011-09-21 16:37:29 -07:00
Howard Chu
9bcc51ef5d
Only free malloc'd cursors
2011-09-21 16:06:52 -07:00
Howard Chu
c8c34cdd43
Merge remote branch 'origin/mdb.master'
2011-09-21 15:58:55 -07:00
Howard Chu
b9d13a29e6
Track changes to all cursors.
...
For any change to a page or node, update all other cursors pointing
at the same page (or node). Cursors are now stored in a linked list
off their owning transaction. Cursors are all closed when the transaction
ends. Cursors in parent transactions are updated when their child
transaction commits.
2011-09-21 15:55:27 -07:00
Howard Chu
c4d5e6e786
Add support for nested transactions.
2011-09-21 12:58:43 -07:00
Hallvard Furuseth
ef7f5f5e32
Cleanup ISO C compatibility for recent commits
2011-09-19 10:31:12 +02:00
Hallvard Furuseth
d9edc7d5af
Merge branch 'mdb.master'
2011-09-19 10:30:30 +02:00
Hallvard Furuseth
8fa10ae668
libmdb IDL cleanup.
...
Microoptimize IDL search.
Use RANGE_<FIRST/LAST> when IDL is known to be a range.
2011-09-19 10:27:49 +02:00
Howard Chu
02abfb91ba
Additional fix for prev commit
2011-09-18 18:26:54 -07:00
Howard Chu
76c6c8e5b7
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-09-18 18:14:05 -07:00
Howard Chu
4272e7de4f
Make sure 2 subpages fit in one real page
2011-09-18 18:13:23 -07:00
Howard Chu
001f149654
Merge remote branch 'origin/mdb.master'
2011-09-18 17:08:40 -07:00
Howard Chu
237fabda64
Fix last delete from a subpage
2011-09-18 17:07:47 -07:00
Howard Chu
0ab841598f
Fix 09006ccec7
...
Check for stale DBs was in the wrong place.
2011-09-18 16:39:18 -07:00
Howard Chu
7164c4c662
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-09-18 14:28:20 -07:00
Howard Chu
2c70d0430a
Fix mdb_drop() if not deleting the DB record
2011-09-18 14:22:27 -07:00
Howard Chu
77b1017b85
Fix typo, minor cleanup
2011-09-18 14:12:49 -07:00
Howard Chu
e76299c196
Merge remote branch 'origin/mdb.master'
2011-09-18 13:25:09 -07:00
Howard Chu
57b5fbea49
Add mdb_drop() for deleting a DB
...
Allow MIDLs to grow arbitrarily, to allow unlimited number of
pages to be freed in one txn.
2011-09-18 12:37:02 -07:00
Howard Chu
09006ccec7
API change, consistency check
...
mdb_close() takes an env, not a txn.
Also, add check for stale DB records (in case some other process
wrote to the DB last).
2011-09-18 10:48:12 -07:00
Howard Chu
a05cbba77a
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-09-17 04:02:52 -07:00
Howard Chu
b7057eb61e
New sorted-dup subpage support
...
Instead of converting directly to a subDB when the first duplicate
item is seen for a key, convert to a subpage instead. Allow the
subpage to grow up to the overflow limit, then convert to a subDB.
This saves a significant amount of space in a typical slapd index
database.
Currently we don't convert back to the smaller form if items are
later deleted. Probably could do that with some hysteresis, e.g.,
convert back from subDB to subpage when the size drops below
(overflow limit/2). Maybe later.
2011-09-17 03:33:07 -07:00
Howard Chu
e1a5177bac
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-09-15 10:37:13 -07:00
Howard Chu
0a28548131
Use FNV-1A hash to generate unique mutex names
...
For Windows and MacOSX
2011-09-15 10:36:15 -07:00
Howard Chu
d9a60db75e
Merge remote branch 'origin/mdb.master'
2011-09-14 20:34:27 -07:00
Howard Chu
2c033676ea
Doc tweak - txn flags
2011-09-14 20:33:09 -07:00
Howard Chu
5b7c983a66
MacOSX semaphore names are limited to 31 chars
...
Including the terminating NUL. Good job documenting that, guys.
2011-09-14 20:30:26 -07:00
Howard Chu
8917b774f7
Merge remote branch 'origin/mdb.master'
2011-09-14 11:46:40 -07:00
Howard Chu
0533f80364
Add MacOSX support
...
mmap() with FIXEDMAP fails, otherwise things work.
2011-09-14 11:31:27 -07:00
Howard Chu
e222506b88
Minor doc cleanup
2011-09-14 01:46:08 -07:00
Howard Chu
9e3e7cefd8
More docs
2011-09-14 01:08:01 -07:00
Howard Chu
71a665aa9d
Namespace cleanup
2011-09-13 23:36:41 -07:00
Howard Chu
550dc4aaee
Merge remote branch 'origin/mdb.master'
2011-09-13 15:24:33 -07:00
Howard Chu
56fe0d4f1a
Tweak search_node inner loop to avoid LEAF2 checks
2011-09-13 13:42:02 -07:00
Howard Chu
70c79df1df
cursor_set/search_node tweaks, use intcmp when possible
2011-09-13 13:41:40 -07:00
Howard Chu
dc83777ab9
Minor tweaks, update relfunc behavior
2011-09-12 01:15:22 -07:00
Howard Chu
0f1522418e
Merge remote branch 'origin/mdb.master'
2011-09-11 23:58:50 -07:00
Howard Chu
25529a4c36
More cursor_init cleanup
2011-09-11 23:57:17 -07:00
Howard Chu
8acb755034
One more sub-cursor fix
2011-09-11 23:13:36 -07:00
Howard Chu
92a63ff790
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap into mdb.master
2011-09-11 22:23:35 -07:00
Howard Chu
3501248548
Fix 2e3bc39fa9
...
Various mistakes when converting from previous data structures.
Add a few more debug asserts/sanity checks.
Split all "if (foo) return" constructs to separate lines to allow
easier breakpoint setting.
Add mtest6 for checking mdb_split() behavior. This needs to be
expanded to check rebalance/merge cases too.
2011-09-11 22:17:10 -07:00
Hallvard Furuseth
946b38f471
Fix mdb debug formats
2011-09-11 19:29:24 +02:00
Hallvard Furuseth
ed0fc55fd3
Restore missing LAZY_LOCKS semicolon.
...
Lost in C90 compat commit c5dad7a6d0 .
2011-09-11 19:29:24 +02:00
Hallvard Furuseth
90ed553301
mdb integer type cleanup: Use MDB_dbi consistently.
...
This changes the prototype of mdb_env_set_maxdbs().
2011-09-11 19:29:24 +02:00
Hallvard Furuseth
b56be64d2e
Drop ULONG in favor of size_t.
2011-09-10 22:49:34 +02:00
Hallvard Furuseth
b1cfff4aeb
Add mdb.c:txnid_t for readability.
...
Maybe later we'll test txnid wraparound with it defined to ushort.
2011-09-10 22:49:34 +02:00
Hallvard Furuseth
bf9d722bec
mdb type cleanup: Consistent reader count types.
...
Use unsigned int for reader counts/max limits, that's the smallest
change. Don't need uint32_t when mdb_env_set_maxreaders() takes less.
Change prototypes of mdb_env_set_maxreaders,mdb_env_get_maxreaders().
Check the mdb_env_set_maxreaders() argument.
2011-09-10 22:49:34 +02:00
Hallvard Furuseth
5f68293475
explain mdl_midl_sort() istack size
2011-09-10 22:49:34 +02:00
Hallvard Furuseth
2d1f3b7ed3
Fix memn(r)cmp of key sizes > INT_MAX. Simplify.
2011-09-10 22:49:34 +02:00
Hallvard Furuseth
69e53cf700
Check some mdb integer type assumptions
2011-09-10 22:49:34 +02:00
Hallvard Furuseth
88da18cccf
Put MDB_node.<mn_lo,mn_hi> in host byte order.
2011-09-10 22:49:20 +02:00
Hallvard Furuseth
c5dad7a6d0
C90 compatibility cleanup in mdb.
...
Fix void* pointer arithmetic in cintcmp().
Fix invalid ';'s in declarations after possibly-empty macros.
2011-09-10 15:39:02 +02:00
Hallvard Furuseth
3dc8fa491a
Cleanup mdb macros.
...
Parenthesize. Rename GetPageSize -> GET_PAGESIZE since it does not
behave like a function (it has a non-pointer output argument).
2011-09-10 10:11:55 +02:00
Hallvard Furuseth
ec2d82f79a
libmdb/.gitignore += test[45], Doxygen output
2011-09-10 10:11:55 +02:00
Howard Chu
8623c98726
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-09-09 22:29:37 -07:00
Howard Chu
acdc248f57
If put(NOOVERWRITE) exists, return existing data
2011-09-09 22:28:07 -07:00
Howard Chu
a7edb95e64
Minor typos, additional clarification
2011-09-09 03:52:12 -07:00
Howard Chu
c7d6c0fab3
Add a few NULL checks to defend against dumb API checkers.
...
Unfortunately automated checkers don't seem to read the documentation
for how APIs are expected to be used, and the C declaration syntax
isn't expressive enough to encode the documented usage.
2011-09-08 23:41:06 -07:00
Howard Chu
0c487538cf
Partial revert, fix MDB_page definition
2011-09-08 20:18:29 -07:00
Howard Chu
9ac8638d9d
More docs
2011-09-08 17:13:51 -07:00
Howard Chu
badc324647
Merge remote branch 'origin/mdb.master'
2011-09-08 14:35:17 -07:00
Howard Chu
bed3123b82
More docs
2011-09-08 14:34:21 -07:00
Pierangelo Masarati
568e3b7faa
fix uninit'ed vars (ITS#7039)
2011-09-08 23:32:58 +02:00
Howard Chu
1b69295a48
Speedup cintcmp
...
Now that we know we're always 2-byte aligned...
2011-09-08 13:10:17 -07:00
Howard Chu
cb24efd287
Merge remote branch 'origin/mdb.master'
2011-09-08 10:11:30 -07:00
Howard Chu
dac3fae3b5
Fix previous commit
2011-09-08 10:08:21 -07:00
Howard Chu
cba0d05a9d
Merge remote branch 'origin/mdb.master'
2011-09-07 23:58:29 -07:00
Howard Chu
8678fef597
Forgot to commit this
2011-09-07 23:11:14 -07:00
Howard Chu
2e3bc39fa9
Further cursor-based restructuring
...
Get rid of all of the redundant MDB_*page structs and other cruft.
2011-09-07 23:09:45 -07:00
Howard Chu
976a150973
Cleanup unused code
2011-09-06 23:37:37 -07:00
Howard Chu
619cebee12
Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap
2011-09-06 23:22:40 -07:00
Howard Chu
1f8c3369b9
Fix mdb_move_node again
2011-09-06 23:16:45 -07:00
Howard Chu
06ec9f1db2
ITS#7035 don't loop forever in wait4msg
2011-09-06 21:13:49 -07:00
Howard Chu
473e2c997f
Merge branch 'mdb.master' of /home/hyc/OD/mdb
2011-09-06 15:24:00 -07:00
Howard Chu
f9c8796d0b
Fix search_node, add cintcmp
2011-09-06 15:22:53 -07:00
Howard Chu
ee3f050000
Merge branch 'mdb.master' of /home/hyc/OD/mdb
2011-09-06 13:55:02 -07:00
Howard Chu
5e6a864513
Guarantee nodes are 2-byte aligned
...
Also fix xcursor_init1 md_dirty flag
Also another mdb_cmp refactoring fix
2011-09-06 13:50:51 -07:00
Howard Chu
293df78b2b
Change MDB_node to depend on 2-byte alignment
2011-09-06 05:17:24 -07:00
Howard Chu
e071488c85
Merge remote branch 'mdb/mdb.master'
2011-09-05 16:56:02 -07:00
Howard Chu
807841b1aa
Fix for mdb_cmp refactoring
2011-09-05 16:54:39 -07:00
Howard Chu
13ad0aedcc
More merge fix
2011-09-05 16:20:31 -07:00
Howard Chu
513d96105d
Fix bad merge
2011-09-05 16:15:36 -07:00
Howard Chu
ffdf3d7afb
Merge remote branch 'mdb/mdb.master'
2011-09-05 15:19:41 -07:00
Howard Chu
963c421a97
Minor cleanup
2011-09-05 14:22:46 -07:00
Howard Chu
e44d4cf06a
Use mdb_midl_append/sort instead of _insert
2011-09-05 02:37:43 -07:00
Howard Chu
2cde97ae94
Use mdb_midl_append/sort instead of _insert
2011-09-05 02:36:24 -07:00
Howard Chu
221be39208
mdb_cmp refactoring
2011-09-05 01:19:24 -07:00
Howard Chu
0609aa45b3
Reimplement basic ops as cursor ops
2011-09-05 01:19:24 -07:00
Howard Chu
23790cf390
Add MDB_{FIRST,LAST}_DUP for cursor_get
2011-09-05 01:17:13 -07:00
Howard Chu
9cfbea8e8f
Cleanup midl, start documenting internals
2011-09-05 01:16:44 -07:00
Howard Chu
0f679e9386
Tweak docs
2011-09-05 01:16:33 -07:00
Howard Chu
70a4f6f29d
mdb_cmp refactoring
2011-09-05 00:46:32 -07:00
Howard Chu
7bb14a2e79
Cursor stuff working, no major perf gain
2011-09-04 21:33:57 -07:00
Howard Chu
1843fe0b53
Cursors in-progress, broken
2011-09-04 21:33:57 -07:00
Howard Chu
8d89a53165
Use cursor->mc_flags
2011-09-04 21:33:57 -07:00
Howard Chu
7f46832ec5
Begin reimplementing basic ops as cursor ops
2011-09-04 21:33:57 -07:00
Howard Chu
f6edbd7793
Add MDB_{FIRST,LAST}_DUP for cursor_get
2011-09-04 21:33:57 -07:00
Howard Chu
2197928aaa
Fix mdb_split, fix MDB_GET_BOTH
2011-09-03 20:12:09 -07:00
Howard Chu
9d821c26c3
Fix mdb_split, fix MDB_GET_BOTH
2011-09-03 20:11:07 -07:00
Howard Chu
e91dae3ed5
Cleanup midl, start documenting internals
2011-09-03 14:27:07 -07:00
Howard Chu
b30d0266e7
Tweak docs
2011-09-02 01:09:11 -07:00
Howard Chu
02cff39398
Merge remote branch 'mdb4/master'
2011-09-01 16:50:26 -07:00
Howard Chu
30736a0ff5
Ugly-as-sin initial Windows port
2011-09-01 16:31:10 -07:00
Howard Chu
2510bea718
API cleanup, doxygen docs for public API
2011-09-01 16:31:10 -07:00
Howard Chu
0f459dd773
Cleanup, fix freelist alloc
...
Don't allow new pages for free list to come from the free list.
Otherwise a nasty data self-reference occurs that is too much
trouble to unwind.
2011-09-01 16:31:10 -07:00
Howard Chu
f7aa0d5e4a
Tweak locks, fix race conditions
2011-09-01 16:31:10 -07:00
Howard Chu
d27a7754f3
Reduce excessive memcpy in mdb_split
2011-09-01 16:31:10 -07:00
Howard Chu
027e1daa10
Fix mdb_split, tweak split_indx if space is tight
2011-09-01 16:31:10 -07:00
Howard Chu
01b9fc59fb
Fix update of big data items
2011-09-01 16:31:10 -07:00
Howard Chu
13c663f666
Fix free page reclaim and dbs table update
...
Can re-use free pages 1 txn earlier
Must update all dbs tables on txn commit
2011-09-01 16:31:10 -07:00
Howard Chu
94718fab00
More debug, fix MDB_DEL_DUP
2011-09-01 16:31:10 -07:00
Howard Chu
ee69051a7c
More debug output
2011-09-01 16:31:10 -07:00
Howard Chu
d54eb7dd81
Add txn_reset / txn_renew
2011-09-01 16:31:10 -07:00
Howard Chu
590c728044
First cut at DUPFIXED support
...
Also in cursor_set, check the current page (if already set from
before) before starting over again from the root.
2011-09-01 16:31:10 -07:00
Howard Chu
720c4b0a3d
Set MINKEYS to 2
...
For better space utilization
2011-09-01 16:31:10 -07:00
Howard Chu
66a647e55d
Keep re-using dpages instead of freeing them
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
ca496bd357
Avoid cast-away-const for errstr[]
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
5b3b522313
Wrap O_DSYNC in MDB_DSYNC.
...
If O_DSYNC is not defined, that may be due to poor compiler options.
We could fall back to the less efficient O_SYNC, but it seems better
to let the user learn of the problem and give better compiler options.
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
cb7c955220
Simplify: Replace IDL*_CMP() with CMP()
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
3029bb694d
Macro cleanup: Parenthesize, simplify, remove a ;
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
a1b4144b80
Drop gcc extension ,##__VA_ARGS__. Add DPUTS().
...
C99 says DPRINTF(fmt, ...) must get at least 2 args. Using DPUTS for 1 arg.
2011-09-01 16:31:10 -07:00
Howard Chu
8f77043372
Fix cursor_set for dups
...
Also make sure dups are counted in md_entries
2011-09-01 16:31:10 -07:00
Howard Chu
edf9d8e51b
Sorted dups fix
...
Write the first datum normally. Convert to a sub-db if
additional items for the same key are written.
2011-09-01 16:31:10 -07:00
Howard Chu
e15d4d16b6
Don't alloc in cursor_push/pop
2011-09-01 16:31:10 -07:00
Howard Chu
1ceae5c2c0
Fix multi-page commits
2011-09-01 16:31:10 -07:00
Howard Chu
6d924c1dda
Fix overflow page read
2011-09-01 16:31:10 -07:00
Howard Chu
3dd815162c
Sub-DB init/dirty fixes
2011-09-01 16:31:10 -07:00
Howard Chu
11308a190d
Fix dupsort fetch
2011-09-01 16:31:10 -07:00
Howard Chu
697e00a8e2
More txn/cursor cleanup
2011-09-01 16:31:10 -07:00
Howard Chu
e29660566c
Update DB tables on commit even if no dirty pages
2011-09-01 16:31:10 -07:00
Howard Chu
bab6be8077
Add mdb_strerror(), mdb_env_set_flags()
2011-09-01 16:31:10 -07:00
Howard Chu
9902a7764e
allow silent commit of read-only TXNs
2011-09-01 16:31:10 -07:00
Howard Chu
9860d5a43f
Protect err codes
2011-09-01 16:31:10 -07:00
Howard Chu
5e3a3db1f2
Error cleanup
...
Replace MDB_FAIL with more specific codes
Return MDB_PANIC after failure to write meta page
2011-09-01 16:31:09 -07:00
Howard Chu
5ef6c43acf
Get rid of AC_MEMCPY
2011-09-01 16:31:09 -07:00
Howard Chu
1aa5105b67
Use IDL2 for dirty page list
2011-09-01 16:31:09 -07:00
Howard Chu
88a5f35c43
Use O_DSYNC on metafd.
...
Use sync writes in mtest.
2011-09-01 16:31:09 -07:00
Howard Chu
3e1c72a08e
Minor cleanup
2011-09-01 16:31:09 -07:00
Howard Chu
19f5eebff8
Better defs for locker structures
2011-09-01 16:31:09 -07:00
Howard Chu
af0b49aa60
Silence stupid warning
2011-09-01 16:31:09 -07:00
Howard Chu
f9f0ec92a9
Add mdb_version()
2011-09-01 16:31:09 -07:00
Howard Chu
76d7ca8ce0
Rationalize mdbenv namespace
2011-09-01 16:31:09 -07:00
Howard Chu
c378b2525c
Move MDB_VERSION to mdb.h, use major/minor/patch
2011-09-01 16:17:08 -07:00
Howard Chu
af70c0d9ce
Tweak MDB_val to match struct berval
2011-09-01 16:17:08 -07:00
Howard Chu
985f765dc5
Rename idl to midl
2011-09-01 16:17:08 -07:00
Howard Chu
f5297dfc25
Add another FIXME comment
2011-09-01 16:17:07 -07:00
Howard Chu
35fca0f6af
Add mtest2 and 3
2011-09-01 16:17:07 -07:00
Howard Chu
b070f7bff9
Portability tweak
2011-09-01 16:17:07 -07:00
Howard Chu
170703b0e4
Make a shared library too
2011-09-01 16:17:07 -07:00
Howard Chu
785d8e184c
Start using as a library
2011-09-01 16:17:07 -07:00
Howard Chu
920115f747
Sorted dup fixes
2011-09-01 16:17:07 -07:00
Howard Chu
ce9456d95c
Add MDB_INTEGERKEY db flag
2011-09-01 16:17:07 -07:00
Howard Chu
d499c244cd
Allow setting DB flags on main DB
2011-09-01 16:17:07 -07:00
Howard Chu
2f7ddb4103
Cleanup, add mdb_cursor_count()
2011-09-01 16:17:07 -07:00
Howard Chu
2e776bd36e
More DB checks
2011-09-01 16:17:07 -07:00
Howard Chu
b834dc05b3
Consolidate stat functions
2011-09-01 16:17:07 -07:00
Howard Chu
11204d176a
Header cleanup
2011-09-01 16:17:07 -07:00
Howard Chu
40df306d52
More subDB fixes
2011-09-01 16:17:07 -07:00
Howard Chu
39817f6e85
Parameter cleanup
2011-09-01 16:17:07 -07:00
Howard Chu
819d98169e
Valgrind complaints
2011-09-01 16:17:07 -07:00
Howard Chu
01c2f7816f
More subDB stuff
2011-09-01 16:17:07 -07:00
Howard Chu
2fe9fbd1a3
Make sure subDB info is saved after writes
2011-09-01 16:17:07 -07:00
Howard Chu
314ac28938
Sorted dups basically completed, needs testing
2011-09-01 16:17:07 -07:00
Howard Chu
f586e57742
Added cursor_get for sorted dups
2011-09-01 16:17:07 -07:00
Howard Chu
f48f085ed8
Add mdb_get for sorted dups
2011-09-01 16:17:07 -07:00
Howard Chu
e3703ab58c
Add mdb_del for sorted dups
2011-09-01 16:17:07 -07:00
Howard Chu
bb6a034e28
Add mdb_put for sorted dups
2011-09-01 16:17:07 -07:00
Howard Chu
51e210c604
Fix reader txn locking
2011-09-01 16:17:07 -07:00
Howard Chu
e3b668e84a
Don't malloc the free_pgs list every time
2011-09-01 16:17:07 -07:00
Howard Chu
9f0b00b467
Setup context for sorted dups
2011-09-01 16:17:07 -07:00
Howard Chu
e5cf84495b
Add explicit md_dirty flag to dbxs
2011-09-01 16:17:07 -07:00
Howard Chu
edf7869466
Add cursor_prev
2011-09-01 16:17:07 -07:00
Howard Chu
cc56ba04fb
Use BDB cursor terminology
2011-09-01 16:17:07 -07:00
Howard Chu
60550e14ee
Add some legalese
...
Note derived from Martin Hedenfalk's btree.c; the code
is significantly reworked but owes a lot to the original.
2011-09-01 16:17:07 -07:00
Howard Chu
36b0883564
Additional debug, fixes
...
Fixed order of mdb_del0 operations
Drop in-memory free list from env on txn_abort
2011-09-01 16:17:07 -07:00
Howard Chu
4ba37eed5e
Save free-list in DB
2011-09-01 16:17:07 -07:00
Howard Chu
852ac0e3bc
More sub-db stuff
2011-09-01 16:17:07 -07:00
Howard Chu
a687f2dc3c
Use STAILQ instead of SIMPLEQ
...
For compat with ancient BSD. Will probably just copy <ldap_queue.h> instead.
2011-09-01 16:17:07 -07:00
Howard Chu
1f3fdc811e
More subdb stuff, add cursor_last()
2011-09-01 16:17:07 -07:00
Howard Chu
9b4c689601
Tweak mt_dbxs array
2011-09-01 16:17:07 -07:00
Howard Chu
8211dd3960
Fix free page re-use
2011-09-01 16:17:07 -07:00
Howard Chu
415d98755d
Fixup metapage writes
2011-09-01 16:17:06 -07:00
Howard Chu
4fd0f278d2
Tweaks to txn handling
2011-09-01 16:17:06 -07:00
Howard Chu
f89d0cc4b7
More subDBs, compiles now
2011-09-01 16:17:06 -07:00
Howard Chu
cb45191793
Start DB restructuring
2011-09-01 16:17:06 -07:00
Howard Chu
194334b2f7
Replace ulong with ULONG macro
2011-09-01 16:17:06 -07:00
Howard Chu
2766e88eeb
More prep for subdatabases
2011-09-01 16:17:06 -07:00
Howard Chu
86e78566e3
Tweak comment about overflow allocations
2011-09-01 16:17:06 -07:00
Howard Chu
bc0ca49d16
Use an environment directory
...
Go back to using an mmap'd lock file
2011-09-01 16:17:06 -07:00
Howard Chu
5a72c6a294
No longer need -lssl
2011-09-01 15:53:33 -07:00
Howard Chu
5e6f32243c
Fix db_stat stuff
2011-09-01 15:53:33 -07:00
Howard Chu
3f025d1d4c
More fixes for seeking
2011-09-01 15:53:33 -07:00
Howard Chu
27ab75ef36
Re-use old pages
2011-09-01 15:53:33 -07:00
Howard Chu
8d74f717ff
For test063
...
add hex timestamp to lutil_debug() output
Fix LASTMOD race condition in accesslog.c
Set refreshInterval even if using refreshAndPersist, since
fallbacks will use refresh params
2011-08-30 19:16:39 -07:00
Howard Chu
6546ecd39c
ITS#7022 cleanup prev commit
2011-08-24 15:37:52 -07:00
Rich Megginson
a7aac14d2a
ITS#7022 NSS_Init* functions are not thread safe
...
The NSS_InitContext et. al, and their corresponding shutdown functions,
are not thread safe. There can only be one thread at a time calling
these functions. Protect the calls with a mutex. Create the mutex
using a PR_CallOnce to ensure that the mutex is only created once and
not used before created. Move the registration of the nss shutdown
callback to also use a PR_CallOnce. Removed the call to
SSL_ClearSessionCache() because it is always called at shutdown, and we must
not call it more than once.
2011-08-24 15:34:47 -07:00
Jan Vcelak
3dae953fd6
ITS#7014 TLS: don't check hostname if reqcert is 'allow'
...
If server certificate hostname does not match the server hostname,
connection is closed even if client has set TLS_REQCERT to 'allow'. This
is wrong - the documentation says, that bad certificates are being
ignored when TLS_REQCERT is set to 'allow'.
2011-08-24 15:27:29 -07:00
Rich Megginson
210b156ece
ITS#7002 MozNSS: fix VerifyCert allow/try behavior
...
If the olcTLSVerifyClient is set to a value other than "never", the server
should request that the client send a client certificate for possible use
with client cert auth (e.g. SASL/EXTERNAL).
If set to "allow", if the client sends a cert, and there are problems with
it, the server will warn about problems, but will allow the SSL session to
proceed without a client cert.
If set to "try", if the client sends a cert, and there are problems with
it, the server will warn about those problems, and shutdown the SSL session.
If set to "demand" or "hard", the client must send a cert, and the server
will shutdown the SSL session if there are problems.
I added a new member of the tlsm context structure - tc_warn_only - if this
is set, tlsm_verify_cert will only warn about errors, and only if TRACE
level debug is set. This allows the server to warn but allow bad certs
if "allow" is set, and warn and fail if "try" is set.
2011-07-28 14:09:55 -07:00
Rich Megginson
fb4b4f7445
ITS#7001 MozNSS: free the return of tlsm_find_and_verify_cert_key
...
If tlsm_find_and_verify_cert_key finds the cert and/or key, and it fails
to verify them, it will leave them allocated for the caller to dispose of.
There were a couple of places that were not disposing of the cert and key
upon error.
2011-07-28 14:00:15 -07:00
Jan Vcelak
e8ac17e17c
ITS#6998 MozNSS: when cert not required, ignore issuer expiration
...
When server certificate is not required in a TLS session (e.g.
TLS_REQCERT is set to 'never'), ignore expired issuer certificate error
and do not terminate the connection.
2011-07-21 11:59:06 -07:00
Howard Chu
c02e681121
ITS#6982 fix md5 memset invocation
2011-07-01 22:55:06 -07:00
Howard Chu
661d4f80e3
Drop header page
...
it's useless, just use meta pages instead
2011-07-01 02:31:36 -07:00
Rich Megginson
d944920fd3
ITS#6980 free the result of SSL_PeerCertificate
...
In tlsm_auth_cert_handler, we get the peer's cert from the socket using
SSL_PeerCertificate. This value is allocated and/or cached. We must
destroy it using CERT_DestroyCertificate.
2011-06-29 16:56:26 -07:00
Hallvard B Furuseth
c98c14fef5
Private: make.sh
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
63370215dd
#define _XOPEN_SOURCE for random()
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
f88d626ff1
Drop unused vars
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
95c88a57b1
Warning cleanup: Make parent index unsigned
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
7c1e5e9540
Warning cleanup: printf(%p, struct*)
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
5fdbc54d76
Warning cleanup: if(rc = mdb_<func>()) & co
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
160585b1bc
Warning cleanup: Drop unneeded 'unsigned >= 0'
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
bd2ceeb74e
Fix P_INVALID signedness
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
f42f7f3442
Fix formats, reduce PAGEHDRSZ size_t->unsigned.
...
NUMKEYS was size_t due to PAGEHDRSZ; printing unsigned int is simpler.
Instead increase PAGEFILL to long, since it involves a multiply.
Possibly uint32_t or something would be sufficient.
2011-06-29 22:29:24 +02:00
Hallvard B Furuseth
aed36f5780
Compact memnrcmp, just for fun
2011-06-29 22:26:32 +02:00
Hallvard B Furuseth
ab0d6fa05e
Fix memncmp(): Do not memcmp twice
2011-06-29 22:26:32 +02:00
Hallvard B Furuseth
86b40907d4
DPRINTF(): Fix format, handle non-gcc, simplify.
...
Add C99-required 1st parameter. Disable for for non-gcc. Simplify.
GNU extension #define DPRINTF(<no 1st arg>...) -> GNU ext ,##__VA_ARGS__.
Fix __LINE__ format %ld -> %d.
2011-06-29 22:26:32 +02:00
Hallvard B Furuseth
84659a5bb6
Makefile
2011-06-29 22:26:32 +02:00
Hallvard B Furuseth
f73a992ac9
.gitignore
2011-06-29 22:26:32 +02:00
Howard Chu
2d4f522a73
More cursor tests, fail...
2011-06-29 01:55:53 -07:00
Howard Chu
bddc86c0ee
Save a byte in nodesz
2011-06-29 01:55:07 -07:00
Howard Chu
3a62d59c45
meta init
2011-06-28 22:34:53 -07:00
Howard Chu
fe703b0ee0
Log txnID in msgs
2011-06-28 22:05:54 -07:00
Howard Chu
421ee6bb1d
Use toggling meta page instead of always appending
2011-06-28 18:40:52 -07:00
Howard Chu
a37195f686
Use shmat for lock region instead of mmap
2011-06-28 14:22:22 -07:00
Howard Chu
f367441b69
Add locking support
2011-06-28 13:46:48 -07:00
Howard Chu
a4c3626267
Fix P_INVALID def
2011-06-28 02:57:02 -07:00
Howard Chu
7d678832a7
Cursor testing
2011-06-28 02:43:49 -07:00
Howard Chu
cd57e9741f
Fix splits, cursor navigation, newpage flags
2011-06-28 02:40:46 -07:00
Howard Chu
11e80dae63
Return statistics for a DB
...
Eventually this will have to grow up to be like BDB db_stat...
2011-06-28 00:16:05 -07:00
Howard Chu
a2de260fb3
Use NOSYNC flag
2011-06-28 00:15:40 -07:00
Howard Chu
0c2610ebdd
Use header when some fields are unspecified
2011-06-28 00:15:15 -07:00
Howard Chu
d620d4368a
Checkpoint
2011-06-27 22:39:24 -07:00
Howard Chu
7ee3dee647
ITS#6828 set ld_errno on connect failures
2011-06-27 18:43:31 -07:00
Howard Chu
052ac2f64a
ITS#6828 silence warning in prev commit
2011-06-24 18:03:11 -07:00
Howard Chu
d0973003f7
ITS#6978 bail out on invalid input
2011-06-23 13:17:08 -07:00
Rich Megginson
5e467e4899
ITS#6862 MozNSS - workaround PR_SetEnv bug
2011-06-21 15:58:49 -07:00
Rich Megginson
d78cf81648
ITS#6975 MozNSS - allow cacertdir in most cases
...
OpenLDAP built with OpenSSL allows most any value of cacertdir - directory
is a file, directory does not contain any CA certs, directory does not
exist - users expect if they specify TLS_REQCERT=never, no matter what
the TLS_CACERTDIR setting is, TLS/SSL will just work.
TLS_CACERT, on the other hand, is a hard error. Even if TLS_REQCERT=never,
if TLS_CACERT is specified and is not a valid CA cert file, TLS/SSL will
fail. This patch makes CACERT errors hard errors, and makes CACERTDIR
errors "soft" errors. The code checks CACERT first and, even though
the function will return an error, checks CACERTDIR anyway so that if the
user sets TRACE mode they will get CACERTDIR processing messages.
2011-06-21 15:56:55 -07:00
Jan Vcelak
65e163d268
ITS#6947 Handle missing '\n' termination in LDIF input
2011-06-20 18:18:34 -07:00
Howard Chu
9f7d119ce3
Add LDAP_OPT_X_TLS_PACKAGE
...
to return the name of the underlying TLS implementation
2011-06-10 02:11:26 -07:00
Howard Chu
33f3de77f1
ITS#6828 fix TLS setup with async connect
2011-06-08 18:27:54 -07:00
Hallvard Furuseth
fac36dcba7
ITS#6932: Clean up strange asserts & nearby code.
...
Mostly found by Klocwork: Issues #213,298-300,331,342-343,374,390,410.
2011-05-05 15:55:29 +02:00
Hallvard Furuseth
06dca7858e
ITS#6931 Catch NULL ld for LDAP_OPT_SESSION_REFCNT.
...
Klocwork issue#111, ldap_get_option().
2011-05-05 14:10:32 +02:00
Hallvard Furuseth
a1cb490d0c
ITS#6930 Plug ldapi://too-long-path socket leak.
...
Klocwork issue#117, ldap_connect_to_path().
2011-05-05 13:52:08 +02:00
Hallvard Furuseth
375bc1ace7
ITS#6929 fclose(password file) on failure.
...
lutil_get_filed_password() bug; klocwork issue#203.
2011-05-05 13:40:15 +02:00
Howard Chu
9b463b59ec
ITS#6898 fix regression from ITS#6625
...
compound statements need brackets, duh.
2011-04-09 16:55:00 -07:00
Hallvard Furuseth
76b7a83026
Merge missing files from cvs repo
2011-04-04 15:38:46 +02:00
Hallvard Furuseth
86dc9d8a4c
ITS#6885: Fix lutil_get_now for !HAVE_GETTIMEOFDAY
2011-03-30 15:51:46 +02:00
Howard Chu
f8a5ce4a6e
ITS#6870 move ldif.c and fetch.c from liblutil to libldap
2011-03-24 06:49:04 +00:00
Ralf Haferkamp
41654b51e1
ITS#6870 Revert r1.49 commit to make HEAD build again
2011-03-22 11:17:21 +00:00
Ralf Haferkamp
a6dce60b27
ITS#6870 Reverted last commit
2011-03-18 15:18:42 +00:00
Ralf Haferkamp
061786c8dc
More for ITS#6870
2011-03-18 14:51:42 +00:00
Howard Chu
a9701ef5a0
ITS#6870 fix Makefile breakage due to ITS#6194
2011-03-17 16:55:26 +00:00
Howard Chu
31a8460417
ITS#6863, fix crashes in ITS#6714 patch. From Jan Vcelak @ Red Hat
2011-03-16 18:23:26 +00:00
Howard Chu
93da727d86
ITS#6848 Add -w option to wait for DB startup before parent exits
2011-03-01 01:19:37 +00:00
Howard Chu
6f1d218652
ITS#6832 #elif cleanup
2011-02-17 00:36:30 +00:00
Howard Chu
ba30a9ee62
Export pw_string64 as lutil_passwd_string64
2011-02-07 00:46:06 +00:00
Howard Chu
bbecfa740d
ITS#6811, more for #6802 PKCS11 fork() handling from Rich Megginson @ Red Hat
2011-01-29 20:40:20 +00:00
Pierangelo Masarati
45d580e941
do not hijack loop counter (ITS#6813; blind fix)
2011-01-29 11:05:08 +00:00
Howard Chu
2d545befdd
Cleanup version checking
2011-01-27 21:43:22 +00:00
Howard Chu
d27f458b37
ITS#6802 restart modules for fork() - from Rich Megginson @ Red Hat
2011-01-27 21:38:40 +00:00
Howard Chu
ba70ec8b2c
ITS#6791 fix cert usage types/values - from Rich Megginson @ Red Hat
2011-01-27 21:34:35 +00:00
Howard Chu
5224536a8e
ITS#6790 fix default cipher suites - from Rich Megginson @ Red Hat
2011-01-27 21:32:39 +00:00
Hallvard Furuseth
9eb5ecba15
ITS#5421 comment ldapoptions vs ldapoptions_prefix
2011-01-20 10:45:14 +00:00
Howard Chu
e542bd5498
ITS#5421 export ldap_debug define in <ldap_log.h>
2011-01-19 21:20:10 +00:00
Pierangelo Masarati
6d8e0d5b3e
increment lconn_refcnt so connection does not get closed (ITS#6788)
2011-01-18 23:53:24 +00:00
Hallvard Furuseth
b9609cedf5
Catch ber errors in vc (Verify Credentials)
2011-01-17 13:15:27 +00:00
Hallvard Furuseth
8021cbd8f1
ITS#6738 Catch ber errors in libldap/ldap_sync.c.
...
Also remove variable tag in ldap_sync_search_intermediate()
and reduce ber_scanf("tm", &tag, foo) to tag=ber_scanf("m", foo).
2011-01-17 12:20:56 +00:00
Hallvard Furuseth
dd640af54f
Fix ITS#6672: Do not return LDAP_MUTEX_LOCK().
...
It has type void.
2011-01-12 14:25:37 +00:00
Hallvard Furuseth
77f78f1d57
vc.c: ber_printf/flatten rc==LBER_ERROR -> rc<0
2011-01-12 14:23:07 +00:00
Howard Chu
6a544b7193
Silence stupid MUTEX_FIRSTCREATE warnings
2011-01-11 21:34:55 +00:00
Pierangelo Masarati
45205bdf70
don't leak reqdata
2011-01-08 12:51:43 +00:00
Kurt Zeilenga
be897b6679
Outline SASL interactive API (no meat)
2011-01-06 18:37:23 +00:00
Hallvard Furuseth
360066784c
Re-fix ITS#6764 (check for ber == NULL _before_ using ber)
2011-01-05 13:57:31 +00:00
Kurt Zeilenga
966cef8c9a
Happy New Year
2011-01-05 00:42:37 +00:00
Kurt Zeilenga
390ba8c84e
VC adjust controls tag
2011-01-04 16:01:07 +00:00
Pierangelo Masarati
e2440ccb00
fix previous commit
2011-01-04 01:02:12 +00:00
Pierangelo Masarati
fdafc6384e
fix error handling/arg checking
2011-01-03 23:40:02 +00:00
Kurt Zeilenga
37dcb1d791
Remove authzid parameter from verify credential response.
...
If client wants authzid, it can ask by adding an Authorization Identity
Request inner control.
2011-01-03 22:05:23 +00:00
Kurt Zeilenga
7f4c7ebc1c
Extend Verify Credentials encode/decode per -devel post.
...
(ldapvc doesn't yet request/handle inner password policy control.
2011-01-03 21:49:26 +00:00
Kurt Zeilenga
e6fd8bfbb0
Remove version from encoding
...
(previously removed from SASL choices, but should be always absent)
2011-01-03 19:21:03 +00:00
Pierangelo Masarati
59b220506d
more about ITS#6645
2011-01-01 20:50:00 +00:00
Pierangelo Masarati
6631d41c16
ber_flatten must return -1 on unmatched "{" "}" (ITS#6764)
2011-01-01 16:06:45 +00:00
Hallvard Furuseth
c9e85af35c
ITS#6759: assert;Debug -> Debug;assert
2010-12-30 23:19:02 +00:00
Howard Chu
8018924efd
ITS#6741 support Bitstring in ldap_X509dn2bv()
2010-12-30 19:38:57 +00:00
Kurt Zeilenga
46f4813632
Remove dead code.
2010-12-30 17:46:26 +00:00
Pierangelo Masarati
f3dd90a553
s/0/O/
2010-12-30 15:58:48 +00:00
Pierangelo Masarati
538b582cdc
fix perror; removed extra sequence opening (is it needed; if yes, it must also be closed, see #if 0)
2010-12-30 15:51:25 +00:00
Pierangelo Masarati
7dfc54378c
s/VCRequest/VCResponse/
2010-12-30 14:12:26 +00:00
Howard Chu
f697a3ffed
ITS#6742 from Rich Megginson @ Red Hat
2010-12-24 00:29:31 +00:00
Howard Chu
1bb648841b
ITS#6453 cleanup on LDAP_TIMEOUT
2010-12-23 23:18:41 +00:00
Kurt Zeilenga
6119ad7294
Misc vc updates
2010-12-15 00:59:42 +00:00
Kurt Zeilenga
8a692a0034
Add comment regarding ASN.1 syntax
...
rm version field
2010-12-14 22:09:50 +00:00
Kurt Zeilenga
25aa65f693
cleanup
2010-12-14 21:14:31 +00:00
Kurt Zeilenga
d3b51f2614
LDAP "Verify Credentials" operation
...
Client library implementation only
2010-12-14 20:58:02 +00:00
Hallvard Furuseth
5feeec67d7
ITS#6747 Fix LDAP_CONNECTIONLESS Debug(), warnings
2010-12-14 15:06:32 +00:00
Howard Chu
439030a16d
ITS#6714 non-blocking support from Richard Megginson @ Red Hat
2010-12-11 04:57:10 +00:00
Howard Chu
0215833bcd
Cleanup prev commit
2010-12-11 04:51:21 +00:00
Howard Chu
a2053729f0
ITS#6744 - plug leak
2010-12-11 04:35:01 +00:00
Howard Chu
75bb972859
Partial fix for non-string types in cert DNs. (Need to add explicit support
...
for Bitstring, maybe a few others.)
2010-12-10 02:05:18 +00:00
Pierangelo Masarati
dc156d7f6e
allow to set LDIF max line width (ITS#6645)
2010-12-07 10:14:51 +00:00
Pierangelo Masarati
d5f101f836
typo in comment
2010-12-07 10:11:06 +00:00
Hallvard Furuseth
16b7df8397
ITS#6625 Remove some LDAP_R_COMPILEs
2010-12-06 11:31:58 +00:00
Hallvard Furuseth
5ecd624f50
Fix ITS#6625: mutex-protect ldap_free_connection()
2010-12-06 10:51:55 +00:00
Hallvard Furuseth
7cb9c496bf
ITS#6625 concurrency patch cleanup
2010-12-06 10:41:41 +00:00
Hallvard Furuseth
5c186dff4d
Silence valgrind's ptrcheck (no real change).
...
Also removes a bit unnecessary code.
2010-12-06 08:19:40 +00:00
Hallvard Furuseth
a55d333107
ITS#6733: Fix LDAP_MEMORY_DEBUG issues.
...
ber_memcalloc_x overflow check. Silence some compiler warnings.
2010-12-03 11:44:22 +00:00
Hallvard Furuseth
a7771fc35a
ITS#6732: Clean up ber_errno handling.
...
Set it after ber_mem(c)alloc_x failure. Don't set it when not needed.
2010-12-02 13:18:32 +00:00
Pierangelo Masarati
603eec5758
remove #ifdef EAGAIN, EWOULDBLOCK (ITS#6603)
2010-11-24 14:47:46 +00:00
Hallvard Furuseth
bc38ec228b
For ITS#5421: Remove unnecessary #include "ldap_log.h"
2010-11-23 15:25:49 +00:00
Hallvard Furuseth
7c29e2c7c5
ITS#6723: Handle EOF in test programs
2010-11-23 12:12:54 +00:00
Hallvard Furuseth
18e348a379
Fix last commit (ITS#6622): Remove non-C90 // comment
2010-11-22 12:28:34 +00:00
Hallvard Furuseth
b75b769471
Fix cyrus.c rev 1.159 for --without-cyrus-sasl:
...
It modified ldap_int_sasl_bind()'s prototype with but not without SASL.
2010-11-19 12:32:05 +00:00
Howard Chu
1ed2d0a485
ITS#6706 from Rich Megginson @ Red Hat - improve diagnostic messages
2010-11-15 20:47:24 +00:00
Howard Chu
750f7f895b
ITS#6705 from Rich Megginson @ Red Hat - only use .0 files in cacertdir
2010-11-15 20:45:47 +00:00
Howard Chu
4c31652ee8
ITS#6704 from Rich Megginson @ Red Hat - use both cacert and cacertdir
2010-11-15 20:44:32 +00:00
Howard Chu
208308d4dd
ITS#6703 from Rich Megginson @ Red Hat - reject non-files for cert/key pem files
2010-11-15 20:43:53 +00:00
Howard Chu
c7e19f9b62
ITS#6702 prompts should be on stderr
2010-11-12 04:15:23 +00:00
Howard Chu
f26b5b6692
ITS#6689 from Rich Megginson @ Red Hat
2010-10-29 10:30:30 +00:00