summaryrefslogtreecommitdiffstats
path: root/contrib/sendmail/libsmdb/smdb2.c
diff options
context:
space:
mode:
authorgshapiro <gshapiro@FreeBSD.org>2001-01-21 22:17:06 +0000
committergshapiro <gshapiro@FreeBSD.org>2001-01-21 22:17:06 +0000
commit167a83e7b8733416154f871e39e86ba77eb1554d (patch)
tree4f725bdbff499cf7343d2eaeec15f8a0f0926140 /contrib/sendmail/libsmdb/smdb2.c
parentf84ac9120cb7d9f087e5dcb863c4bf25ba2985e6 (diff)
downloadFreeBSD-src-167a83e7b8733416154f871e39e86ba77eb1554d.zip
FreeBSD-src-167a83e7b8733416154f871e39e86ba77eb1554d.tar.gz
Import sendmail 8.11.2
Diffstat (limited to 'contrib/sendmail/libsmdb/smdb2.c')
-rw-r--r--contrib/sendmail/libsmdb/smdb2.c50
1 files changed, 44 insertions, 6 deletions
diff --git a/contrib/sendmail/libsmdb/smdb2.c b/contrib/sendmail/libsmdb/smdb2.c
index 8f46c20..e6f350a 100644
--- a/contrib/sendmail/libsmdb/smdb2.c
+++ b/contrib/sendmail/libsmdb/smdb2.c
@@ -8,7 +8,7 @@
*/
#ifndef lint
-static char id[] = "@(#)$Id: smdb2.c,v 8.53.2.1.2.2 2000/08/24 17:08:00 gshapiro Exp $";
+static char id[] = "@(#)$Id: smdb2.c,v 8.53.2.1.2.5 2000/10/26 00:39:56 geir Exp $";
#endif /* ! lint */
#include <fcntl.h>
@@ -250,8 +250,12 @@ smdb2_del(database, key, flags)
u_int flags;
{
DB *db = ((SMDB_DB2_DATABASE *) database->smdb_impl)->smdb2_db;
+ DBT dbkey;
- return db2_error_to_smdb(db->del(db, NULL, &key->db, flags));
+ memset(&dbkey, '\0', sizeof dbkey);
+ dbkey.data = key->data;
+ dbkey.size = key->size;
+ return db2_error_to_smdb(db->del(db, NULL, &dbkey, flags));
}
int
@@ -281,9 +285,19 @@ smdb2_get(database, key, data, flags)
SMDB_DBENT *data;
u_int flags;
{
+ int result;
DB *db = ((SMDB_DB2_DATABASE *) database->smdb_impl)->smdb2_db;
+ DBT dbkey, dbdata;
+
+ memset(&dbdata, '\0', sizeof dbdata);
+ memset(&dbkey, '\0', sizeof dbkey);
+ dbkey.data = key->data;
+ dbkey.size = key->size;
- return db2_error_to_smdb(db->get(db, NULL, &key->db, &data->db, flags));
+ result = db->get(db, NULL, &dbkey, &dbdata, flags);
+ data->data = dbdata.data;
+ data->size = dbdata.size;
+ return db2_error_to_smdb(result);
}
int
@@ -294,8 +308,16 @@ smdb2_put(database, key, data, flags)
u_int flags;
{
DB *db = ((SMDB_DB2_DATABASE *) database->smdb_impl)->smdb2_db;
+ DBT dbkey, dbdata;
- return db2_error_to_smdb(db->put(db, NULL, &key->db, &data->db,
+ memset(&dbdata, '\0', sizeof dbdata);
+ memset(&dbkey, '\0', sizeof dbkey);
+ dbkey.data = key->data;
+ dbkey.size = key->size;
+ dbdata.data = data->data;
+ dbdata.size = data->size;
+
+ return db2_error_to_smdb(db->put(db, NULL, &dbkey, &dbdata,
smdb_put_flags_to_db2_flags(flags)));
}
@@ -362,11 +384,19 @@ smdb2_cursor_get(cursor, key, value, flags)
int db2_flags;
int result;
DBC *dbc = (DBC *) cursor->smdbc_impl;
+ DBT dbkey, dbdata;
+
+ memset(&dbdata, '\0', sizeof dbdata);
+ memset(&dbkey, '\0', sizeof dbkey);
db2_flags = smdb_cursor_get_flags_to_db2(flags);
- result = dbc->c_get(dbc, &key->db, &value->db, db2_flags);
+ result = dbc->c_get(dbc, &dbkey, &dbdata, db2_flags);
if (result == DB_NOTFOUND)
return SMDBE_LAST_ENTRY;
+ key->data = dbkey.data;
+ key->size = dbkey.size;
+ value->data = dbdata.data;
+ value->size = dbdata.size;
return db2_error_to_smdb(result);
}
@@ -378,8 +408,16 @@ smdb2_cursor_put(cursor, key, value, flags)
SMDB_FLAG flags;
{
DBC *dbc = (DBC *) cursor->smdbc_impl;
+ DBT dbkey, dbdata;
+
+ memset(&dbdata, '\0', sizeof dbdata);
+ memset(&dbkey, '\0', sizeof dbkey);
+ dbkey.data = key->data;
+ dbkey.size = key->size;
+ dbdata.data = value->data;
+ dbdata.size = value->size;
- return db2_error_to_smdb(dbc->c_put(dbc, &key->db, &value->db, 0));
+ return db2_error_to_smdb(dbc->c_put(dbc, &dbkey, &dbdata, 0));
}
int
OpenPOWER on IntegriCloud