Module: sip-router
Branch: master
Commit: 9d8d30c691fbd779ccf68c5f0f12cef17792934d
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=9d8d30c…
Author: Marius Zbihlei <marius.zbihlei(a)1and1.ro>
Committer: Marius Zbihlei <marius.zbihlei(a)1and1.ro>
Date: Mon Aug 30 17:19:17 2010 +0300
modules/db_berkeley Added a compatibility layer between libdb versions smaller than 4.6 and libdb4.6
Cursor method close() is not present in versions smaller than 4.6 thus the module would not compile.
Also c_* methods are marked as deprecated so the compatibility layer should be extended as well.
---
modules/db_berkeley/bdb_cmd.c | 3 +-
modules/db_berkeley/bdb_crs_compat.h | 43 ++++++++++++++++++++++++++++++++++
modules/db_berkeley/bdb_res.c | 3 +-
modules/db_berkeley/km_db_berkeley.c | 9 ++++---
4 files changed, 52 insertions(+), 6 deletions(-)
diff --git a/modules/db_berkeley/bdb_cmd.c b/modules/db_berkeley/bdb_cmd.c
index 64b46c3..8396690 100644
--- a/modules/db_berkeley/bdb_cmd.c
+++ b/modules/db_berkeley/bdb_cmd.c
@@ -44,6 +44,7 @@
#include "bdb_uri.h"
#include "bdb_res.h"
#include "bdb_lib.h"
+#include "bdb_crs_compat.h"
#define BDB_BUF_SIZE 1024
@@ -56,7 +57,7 @@ static void bdb_cmd_free(db_cmd_t* cmd, bdb_cmd_t* payload)
{
db_drv_free(&payload->gen);
if (payload->dbcp)
- payload->dbcp->c_close(payload->dbcp);
+ payload->dbcp->CLOSE_CURSOR(payload->dbcp);
if(payload->skey.s)
pkg_free(payload->skey.s);
pkg_free(payload);
diff --git a/modules/db_berkeley/bdb_crs_compat.h b/modules/db_berkeley/bdb_crs_compat.h
new file mode 100644
index 0000000..5d2d558
--- /dev/null
+++ b/modules/db_berkeley/bdb_crs_compat.h
@@ -0,0 +1,43 @@
+/*
+ * $Id$
+ *
+ * BDB Compatibility layer for SIP-router
+ *
+ * Copyright (C) 2010 Marius Zbihlei marius.zbihlei at 1and1 dot ro
+ *
+ * This file is part of SIP-router, a free SIP server.
+ *
+ * SIP-router is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * SIP-router is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+#ifndef BDB_CRS_COMPAT_H
+#define BDB_CRS_COMPAT_H
+
+#include <db.h>
+
+/* this is a compatibility layer for cursor close function
+ * Historically, the function was called c_close() but it became deprecated
+ * starting with version 4.6
+ */
+#if DB_VERSION_MAJOR < 4
+# define CLOSE_CURSOR c_close
+#else
+#if (DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR < 6)
+# define CLOSE_CURSOR c_close
+#else
+# define CLOSE_CURSOR close
+#endif
+#endif
+
+#endif //BDB_CRS_COMPAT_H
\ No newline at end of file
diff --git a/modules/db_berkeley/bdb_res.c b/modules/db_berkeley/bdb_res.c
index 75bd856..1b73335 100644
--- a/modules/db_berkeley/bdb_res.c
+++ b/modules/db_berkeley/bdb_res.c
@@ -32,6 +32,7 @@
#include "bdb_res.h"
#include "bdb_cmd.h"
+#include "bdb_crs_compat.h"
#include "../../mem/mem.h"
#include "../../dprint.h"
@@ -48,7 +49,7 @@ void bdb_res_free(db_res_t* res, bdb_res_t *payload)
if(bcmd->dbcp!=NULL)
{
- bcmd->dbcp->close(bcmd->dbcp);
+ bcmd->dbcp->CLOSE_CURSOR(bcmd->dbcp);
bcmd->dbcp = NULL;
}
db_drv_free(&payload->gen);
diff --git a/modules/db_berkeley/km_db_berkeley.c b/modules/db_berkeley/km_db_berkeley.c
index 9bab9d2..daeaca6 100644
--- a/modules/db_berkeley/km_db_berkeley.c
+++ b/modules/db_berkeley/km_db_berkeley.c
@@ -51,6 +51,7 @@
#include "km_bdb_res.h"
#include "km_bdb_mi.h"
#include "bdb_mod.h"
+#include "bdb_crs_compat.h"
#ifndef CFG_DIR
#define CFG_DIR "/tmp"
@@ -457,7 +458,7 @@ int km_bdb_query(db1_con_t* _con, db_key_t* _k, db_op_t* _op, db_val_t* _v,
i++;
}
- dbcp->c_close(dbcp);
+ dbcp->CLOSE_CURSOR(dbcp);
ret=0;
#ifdef BDB_EXTRA_DEBUG
@@ -520,7 +521,7 @@ int km_bdb_query(db1_con_t* _con, db_key_t* _k, db_op_t* _op, db_val_t* _v,
i++;
}
- dbcp->c_close(dbcp);
+ dbcp->CLOSE_CURSOR(dbcp);
BDB_CON_RESULT(_con) = *_r;
return 0;
}
@@ -834,7 +835,7 @@ int bdb_delete(db1_con_t* _h, db_key_t* _k, db_op_t* _op, db_val_t* _v, int _n)
ret = dbcp->c_del(dbcp, 0);
}
- dbcp->c_close(dbcp);
+ dbcp->CLOSE_CURSOR(dbcp);
return 0;
}
@@ -1006,7 +1007,7 @@ int _bdb_delete_cursor(db1_con_t* _h, db_key_t* _k, db_op_t* _op, db_val_t* _v,
error:
if(dbcp)
- dbcp->c_close(dbcp);
+ dbcp->CLOSE_CURSOR(dbcp);
if(_r)
db_free_result(_r);
if(lkey)
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#86 - dialplan reload, out of memory
User who did this - Juha Heinanen (jh)
----------
kim,
did you read dialplan README? if so, didn't adjusting fetch_rows help?
-- juha
----------
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=86#comment115
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.