+++ /dev/null
-Submitted By: DJ Lucas <dj_AT_linuxfromscratch_DOT_org>
-Date: 2008-09-28
-Initial Package Version: 4.7.25
-Upstream Status: From Upstream
-Origin: http://www.oracle.com/technology/products/berkeley-db/db/update/4.7.25/patch.4.7.25.1
-Description: Update to latest patch for 4.7.25 release (avoid improperly named
- patches in LFS).
-
-diff -Naur db-4.7.25-orig/sequence/sequence.c db-4.7.25/sequence/sequence.c
---- db-4.7.25-orig/sequence/sequence.c 2008-05-05 15:25:09.000000000 -0500
-+++ db-4.7.25/sequence/sequence.c 2008-09-28 00:03:59.000000000 -0500
-@@ -187,7 +187,11 @@
- if ((ret = __db_get_flags(dbp, &tflags)) != 0)
- goto err;
-
-- if (DB_IS_READONLY(dbp)) {
-+ /*
-+ * We can let replication clients open sequences, but must
-+ * check later that they do not update them.
-+ */
-+ if (F_ISSET(dbp, DB_AM_RDONLY)) {
- ret = __db_rdonly(dbp->env, "DB_SEQUENCE->open");
- goto err;
- }
-@@ -244,6 +248,11 @@
- if ((ret != DB_NOTFOUND && ret != DB_KEYEMPTY) ||
- !LF_ISSET(DB_CREATE))
- goto err;
-+ if (IS_REP_CLIENT(env) &&
-+ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
-+ ret = __db_rdonly(env, "DB_SEQUENCE->open");
-+ goto err;
-+ }
- ret = 0;
-
- rp = &seq->seq_record;
-@@ -296,7 +305,12 @@
- */
- rp = seq->seq_data.data;
- if (rp->seq_version == DB_SEQUENCE_OLDVER) {
--oldver: rp->seq_version = DB_SEQUENCE_VERSION;
-+oldver: if (IS_REP_CLIENT(env) &&
-+ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
-+ ret = __db_rdonly(env, "DB_SEQUENCE->open");
-+ goto err;
-+ }
-+ rp->seq_version = DB_SEQUENCE_VERSION;
- if (!F_ISSET(env, ENV_LITTLEENDIAN)) {
- if (IS_DB_AUTO_COMMIT(dbp, txn)) {
- if ((ret =
-@@ -707,6 +721,13 @@
-
- MUTEX_LOCK(env, seq->mtx_seq);
-
-+ if (handle_check && IS_REP_CLIENT(env) &&
-+ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
-+ ret = __db_rdonly(env, "DB_SEQUENCE->get");
-+ goto err;
-+ }
-+
-+
- if (rp->seq_min + delta > rp->seq_max) {
- __db_errx(env, "Sequence overflow");
- ret = EINVAL;