diff --git a/COPYRIGHT b/COPYRIGHT
index 842d1677..1ebd52b2 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -18,7 +18,7 @@ along with this program. If not, see .
---
-Copyright 2011-2014 Howard Chu, Symas Corp.
+Copyright 2011-2016 Howard Chu, Symas Corp.
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/LICENSE b/LICENSE
index 210c8aa8..62bf0465 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,3 +1,9 @@
+Note: This project pending for dual licensing. We assume to resolve
+issues related to OpenLDAP Public License and then provide dual
+licensing under OpenLDAP and AGPL. Sign the CLA before contributing.
+
+***********************************************************************
+
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
diff --git a/Makefile b/Makefile
index 4bc4c810..9016fba9 100644
--- a/Makefile
+++ b/Makefile
@@ -44,7 +44,7 @@ TESTS := mtest0 mtest1 mtest2 mtest3 mtest4 mtest5 mtest6 wbench \
yota_test1 yota_test2
SRC_LMDB := mdb.c midl.c lmdb.h midl.h reopen.h barriers.h
-SRC_MDBX := $(SRC_LMDB) mdbx.h
+SRC_MDBX := $(SRC_LMDB) mdbx.c mdbx.h
.PHONY: mdbx lmdb all install clean check tests coverage
diff --git a/intro.doc b/intro.doc
index aeaeb21d..cfe6976e 100644
--- a/intro.doc
+++ b/intro.doc
@@ -19,7 +19,7 @@
*
* ---
*
- * Copyright 2015-2014 Howard Chu, Symas Corp.
+ * Copyright 2015 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/lmdb.h b/lmdb.h
index 4a3d57e7..fb9c6467 100644
--- a/lmdb.h
+++ b/lmdb.h
@@ -120,7 +120,7 @@
* Howard Chu, Symas Corp. All rights reserved.
*
* @copyright 2015,2016 Leonid Yuriev .
- * 2011-2014 Howard Chu, Symas Corp. All rights reserved.
+ * 2011-2016 Howard Chu, Symas Corp. All rights reserved.
*
* ---
*
@@ -146,7 +146,7 @@
* @par Derived From:
* This code is derived from LMDB engine written by Howard Chu, Symas Corporation.
*
- * Copyright 2011-2014 Howard Chu, Symas Corp. All rights reserved.
+ * Copyright 2011-2016 Howard Chu, Symas Corp. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
diff --git a/mdb.c b/mdb.c
index f37b2ba1..4caa8c5f 100644
--- a/mdb.c
+++ b/mdb.c
@@ -26,7 +26,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -1222,11 +1222,12 @@ mdb_strerror(int err)
static txnid_t mdbx_oomkick(MDB_env *env, txnid_t oldest);
#endif /* MDBX_MODE_ENABLED */
+static void mdb_debug_log(int type, const char *function, int line, const char *fmt, ...)
+ __attribute__((format(gnu_printf, 4, 5)));
+
#if MDB_DEBUG
static txnid_t mdb_debug_edge;
- static void mdb_debug_log(int type, const char *function, int line,
- const char *fmt, ...);
static void __cold
mdb_assert_fail(MDB_env *env, const char *msg,
const char *func, int line)
@@ -1263,8 +1264,7 @@ static txnid_t mdbx_oomkick(MDB_env *env, txnid_t oldest);
#endif /* MDB_DEBUG */
static void __cold
-mdb_debug_log(int type, const char *function, int line,
- const char *fmt, ...)
+mdb_debug_log(int type, const char *function, int line, const char *fmt, ...)
{
va_list args;
@@ -1272,8 +1272,12 @@ mdb_debug_log(int type, const char *function, int line,
if (mdb_debug_logger)
mdb_debug_logger(type, function, line, fmt, args);
else {
- if (function && line)
- fprintf(stderr, "%s:%u ", function, line);
+ if (function && line > 0)
+ fprintf(stderr, "%s:%d ", function, line);
+ else if (function)
+ fprintf(stderr, "%s: ", function);
+ else if (line > 0)
+ fprintf(stderr, "%d: ", line);
vfprintf(stderr, fmt, args);
}
va_end(args);
@@ -1344,7 +1348,6 @@ char *
mdb_dkey(MDB_val *key, char *buf)
{
char *ptr = buf;
- unsigned char *c = key->mv_data;
unsigned i;
if (!key)
@@ -1358,7 +1361,7 @@ mdb_dkey(MDB_val *key, char *buf)
#if 1
buf[0] = '\0';
for (i=0; imv_size; i++)
- ptr += sprintf(ptr, "%02x", *c++);
+ ptr += sprintf(ptr, "%02x", ((unsigned char*) key->mv_data)[i]);
#else
sprintf(buf, "%.*s", key->mv_size, key->mv_data);
#endif
@@ -1405,14 +1408,14 @@ mdb_page_list(MDB_page *mp)
}
nkeys = NUMKEYS(mp);
- mdb_print("%s %zu numkeys %d%s\n", type, pgno, nkeys, state);
+ mdb_print("%s %zu numkeys %u%s\n", type, pgno, nkeys, state);
for (i=0; imp_leaf2_ksize;
key.mv_data = LEAF2KEY(mp, i, nsize);
total += nsize;
- mdb_print("key %d: nsize %d, %s\n", i, nsize, DKEY(&key));
+ mdb_print("key %u: nsize %u, %s\n", i, nsize, DKEY(&key));
continue;
}
node = NODEPTR(mp, i);
@@ -1420,7 +1423,7 @@ mdb_page_list(MDB_page *mp)
key.mv_data = node->mn_data;
nsize = NODESIZE + key.mv_size;
if (IS_BRANCH(mp)) {
- mdb_print("key %d: page %zu, %s\n", i, NODEPGNO(node), DKEY(&key));
+ mdb_print("key %u: page %zu, %s\n", i, NODEPGNO(node), DKEY(&key));
total += nsize;
} else {
if (F_ISSET(node->mn_flags, F_BIGDATA))
@@ -1429,12 +1432,12 @@ mdb_page_list(MDB_page *mp)
nsize += NODEDSZ(node);
total += nsize;
nsize += sizeof(indx_t);
- mdb_print("key %d: nsize %d, %s%s\n",
+ mdb_print("key %u: nsize %u, %s%s\n",
i, nsize, DKEY(&key), mdb_leafnode_type(node));
}
total = EVEN(total);
}
- mdb_print("Total: header %d + contents %d + unused %d\n",
+ mdb_print("Total: header %u + contents %u + unused %u\n",
IS_LEAF2(mp) ? PAGEHDRSZ : PAGEBASE + mp->mp_lower, total, SIZELEFT(mp));
}
@@ -5651,7 +5654,7 @@ mdb_ovpage_free(MDB_cursor *mc, MDB_page *mp)
MDB_ID pn = pg << 1;
int rc;
- mdb_debug("free ov page %zu (%d)", pg, ovpages);
+ mdb_debug("free ov page %zu (%u)", pg, ovpages);
/* If the page is dirty or on the spill list we just acquired it,
* so we should give it back to our current free list, if any.
* Otherwise put it onto the list of pages we freed in this txn.
diff --git a/mdb_copy.1 b/mdb_copy.1
index 2cadb3ac..73a05012 100644
--- a/mdb_copy.1
+++ b/mdb_copy.1
@@ -18,7 +18,7 @@
.\"
.\" ---
.\"
-.\" Copyright 2012-2014 Howard Chu, Symas Corp. All Rights Reserved.
+.\" Copyright 2012-2016 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDB_COPY 1 "2014/06/20" "LMDB 0.9.14"
.SH NAME
diff --git a/mdb_copy.c b/mdb_copy.c
index f2db960e..5023b05d 100644
--- a/mdb_copy.c
+++ b/mdb_copy.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2012-2014 Howard Chu, Symas Corp.
+ * Copyright 2012-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mdb_dump.1 b/mdb_dump.1
index ead2d92a..0d23c15b 100644
--- a/mdb_dump.1
+++ b/mdb_dump.1
@@ -18,7 +18,7 @@
.\"
.\" ---
.\"
-.\" Copyright 2014 Howard Chu, Symas Corp. All Rights Reserved.
+.\" Copyright 2014-2016 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDB_DUMP 1 "2014/06/20" "LMDB 0.9.14"
.SH NAME
diff --git a/mdb_dump.c b/mdb_dump.c
index b5f3af6c..3b67e3b4 100644
--- a/mdb_dump.c
+++ b/mdb_dump.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -147,7 +147,7 @@ static int dumpit(MDB_txn *txn, MDB_dbi dbi, char *name)
rc = mdb_cursor_open(txn, dbi, &mc);
if (rc) return rc;
- while ((rc = mdb_cursor_get(mc, &key, &data, MDB_NEXT) == MDB_SUCCESS)) {
+ while ((rc = mdb_cursor_get(mc, &key, &data, MDB_NEXT)) == MDB_SUCCESS) {
if (gotsig) {
rc = EINTR;
break;
diff --git a/mdb_load.c b/mdb_load.c
index 2d89a501..a1d2755d 100644
--- a/mdb_load.c
+++ b/mdb_load.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mdb_stat.1 b/mdb_stat.1
index f2739bb4..aa1d3348 100644
--- a/mdb_stat.1
+++ b/mdb_stat.1
@@ -18,7 +18,7 @@
.\"
.\" ---
.\"
-.\" Copyright 2012-2014 Howard Chu, Symas Corp. All Rights Reserved.
+.\" Copyright 2012-2016 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDB_STAT 1 "2014/06/20" "LMDB 0.9.14"
.SH NAME
diff --git a/mdb_stat.c b/mdb_stat.c
index ab523467..03565ed4 100644
--- a/mdb_stat.c
+++ b/mdb_stat.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mdbx.c b/mdbx.c
index 7281147f..fae09fbd 100644
--- a/mdbx.c
+++ b/mdbx.c
@@ -49,12 +49,11 @@ mdbx_setup_debug(int flags, MDBX_debug_func* logger, long edge_txn) {
mdb_runtime_flags = flags;
if (logger != (MDBX_debug_func*) MDBX_DBG_DNT)
mdb_debug_logger = logger;
+ if (edge_txn != (long) MDBX_DBG_DNT) {
#if MDB_DEBUG
- if (edge_txn != (long) MDBX_DBG_DNT)
mdb_debug_edge = edge_txn;
-#else
- (void) edge_txn;
#endif
+ }
return ret;
}
diff --git a/midl.c b/midl.c
index 9dcad71a..bfe22715 100644
--- a/midl.c
+++ b/midl.c
@@ -22,7 +22,7 @@
*
* ---
*
- * Copyright 2000-2014 The OpenLDAP Foundation.
+ * Copyright 2000-2016 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/midl.h b/midl.h
index 2d6f2753..360b068d 100644
--- a/midl.h
+++ b/midl.h
@@ -30,7 +30,7 @@
*
* ---
*
- * Copyright 2000-2014 The OpenLDAP Foundation.
+ * Copyright 2000-2016 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mtest0.c b/mtest0.c
index 9b86cc0c..330c72e8 100644
--- a/mtest0.c
+++ b/mtest0.c
@@ -20,7 +20,7 @@
* along with this program. If not, see .
*
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mtest2.c b/mtest2.c
index f9860c66..b2c76459 100644
--- a/mtest2.c
+++ b/mtest2.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mtest3.c b/mtest3.c
index b1d30ca3..7272b2dc 100644
--- a/mtest3.c
+++ b/mtest3.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mtest4.c b/mtest4.c
index 5cec46b7..48ed0eab 100644
--- a/mtest4.c
+++ b/mtest4.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mtest5.c b/mtest5.c
index 31c92f01..1540ba02 100644
--- a/mtest5.c
+++ b/mtest5.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/mtest6.c b/mtest6.c
index b150f1c4..d5672888 100644
--- a/mtest6.c
+++ b/mtest6.c
@@ -21,7 +21,7 @@
*
* ---
*
- * Copyright 2011-2014 Howard Chu, Symas Corp.
+ * Copyright 2011-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/sample-bdb.txt b/sample-bdb.txt
index 165585b9..d01cc29b 100644
--- a/sample-bdb.txt
+++ b/sample-bdb.txt
@@ -24,7 +24,7 @@
*
* ---
*
- * Copyright 2012-2014 Howard Chu, Symas Corp.
+ * Copyright 2012-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/sample-mdb.txt b/sample-mdb.txt
index 7ad5769d..6b0eda10 100644
--- a/sample-mdb.txt
+++ b/sample-mdb.txt
@@ -24,7 +24,7 @@
*
* ---
*
- * Copyright 2012-2014 Howard Chu, Symas Corp.
+ * Copyright 2012-2016 Howard Chu, Symas Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without