smdb1.c (66494) | smdb1.c (71345) |
---|---|
1/* 2** Copyright (c) 1999-2000 Sendmail, Inc. and its suppliers. 3** All rights reserved. 4** 5** By using this file, you agree to the terms and conditions set 6** forth in the LICENSE file which can be found at the top level of 7** the sendmail distribution. 8*/ 9 10#ifndef lint | 1/* 2** Copyright (c) 1999-2000 Sendmail, Inc. and its suppliers. 3** All rights reserved. 4** 5** By using this file, you agree to the terms and conditions set 6** forth in the LICENSE file which can be found at the top level of 7** the sendmail distribution. 8*/ 9 10#ifndef lint |
11static char id[] = "@(#)$Id: smdb1.c,v 8.43.4.1 2000/08/24 17:08:00 gshapiro Exp $"; | 11static char id[] = "@(#)$Id: smdb1.c,v 8.43.4.3 2000/10/05 23:06:30 gshapiro Exp $"; |
12#endif /* ! lint */ 13 14#include <unistd.h> 15#include <stdlib.h> 16#include <fcntl.h> 17 18#include <sendmail/sendmail.h> 19#include <libsmdb/smdb.h> --- 150 unchanged lines hidden (view full) --- 170 171int 172smdb1_del(database, key, flags) 173 SMDB_DATABASE *database; 174 SMDB_DBENT *key; 175 u_int flags; 176{ 177 DB *db = ((SMDB_DB1_DATABASE *) database->smdb_impl)->smdb1_db; | 12#endif /* ! lint */ 13 14#include <unistd.h> 15#include <stdlib.h> 16#include <fcntl.h> 17 18#include <sendmail/sendmail.h> 19#include <libsmdb/smdb.h> --- 150 unchanged lines hidden (view full) --- 170 171int 172smdb1_del(database, key, flags) 173 SMDB_DATABASE *database; 174 SMDB_DBENT *key; 175 u_int flags; 176{ 177 DB *db = ((SMDB_DB1_DATABASE *) database->smdb_impl)->smdb1_db; |
178 DBT dbkey; |
|
178 | 179 |
179 return db->del(db, &key->db, flags); | 180 memset(&dbkey, '\0', sizeof dbkey); 181 dbkey.data = key->data; 182 dbkey.size = key->size; 183 return db->del(db, &dbkey, flags); |
180} 181 182int 183smdb1_fd(database, fd) 184 SMDB_DATABASE *database; 185 int *fd; 186{ 187 DB *db = ((SMDB_DB1_DATABASE *) database->smdb_impl)->smdb1_db; --- 19 unchanged lines hidden (view full) --- 207smdb1_get(database, key, data, flags) 208 SMDB_DATABASE *database; 209 SMDB_DBENT *key; 210 SMDB_DBENT *data; 211 u_int flags; 212{ 213 int result; 214 DB *db = ((SMDB_DB1_DATABASE *) database->smdb_impl)->smdb1_db; | 184} 185 186int 187smdb1_fd(database, fd) 188 SMDB_DATABASE *database; 189 int *fd; 190{ 191 DB *db = ((SMDB_DB1_DATABASE *) database->smdb_impl)->smdb1_db; --- 19 unchanged lines hidden (view full) --- 211smdb1_get(database, key, data, flags) 212 SMDB_DATABASE *database; 213 SMDB_DBENT *key; 214 SMDB_DBENT *data; 215 u_int flags; 216{ 217 int result; 218 DB *db = ((SMDB_DB1_DATABASE *) database->smdb_impl)->smdb1_db; |
219 DBT dbkey, dbdata; |
|
215 | 220 |
216 result = db->get(db, &key->db, &data->db, flags); | 221 memset(&dbdata, '\0', sizeof dbdata); 222 memset(&dbkey, '\0', sizeof dbkey); 223 dbkey.data = key->data; 224 dbkey.size = key->size; 225 226 result = db->get(db, &dbkey, &dbdata, flags); |
217 if (result != 0) 218 { 219 if (result == 1) 220 return SMDBE_NOT_FOUND; 221 return errno; 222 } | 227 if (result != 0) 228 { 229 if (result == 1) 230 return SMDBE_NOT_FOUND; 231 return errno; 232 } |
233 data->data = dbdata.data; 234 data->size = dbdata.size; |
|
223 return SMDBE_OK; 224} 225 226int 227smdb1_put(database, key, data, flags) 228 SMDB_DATABASE *database; 229 SMDB_DBENT *key; 230 SMDB_DBENT *data; 231 u_int flags; 232{ 233 DB *db = ((SMDB_DB1_DATABASE *) database->smdb_impl)->smdb1_db; | 235 return SMDBE_OK; 236} 237 238int 239smdb1_put(database, key, data, flags) 240 SMDB_DATABASE *database; 241 SMDB_DBENT *key; 242 SMDB_DBENT *data; 243 u_int flags; 244{ 245 DB *db = ((SMDB_DB1_DATABASE *) database->smdb_impl)->smdb1_db; |
246 DBT dbkey, dbdata; |
|
234 | 247 |
235 return db->put(db, &key->db, &data->db, 236 smdb_put_flags_to_db1_flags(flags)); | 248 memset(&dbdata, '\0', sizeof dbdata); 249 memset(&dbkey, '\0', sizeof dbkey); 250 dbkey.data = key->data; 251 dbkey.size = key->size; 252 dbdata.data = data->data; 253 dbdata.size = data->size; 254 255 return db->put(db, &dbkey, &dbdata, 256 smdb_put_flags_to_db1_flags(flags)); |
237} 238 239int 240smdb1_set_owner(database, uid, gid) 241 SMDB_DATABASE *database; 242 uid_t uid; 243 gid_t gid; 244{ --- 59 unchanged lines hidden (view full) --- 304 SMDB_DBENT *value; 305 SMDB_FLAG flags; 306{ 307 int db1_flags; 308 int result; 309 SMDB_DB1_CURSOR *db1_cursor = (SMDB_DB1_CURSOR *) cursor->smdbc_impl; 310 SMDB_DB1_DATABASE *db1 = db1_cursor->db; 311 DB *db = db1->smdb1_db; | 257} 258 259int 260smdb1_set_owner(database, uid, gid) 261 SMDB_DATABASE *database; 262 uid_t uid; 263 gid_t gid; 264{ --- 59 unchanged lines hidden (view full) --- 324 SMDB_DBENT *value; 325 SMDB_FLAG flags; 326{ 327 int db1_flags; 328 int result; 329 SMDB_DB1_CURSOR *db1_cursor = (SMDB_DB1_CURSOR *) cursor->smdbc_impl; 330 SMDB_DB1_DATABASE *db1 = db1_cursor->db; 331 DB *db = db1->smdb1_db; |
332 DBT dbkey, dbdata; |
|
312 | 333 |
334 memset(&dbdata, '\0', sizeof dbdata); 335 memset(&dbkey, '\0', sizeof dbkey); 336 |
|
313 db1_flags = smdb_cursor_get_flags_to_smdb1(flags); | 337 db1_flags = smdb_cursor_get_flags_to_smdb1(flags); |
314 result = db->seq(db, &key->db, &value->db, db1_flags); | 338 result = db->seq(db, &dbkey, &dbdata, db1_flags); |
315 if (result == -1) 316 return errno; 317 if (result == 1) 318 return SMDBE_LAST_ENTRY; | 339 if (result == -1) 340 return errno; 341 if (result == 1) 342 return SMDBE_LAST_ENTRY; |
343 value->data = dbdata.data; 344 value->size = dbdata.size; 345 key->data = dbkey.data; 346 key->size = dbkey.size; |
|
319 return SMDBE_OK; 320} 321 322int 323smdb1_cursor_put(cursor, key, value, flags) 324 SMDB_CURSOR *cursor; 325 SMDB_DBENT *key; 326 SMDB_DBENT *value; 327 SMDB_FLAG flags; 328{ 329 SMDB_DB1_CURSOR *db1_cursor = (SMDB_DB1_CURSOR *) cursor->smdbc_impl; 330 SMDB_DB1_DATABASE *db1 = db1_cursor->db; 331 DB *db = db1->smdb1_db; | 347 return SMDBE_OK; 348} 349 350int 351smdb1_cursor_put(cursor, key, value, flags) 352 SMDB_CURSOR *cursor; 353 SMDB_DBENT *key; 354 SMDB_DBENT *value; 355 SMDB_FLAG flags; 356{ 357 SMDB_DB1_CURSOR *db1_cursor = (SMDB_DB1_CURSOR *) cursor->smdbc_impl; 358 SMDB_DB1_DATABASE *db1 = db1_cursor->db; 359 DB *db = db1->smdb1_db; |
360 DBT dbkey, dbdata; |
|
332 | 361 |
333 return db->put(db, &key->db, &value->db, R_CURSOR); | 362 memset(&dbdata, '\0', sizeof dbdata); 363 memset(&dbkey, '\0', sizeof dbkey); 364 dbkey.data = key->data; 365 dbkey.size = key->size; 366 dbdata.data = value->data; 367 dbdata.size = value->size; 368 369 return db->put(db, &dbkey, &dbdata, R_CURSOR); |
334} 335 336int 337smdb1_cursor(database, cursor, flags) 338 SMDB_DATABASE *database; 339 SMDB_CURSOR **cursor; 340 u_int flags; 341{ --- 177 unchanged lines hidden --- | 370} 371 372int 373smdb1_cursor(database, cursor, flags) 374 SMDB_DATABASE *database; 375 SMDB_CURSOR **cursor; 376 u_int flags; 377{ --- 177 unchanged lines hidden --- |