| |
@@ -0,0 +1,182 @@
|
| |
+ From bbdf47a9252040a5e42e015cb636380b88e9caa8 Mon Sep 17 00:00:00 2001
|
| |
+ From: Thierry Bordaz <tbordaz@redhat.com>
|
| |
+ Date: Tue, 18 May 2021 19:16:30 +0200
|
| |
+ Subject: [PATCH] Issue 4765 - database suffix unexpectdly changed from .db to
|
| |
+ .db4 (#4766)
|
| |
+
|
| |
+ * Issue 4765 - database suffix unexpectdly changed from .db to .db4
|
| |
+
|
| |
+ * Issue 4765 - database suffix unexpectdly changed from .db to .db4 - fix some compilation warnings
|
| |
+ ---
|
| |
+ ldap/servers/slapd/back-ldbm/back-ldbm.h | 9 ---------
|
| |
+ ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c | 1 +
|
| |
+ ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c | 5 +++++
|
| |
+ ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h | 11 +++++++++++
|
| |
+ ldap/servers/slapd/back-ldbm/dblayer.c | 9 +++++++++
|
| |
+ ldap/servers/slapd/back-ldbm/dblayer.h | 3 +++
|
| |
+ ldap/servers/slapd/back-ldbm/proto-back-ldbm.h | 2 ++
|
| |
+ ldap/servers/slapd/back-ldbm/vlv_srch.c | 2 +-
|
| |
+ 8 files changed, 32 insertions(+), 10 deletions(-)
|
| |
+
|
| |
+ diff --git a/ldap/servers/slapd/back-ldbm/back-ldbm.h b/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
| |
+ index ddac99541..50b0996cb 100644
|
| |
+ --- a/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
| |
+ +++ b/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
| |
+ @@ -66,14 +66,6 @@ typedef unsigned short u_int16_t;
|
| |
+
|
| |
+ #define ID2ENTRY "id2entry" /* main db file name: ID2ENTRY+LDBM_SUFFIX */
|
| |
+
|
| |
+ -#if 1000 * DB_VERSION_MAJOR + 100 * DB_VERSION_MINOR >= 5000
|
| |
+ -#define LDBM_SUFFIX_OLD ".db4"
|
| |
+ -#define LDBM_SUFFIX ".db"
|
| |
+ -#else
|
| |
+ -#define LDBM_SUFFIX_OLD ".db3"
|
| |
+ -#define LDBM_SUFFIX ".db4"
|
| |
+ -#endif
|
| |
+ -
|
| |
+ #define MEGABYTE (1024 * 1024)
|
| |
+ #define GIGABYTE (1024 * MEGABYTE)
|
| |
+
|
| |
+ @@ -143,7 +135,6 @@ typedef unsigned short u_int16_t;
|
| |
+ #define LDBM_VERSION_40 "Netscape-ldbm/4.0"
|
| |
+ #define LDBM_VERSION_30 "Netscape-ldbm/3.0"
|
| |
+ #define LDBM_VERSION_31 "Netscape-ldbm/3.1"
|
| |
+ -#define LDBM_FILENAME_SUFFIX LDBM_SUFFIX
|
| |
+ #define DBVERSION_FILENAME "DBVERSION"
|
| |
+ /* 0 here means to let the autotuning reset the value on first run */
|
| |
+ /* cache can't get any smaller than this (in bytes) */
|
| |
+ diff --git a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c
|
| |
+ index 65a2405d8..11a65e806 100644
|
| |
+ --- a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c
|
| |
+ +++ b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_config.c
|
| |
+ @@ -125,6 +125,7 @@ int bdb_init(struct ldbminfo *li, config_info *config_array)
|
| |
+ priv->dblayer_dbi_txn_abort_fn = &bdb_dbi_txn_abort;
|
| |
+ priv->dblayer_get_entries_count_fn = &bdb_get_entries_count;
|
| |
+ priv->dblayer_cursor_get_count_fn = &bdb_public_cursor_get_count;
|
| |
+ + priv->dblayer_get_db_suffix_fn = &bdb_public_get_db_suffix;
|
| |
+
|
| |
+ bdb_fake_priv = *priv; /* Copy the callbaks for bdb_be() */
|
| |
+ return 0;
|
| |
+ diff --git a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c
|
| |
+ index 186c11cc3..455596a92 100644
|
| |
+ --- a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c
|
| |
+ +++ b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.c
|
| |
+ @@ -6713,3 +6713,8 @@ bdb_public_cursor_get_count(dbi_cursor_t *cursor, dbi_recno_t *count)
|
| |
+ int rc = cur->c_count(cur, count, 0);
|
| |
+ return bdb_map_error(__FUNCTION__, rc);
|
| |
+ }
|
| |
+ +
|
| |
+ +const char *bdb_public_get_db_suffix(void)
|
| |
+ +{
|
| |
+ + return LDBM_FILENAME_SUFFIX;
|
| |
+ +}
|
| |
+ diff --git a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h
|
| |
+ index 32430e2af..924656998 100644
|
| |
+ --- a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h
|
| |
+ +++ b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_layer.h
|
| |
+ @@ -13,6 +13,16 @@
|
| |
+
|
| |
+ #define BDB_CONFIG(li) ((bdb_config *)(li)->li_dblayer_config)
|
| |
+
|
| |
+ +#if 1000 * DB_VERSION_MAJOR + 100 * DB_VERSION_MINOR >= 5000
|
| |
+ +#define LDBM_SUFFIX_OLD ".db4"
|
| |
+ +#define LDBM_SUFFIX ".db"
|
| |
+ +#else
|
| |
+ +#define LDBM_SUFFIX_OLD ".db3"
|
| |
+ +#define LDBM_SUFFIX ".db4"
|
| |
+ +#endif
|
| |
+ +
|
| |
+ +#define LDBM_FILENAME_SUFFIX LDBM_SUFFIX
|
| |
+ +
|
| |
+ typedef struct bdb_db_env
|
| |
+ {
|
| |
+ DB_ENV *bdb_DB_ENV;
|
| |
+ @@ -133,6 +143,7 @@ dblayer_dbi_txn_commit_fn_t bdb_dbi_txn_commit;
|
| |
+ dblayer_dbi_txn_abort_fn_t bdb_dbi_txn_abort;
|
| |
+ dblayer_get_entries_count_fn_t bdb_get_entries_count;
|
| |
+ dblayer_cursor_get_count_fn_t bdb_public_cursor_get_count;
|
| |
+ +dblayer_get_db_suffix_fn_t bdb_public_get_db_suffix;
|
| |
+
|
| |
+ /* instance functions */
|
| |
+ int bdb_instance_cleanup(struct ldbm_instance *inst);
|
| |
+ diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c
|
| |
+ index c5ff6cba9..bf56df42a 100644
|
| |
+ --- a/ldap/servers/slapd/back-ldbm/dblayer.c
|
| |
+ +++ b/ldap/servers/slapd/back-ldbm/dblayer.c
|
| |
+ @@ -1370,3 +1370,12 @@ dblayer_pop_pvt_txn(void)
|
| |
+ }
|
| |
+ return;
|
| |
+ }
|
| |
+ +
|
| |
+ +const char *
|
| |
+ +dblayer_get_db_suffix(Slapi_Backend *be)
|
| |
+ +{
|
| |
+ + struct ldbminfo *li = be ? (struct ldbminfo *)be->be_database->plg_private : NULL;
|
| |
+ + dblayer_private *prv = li ? (dblayer_private *)li->li_dblayer_private : NULL;
|
| |
+ +
|
| |
+ + return prv ? prv->dblayer_get_db_suffix_fn() : NULL;
|
| |
+ +}
|
| |
+ diff --git a/ldap/servers/slapd/back-ldbm/dblayer.h b/ldap/servers/slapd/back-ldbm/dblayer.h
|
| |
+ index 99acfd1ab..051035f3f 100644
|
| |
+ --- a/ldap/servers/slapd/back-ldbm/dblayer.h
|
| |
+ +++ b/ldap/servers/slapd/back-ldbm/dblayer.h
|
| |
+ @@ -109,6 +109,7 @@ typedef int dblayer_dbi_txn_commit_fn_t(dbi_txn_t *txn);
|
| |
+ typedef int dblayer_dbi_txn_abort_fn_t(dbi_txn_t *txn);
|
| |
+ typedef int dblayer_get_entries_count_fn_t(dbi_db_t *db, int *count);
|
| |
+ typedef int dblayer_cursor_get_count_fn_t(dbi_cursor_t *cursor, dbi_recno_t *count);
|
| |
+ +typedef const char *dblayer_get_db_suffix_fn_t(void);
|
| |
+
|
| |
+ struct dblayer_private
|
| |
+ {
|
| |
+ @@ -178,6 +179,7 @@ struct dblayer_private
|
| |
+ dblayer_dbi_txn_abort_fn_t *dblayer_dbi_txn_abort_fn;
|
| |
+ dblayer_get_entries_count_fn_t *dblayer_get_entries_count_fn;
|
| |
+ dblayer_cursor_get_count_fn_t *dblayer_cursor_get_count_fn;
|
| |
+ + dblayer_get_db_suffix_fn_t *dblayer_get_db_suffix_fn;
|
| |
+ };
|
| |
+
|
| |
+ #define DBLAYER_PRIV_SET_DATA_DIR 0x1
|
| |
+ @@ -188,6 +190,7 @@ back_txn *dblayer_get_pvt_txn(void);
|
| |
+ void dblayer_pop_pvt_txn(void);
|
| |
+
|
| |
+ int dblayer_delete_indices(ldbm_instance *inst);
|
| |
+ +const char *dblayer_get_db_suffix(Slapi_Backend *be);
|
| |
+
|
| |
+
|
| |
+ /* Return the last four characters of a string; used for comparing extensions. */
|
| |
+ diff --git a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
|
| |
+ index 22f2d1103..dbe5dca73 100644
|
| |
+ --- a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
|
| |
+ +++ b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
|
| |
+ @@ -142,6 +142,8 @@ void dblayer_restore_file_update(struct ldbminfo *li, char *directory);
|
| |
+ int dblayer_import_file_init(ldbm_instance *inst);
|
| |
+ void dblayer_import_file_update(ldbm_instance *inst);
|
| |
+ int dblayer_import_file_check(ldbm_instance *inst);
|
| |
+ +const char *dblayer_get_db_suffix(Slapi_Backend *be);
|
| |
+ +
|
| |
+
|
| |
+ /*
|
| |
+ * dn2entry.c
|
| |
+ diff --git a/ldap/servers/slapd/back-ldbm/vlv_srch.c b/ldap/servers/slapd/back-ldbm/vlv_srch.c
|
| |
+ index 4dd3804c9..6fd1b3880 100644
|
| |
+ --- a/ldap/servers/slapd/back-ldbm/vlv_srch.c
|
| |
+ +++ b/ldap/servers/slapd/back-ldbm/vlv_srch.c
|
| |
+ @@ -30,7 +30,6 @@ char *const type_vlvEnabled = "vlvEnabled";
|
| |
+ char *const type_vlvUses = "vlvUses";
|
| |
+
|
| |
+ static const char *file_prefix = "vlv#"; /* '#' used to avoid collision with real attributes */
|
| |
+ -static const char *file_suffix = LDBM_FILENAME_SUFFIX;
|
| |
+
|
| |
+ static int vlvIndex_createfilename(struct vlvIndex *pIndex, char **ppc);
|
| |
+
|
| |
+ @@ -514,6 +513,7 @@ void
|
| |
+ vlvIndex_init(struct vlvIndex *p, backend *be, struct vlvSearch *pSearch, const Slapi_Entry *e)
|
| |
+ {
|
| |
+ struct ldbminfo *li = (struct ldbminfo *)be->be_database->plg_private;
|
| |
+ + const char *file_suffix = dblayer_get_db_suffix(be);
|
| |
+ char *filename = NULL;
|
| |
+
|
| |
+ if (NULL == p)
|
| |
+ --
|
| |
+ 2.30.2
|
| |
+
|
| |