mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
2494 lines
46 KiB
C
2494 lines
46 KiB
C
/* Do not edit: automatically built by gen_rpc.awk. */
|
|
#include "db_config.h"
|
|
|
|
#ifdef HAVE_RPC
|
|
#ifndef NO_SYSTEM_INCLUDES
|
|
#include <sys/types.h>
|
|
#include <rpc/rpc.h>
|
|
#include <rpc/xdr.h>
|
|
|
|
#include <errno.h>
|
|
#include <string.h>
|
|
#endif
|
|
#include "db_server.h"
|
|
|
|
#include "db_int.h"
|
|
#include "db_page.h"
|
|
#include "db_ext.h"
|
|
#include "mp.h"
|
|
#include "rpc_client_ext.h"
|
|
#include "txn.h"
|
|
|
|
#include "gen_client_ext.h"
|
|
|
|
int
|
|
__dbcl_env_cachesize(dbenv, gbytes, bytes, ncache)
|
|
DB_ENV * dbenv;
|
|
u_int32_t gbytes;
|
|
u_int32_t bytes;
|
|
int ncache;
|
|
{
|
|
CLIENT *cl;
|
|
__env_cachesize_msg req;
|
|
static __env_cachesize_reply *replyp = NULL;
|
|
int ret;
|
|
|
|
ret = 0;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___env_cachesize_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbenv == NULL)
|
|
req.dbenvcl_id = 0;
|
|
else
|
|
req.dbenvcl_id = dbenv->cl_id;
|
|
req.gbytes = gbytes;
|
|
req.bytes = bytes;
|
|
req.ncache = ncache;
|
|
|
|
replyp = __db_env_cachesize_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_env_close(dbenv, flags)
|
|
DB_ENV * dbenv;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__env_close_msg req;
|
|
static __env_close_reply *replyp = NULL;
|
|
int ret;
|
|
|
|
ret = 0;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___env_close_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbenv == NULL)
|
|
req.dbenvcl_id = 0;
|
|
else
|
|
req.dbenvcl_id = dbenv->cl_id;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_env_close_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_env_close_ret(dbenv, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_rpc_illegal(dbenv, name)
|
|
DB_ENV *dbenv;
|
|
char *name;
|
|
{
|
|
__db_err(dbenv,
|
|
"%s method meaningless in RPC environment", name);
|
|
return (__db_eopnotsup(dbenv));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_data_dir(dbenv, dir)
|
|
DB_ENV * dbenv;
|
|
const char * dir;
|
|
{
|
|
COMPQUIET(dir, NULL);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_data_dir"));
|
|
}
|
|
|
|
int
|
|
__dbcl_env_set_feedback(dbenv, func0)
|
|
DB_ENV * dbenv;
|
|
void (*func0) __P((DB_ENV *, int, int));
|
|
{
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "env_set_feedback"));
|
|
}
|
|
|
|
int
|
|
__dbcl_env_flags(dbenv, flags, onoff)
|
|
DB_ENV * dbenv;
|
|
u_int32_t flags;
|
|
int onoff;
|
|
{
|
|
CLIENT *cl;
|
|
__env_flags_msg req;
|
|
static __env_flags_reply *replyp = NULL;
|
|
int ret;
|
|
|
|
ret = 0;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___env_flags_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbenv == NULL)
|
|
req.dbenvcl_id = 0;
|
|
else
|
|
req.dbenvcl_id = dbenv->cl_id;
|
|
req.flags = flags;
|
|
req.onoff = onoff;
|
|
|
|
replyp = __db_env_flags_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lg_bsize(dbenv, bsize)
|
|
DB_ENV * dbenv;
|
|
u_int32_t bsize;
|
|
{
|
|
COMPQUIET(bsize, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lg_bsize"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lg_dir(dbenv, dir)
|
|
DB_ENV * dbenv;
|
|
const char * dir;
|
|
{
|
|
COMPQUIET(dir, NULL);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lg_dir"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lg_max(dbenv, max)
|
|
DB_ENV * dbenv;
|
|
u_int32_t max;
|
|
{
|
|
COMPQUIET(max, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lg_max"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lk_conflict(dbenv, conflicts, modes)
|
|
DB_ENV * dbenv;
|
|
u_int8_t * conflicts;
|
|
int modes;
|
|
{
|
|
COMPQUIET(conflicts, 0);
|
|
COMPQUIET(modes, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lk_conflict"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lk_detect(dbenv, detect)
|
|
DB_ENV * dbenv;
|
|
u_int32_t detect;
|
|
{
|
|
COMPQUIET(detect, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lk_detect"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lk_max(dbenv, max)
|
|
DB_ENV * dbenv;
|
|
u_int32_t max;
|
|
{
|
|
COMPQUIET(max, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lk_max"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lk_max_locks(dbenv, max)
|
|
DB_ENV * dbenv;
|
|
u_int32_t max;
|
|
{
|
|
COMPQUIET(max, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lk_max_locks"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lk_max_lockers(dbenv, max)
|
|
DB_ENV * dbenv;
|
|
u_int32_t max;
|
|
{
|
|
COMPQUIET(max, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lk_max_lockers"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_lk_max_objects(dbenv, max)
|
|
DB_ENV * dbenv;
|
|
u_int32_t max;
|
|
{
|
|
COMPQUIET(max, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_lk_max_objects"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_mp_mmapsize(dbenv, mmapsize)
|
|
DB_ENV * dbenv;
|
|
size_t mmapsize;
|
|
{
|
|
COMPQUIET(mmapsize, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_mp_mmapsize"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_mutex_locks(dbenv, do_lock)
|
|
DB_ENV * dbenv;
|
|
int do_lock;
|
|
{
|
|
COMPQUIET(do_lock, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_mutex_locks"));
|
|
}
|
|
|
|
int
|
|
__dbcl_env_open(dbenv, home, flags, mode)
|
|
DB_ENV * dbenv;
|
|
const char * home;
|
|
u_int32_t flags;
|
|
int mode;
|
|
{
|
|
CLIENT *cl;
|
|
__env_open_msg req;
|
|
static __env_open_reply *replyp = NULL;
|
|
int ret;
|
|
|
|
ret = 0;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___env_open_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbenv == NULL)
|
|
req.dbenvcl_id = 0;
|
|
else
|
|
req.dbenvcl_id = dbenv->cl_id;
|
|
if (home == NULL)
|
|
req.home = "";
|
|
else
|
|
req.home = (char *)home;
|
|
req.flags = flags;
|
|
req.mode = mode;
|
|
|
|
replyp = __db_env_open_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_env_open_ret(dbenv, home, flags, mode, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_env_paniccall(dbenv, func0)
|
|
DB_ENV * dbenv;
|
|
void (*func0) __P((DB_ENV *, int));
|
|
{
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "env_paniccall"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_recovery_init(dbenv, func0)
|
|
DB_ENV * dbenv;
|
|
int (*func0) __P((DB_ENV *));
|
|
{
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_recovery_init"));
|
|
}
|
|
|
|
int
|
|
__dbcl_env_remove(dbenv, home, flags)
|
|
DB_ENV * dbenv;
|
|
const char * home;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__env_remove_msg req;
|
|
static __env_remove_reply *replyp = NULL;
|
|
int ret;
|
|
|
|
ret = 0;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___env_remove_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbenv == NULL)
|
|
req.dbenvcl_id = 0;
|
|
else
|
|
req.dbenvcl_id = dbenv->cl_id;
|
|
if (home == NULL)
|
|
req.home = "";
|
|
else
|
|
req.home = (char *)home;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_env_remove_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_env_remove_ret(dbenv, home, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_set_shm_key(dbenv, shm_key)
|
|
DB_ENV * dbenv;
|
|
long shm_key;
|
|
{
|
|
COMPQUIET(shm_key, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_shm_key"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_tmp_dir(dbenv, dir)
|
|
DB_ENV * dbenv;
|
|
const char * dir;
|
|
{
|
|
COMPQUIET(dir, NULL);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_tmp_dir"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_tx_recover(dbenv, func0)
|
|
DB_ENV * dbenv;
|
|
int (*func0) __P((DB_ENV *, DBT *, DB_LSN *, db_recops));
|
|
{
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_tx_recover"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_tx_max(dbenv, max)
|
|
DB_ENV * dbenv;
|
|
u_int32_t max;
|
|
{
|
|
COMPQUIET(max, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_tx_max"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_tx_timestamp(dbenv, max)
|
|
DB_ENV * dbenv;
|
|
time_t * max;
|
|
{
|
|
COMPQUIET(max, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_tx_timestamp"));
|
|
}
|
|
|
|
int
|
|
__dbcl_set_verbose(dbenv, which, onoff)
|
|
DB_ENV * dbenv;
|
|
u_int32_t which;
|
|
int onoff;
|
|
{
|
|
COMPQUIET(which, 0);
|
|
COMPQUIET(onoff, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "set_verbose"));
|
|
}
|
|
|
|
int
|
|
__dbcl_txn_abort(txnp)
|
|
DB_TXN * txnp;
|
|
{
|
|
CLIENT *cl;
|
|
__txn_abort_msg req;
|
|
static __txn_abort_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = txnp->mgrp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___txn_abort_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (txnp == NULL)
|
|
req.txnpcl_id = 0;
|
|
else
|
|
req.txnpcl_id = txnp->txnid;
|
|
|
|
replyp = __db_txn_abort_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_txn_abort_ret(txnp, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_txn_begin(envp, parent, txnpp, flags)
|
|
DB_ENV * envp;
|
|
DB_TXN * parent;
|
|
DB_TXN ** txnpp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__txn_begin_msg req;
|
|
static __txn_begin_reply *replyp = NULL;
|
|
int ret;
|
|
|
|
ret = 0;
|
|
if (envp == NULL || envp->cl_handle == NULL) {
|
|
__db_err(envp, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___txn_begin_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)envp->cl_handle;
|
|
|
|
if (envp == NULL)
|
|
req.envpcl_id = 0;
|
|
else
|
|
req.envpcl_id = envp->cl_id;
|
|
if (parent == NULL)
|
|
req.parentcl_id = 0;
|
|
else
|
|
req.parentcl_id = parent->txnid;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_txn_begin_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(envp, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_txn_begin_ret(envp, parent, txnpp, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_txn_checkpoint(dbenv, kbyte, min)
|
|
DB_ENV * dbenv;
|
|
u_int32_t kbyte;
|
|
u_int32_t min;
|
|
{
|
|
COMPQUIET(kbyte, 0);
|
|
COMPQUIET(min, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "txn_checkpoint"));
|
|
}
|
|
|
|
int
|
|
__dbcl_txn_commit(txnp, flags)
|
|
DB_TXN * txnp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__txn_commit_msg req;
|
|
static __txn_commit_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = txnp->mgrp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___txn_commit_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (txnp == NULL)
|
|
req.txnpcl_id = 0;
|
|
else
|
|
req.txnpcl_id = txnp->txnid;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_txn_commit_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_txn_commit_ret(txnp, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_txn_prepare(txnp)
|
|
DB_TXN * txnp;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = txnp->mgrp->dbenv;
|
|
return (__dbcl_rpc_illegal(dbenv, "txn_prepare"));
|
|
}
|
|
|
|
int
|
|
__dbcl_txn_stat(dbenv, statp, func0)
|
|
DB_ENV * dbenv;
|
|
DB_TXN_STAT ** statp;
|
|
void *(*func0) __P((size_t));
|
|
{
|
|
COMPQUIET(statp, 0);
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "txn_stat"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_bt_compare(dbp, func0)
|
|
DB * dbp;
|
|
int (*func0) __P((DB *, const DBT *, const DBT *));
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_bt_compare"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_bt_maxkey(dbp, maxkey)
|
|
DB * dbp;
|
|
u_int32_t maxkey;
|
|
{
|
|
CLIENT *cl;
|
|
__db_bt_maxkey_msg req;
|
|
static __db_bt_maxkey_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_bt_maxkey_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.maxkey = maxkey;
|
|
|
|
replyp = __db_db_bt_maxkey_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_bt_minkey(dbp, minkey)
|
|
DB * dbp;
|
|
u_int32_t minkey;
|
|
{
|
|
CLIENT *cl;
|
|
__db_bt_minkey_msg req;
|
|
static __db_bt_minkey_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_bt_minkey_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.minkey = minkey;
|
|
|
|
replyp = __db_db_bt_minkey_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_bt_prefix(dbp, func0)
|
|
DB * dbp;
|
|
size_t (*func0) __P((DB *, const DBT *, const DBT *));
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_bt_prefix"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_set_append_recno(dbp, func0)
|
|
DB * dbp;
|
|
int (*func0) __P((DB *, DBT *, db_recno_t));
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_set_append_recno"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_cachesize(dbp, gbytes, bytes, ncache)
|
|
DB * dbp;
|
|
u_int32_t gbytes;
|
|
u_int32_t bytes;
|
|
int ncache;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(gbytes, 0);
|
|
COMPQUIET(bytes, 0);
|
|
COMPQUIET(ncache, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_cachesize"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_close(dbp, flags)
|
|
DB * dbp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_close_msg req;
|
|
static __db_close_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_close_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_close_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_close_ret(dbp, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_del(dbp, txnp, key, flags)
|
|
DB * dbp;
|
|
DB_TXN * txnp;
|
|
DBT * key;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_del_msg req;
|
|
static __db_del_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_del_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if (txnp == NULL)
|
|
req.txnpcl_id = 0;
|
|
else
|
|
req.txnpcl_id = txnp->txnid;
|
|
req.keydlen = key->dlen;
|
|
req.keydoff = key->doff;
|
|
req.keyflags = key->flags;
|
|
req.keydata.keydata_val = key->data;
|
|
req.keydata.keydata_len = key->size;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_del_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_extentsize(dbp, extentsize)
|
|
DB * dbp;
|
|
u_int32_t extentsize;
|
|
{
|
|
CLIENT *cl;
|
|
__db_extentsize_msg req;
|
|
static __db_extentsize_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_extentsize_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.extentsize = extentsize;
|
|
|
|
replyp = __db_db_extentsize_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_fd(dbp, fdp)
|
|
DB * dbp;
|
|
int * fdp;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(fdp, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_fd"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_feedback(dbp, func0)
|
|
DB * dbp;
|
|
void (*func0) __P((DB *, int, int));
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_feedback"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_flags(dbp, flags)
|
|
DB * dbp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_flags_msg req;
|
|
static __db_flags_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_flags_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_flags_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_get(dbp, txnp, key, data, flags)
|
|
DB * dbp;
|
|
DB_TXN * txnp;
|
|
DBT * key;
|
|
DBT * data;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_get_msg req;
|
|
static __db_get_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_get_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if (txnp == NULL)
|
|
req.txnpcl_id = 0;
|
|
else
|
|
req.txnpcl_id = txnp->txnid;
|
|
req.keydlen = key->dlen;
|
|
req.keydoff = key->doff;
|
|
req.keyflags = key->flags;
|
|
req.keydata.keydata_val = key->data;
|
|
req.keydata.keydata_len = key->size;
|
|
req.datadlen = data->dlen;
|
|
req.datadoff = data->doff;
|
|
req.dataflags = data->flags;
|
|
req.datadata.datadata_val = data->data;
|
|
req.datadata.datadata_len = data->size;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_get_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_get_ret(dbp, txnp, key, data, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_h_ffactor(dbp, ffactor)
|
|
DB * dbp;
|
|
u_int32_t ffactor;
|
|
{
|
|
CLIENT *cl;
|
|
__db_h_ffactor_msg req;
|
|
static __db_h_ffactor_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_h_ffactor_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.ffactor = ffactor;
|
|
|
|
replyp = __db_db_h_ffactor_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_h_hash(dbp, func0)
|
|
DB * dbp;
|
|
u_int32_t (*func0) __P((DB *, const void *, u_int32_t));
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_h_hash"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_h_nelem(dbp, nelem)
|
|
DB * dbp;
|
|
u_int32_t nelem;
|
|
{
|
|
CLIENT *cl;
|
|
__db_h_nelem_msg req;
|
|
static __db_h_nelem_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_h_nelem_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.nelem = nelem;
|
|
|
|
replyp = __db_db_h_nelem_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_key_range(dbp, txnp, key, range, flags)
|
|
DB * dbp;
|
|
DB_TXN * txnp;
|
|
DBT * key;
|
|
DB_KEY_RANGE * range;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_key_range_msg req;
|
|
static __db_key_range_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_key_range_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if (txnp == NULL)
|
|
req.txnpcl_id = 0;
|
|
else
|
|
req.txnpcl_id = txnp->txnid;
|
|
req.keydlen = key->dlen;
|
|
req.keydoff = key->doff;
|
|
req.keyflags = key->flags;
|
|
req.keydata.keydata_val = key->data;
|
|
req.keydata.keydata_len = key->size;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_key_range_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_key_range_ret(dbp, txnp, key, range, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_lorder(dbp, lorder)
|
|
DB * dbp;
|
|
int lorder;
|
|
{
|
|
CLIENT *cl;
|
|
__db_lorder_msg req;
|
|
static __db_lorder_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_lorder_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.lorder = lorder;
|
|
|
|
replyp = __db_db_lorder_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_malloc(dbp, func0)
|
|
DB * dbp;
|
|
void *(*func0) __P((size_t));
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_malloc"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_open(dbp, name, subdb, type, flags, mode)
|
|
DB * dbp;
|
|
const char * name;
|
|
const char * subdb;
|
|
DBTYPE type;
|
|
u_int32_t flags;
|
|
int mode;
|
|
{
|
|
CLIENT *cl;
|
|
__db_open_msg req;
|
|
static __db_open_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_open_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if (name == NULL)
|
|
req.name = "";
|
|
else
|
|
req.name = (char *)name;
|
|
if (subdb == NULL)
|
|
req.subdb = "";
|
|
else
|
|
req.subdb = (char *)subdb;
|
|
req.type = type;
|
|
req.flags = flags;
|
|
req.mode = mode;
|
|
|
|
replyp = __db_db_open_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_open_ret(dbp, name, subdb, type, flags, mode, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_pagesize(dbp, pagesize)
|
|
DB * dbp;
|
|
u_int32_t pagesize;
|
|
{
|
|
CLIENT *cl;
|
|
__db_pagesize_msg req;
|
|
static __db_pagesize_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_pagesize_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.pagesize = pagesize;
|
|
|
|
replyp = __db_db_pagesize_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_panic(dbp, func0)
|
|
DB * dbp;
|
|
void (*func0) __P((DB_ENV *, int));
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_panic"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_put(dbp, txnp, key, data, flags)
|
|
DB * dbp;
|
|
DB_TXN * txnp;
|
|
DBT * key;
|
|
DBT * data;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_put_msg req;
|
|
static __db_put_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_put_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if (txnp == NULL)
|
|
req.txnpcl_id = 0;
|
|
else
|
|
req.txnpcl_id = txnp->txnid;
|
|
req.keydlen = key->dlen;
|
|
req.keydoff = key->doff;
|
|
req.keyflags = key->flags;
|
|
req.keydata.keydata_val = key->data;
|
|
req.keydata.keydata_len = key->size;
|
|
req.datadlen = data->dlen;
|
|
req.datadoff = data->doff;
|
|
req.dataflags = data->flags;
|
|
req.datadata.datadata_val = data->data;
|
|
req.datadata.datadata_len = data->size;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_put_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_put_ret(dbp, txnp, key, data, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_realloc(dbp, func0)
|
|
DB * dbp;
|
|
void *(*func0) __P((void *, size_t));
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_realloc"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_re_delim(dbp, delim)
|
|
DB * dbp;
|
|
int delim;
|
|
{
|
|
CLIENT *cl;
|
|
__db_re_delim_msg req;
|
|
static __db_re_delim_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_re_delim_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.delim = delim;
|
|
|
|
replyp = __db_db_re_delim_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_re_len(dbp, len)
|
|
DB * dbp;
|
|
u_int32_t len;
|
|
{
|
|
CLIENT *cl;
|
|
__db_re_len_msg req;
|
|
static __db_re_len_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_re_len_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.len = len;
|
|
|
|
replyp = __db_db_re_len_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_re_pad(dbp, pad)
|
|
DB * dbp;
|
|
int pad;
|
|
{
|
|
CLIENT *cl;
|
|
__db_re_pad_msg req;
|
|
static __db_re_pad_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_re_pad_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.pad = pad;
|
|
|
|
replyp = __db_db_re_pad_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_re_source(dbp, re_source)
|
|
DB * dbp;
|
|
const char * re_source;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(re_source, NULL);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_re_source"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_remove(dbp, name, subdb, flags)
|
|
DB * dbp;
|
|
const char * name;
|
|
const char * subdb;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_remove_msg req;
|
|
static __db_remove_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_remove_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if (name == NULL)
|
|
req.name = "";
|
|
else
|
|
req.name = (char *)name;
|
|
if (subdb == NULL)
|
|
req.subdb = "";
|
|
else
|
|
req.subdb = (char *)subdb;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_remove_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_remove_ret(dbp, name, subdb, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_rename(dbp, name, subdb, newname, flags)
|
|
DB * dbp;
|
|
const char * name;
|
|
const char * subdb;
|
|
const char * newname;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_rename_msg req;
|
|
static __db_rename_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_rename_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if (name == NULL)
|
|
req.name = "";
|
|
else
|
|
req.name = (char *)name;
|
|
if (subdb == NULL)
|
|
req.subdb = "";
|
|
else
|
|
req.subdb = (char *)subdb;
|
|
if (newname == NULL)
|
|
req.newname = "";
|
|
else
|
|
req.newname = (char *)newname;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_rename_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_rename_ret(dbp, name, subdb, newname, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_stat(dbp, sp, func0, flags)
|
|
DB * dbp;
|
|
void * sp;
|
|
void *(*func0) __P((size_t));
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_stat_msg req;
|
|
static __db_stat_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_stat_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (func0 != NULL) {
|
|
__db_err(sp, "User functions not supported in RPC.");
|
|
return (EINVAL);
|
|
}
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_stat_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_stat_ret(dbp, sp, func0, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_swapped(dbp)
|
|
DB * dbp;
|
|
{
|
|
CLIENT *cl;
|
|
__db_swapped_msg req;
|
|
static __db_swapped_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_swapped_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
|
|
replyp = __db_db_swapped_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_sync(dbp, flags)
|
|
DB * dbp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_sync_msg req;
|
|
static __db_sync_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_sync_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_sync_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_upgrade(dbp, fname, flags)
|
|
DB * dbp;
|
|
const char * fname;
|
|
u_int32_t flags;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = dbp->dbenv;
|
|
COMPQUIET(fname, NULL);
|
|
COMPQUIET(flags, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "db_upgrade"));
|
|
}
|
|
|
|
int
|
|
__dbcl_db_cursor(dbp, txnp, dbcpp, flags)
|
|
DB * dbp;
|
|
DB_TXN * txnp;
|
|
DBC ** dbcpp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_cursor_msg req;
|
|
static __db_cursor_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_cursor_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if (txnp == NULL)
|
|
req.txnpcl_id = 0;
|
|
else
|
|
req.txnpcl_id = txnp->txnid;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_cursor_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_db_cursor_ret(dbp, txnp, dbcpp, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
static int __dbcl_db_join_curslist __P((__db_join_curslist **, DBC **));
|
|
static void __dbcl_db_join_cursfree __P((__db_join_curslist **));
|
|
int
|
|
__dbcl_db_join(dbp, curs, dbcp, flags)
|
|
DB * dbp;
|
|
DBC ** curs;
|
|
DBC ** dbcp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__db_join_msg req;
|
|
static __db_join_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___db_join_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbp == NULL)
|
|
req.dbpcl_id = 0;
|
|
else
|
|
req.dbpcl_id = dbp->cl_id;
|
|
if ((ret = __dbcl_db_join_curslist(&req.curslist, curs)) != 0)
|
|
goto out;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_db_join_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
__dbcl_db_join_cursfree(&req.curslist);
|
|
return (__dbcl_db_join_ret(dbp, curs, dbcp, flags, replyp));
|
|
out:
|
|
__dbcl_db_join_cursfree(&req.curslist);
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_db_join_curslist(locp, pp)
|
|
__db_join_curslist **locp;
|
|
DBC ** pp;
|
|
{
|
|
DBC ** p;
|
|
u_int32_t *q;
|
|
int ret;
|
|
__db_join_curslist *nl, **nlp;
|
|
|
|
*locp = NULL;
|
|
if (pp == NULL)
|
|
return (0);
|
|
nlp = locp;
|
|
for (p = pp; *p != 0; p++) {
|
|
if ((ret = __os_malloc(NULL, sizeof(*nl), NULL, nlp)) != 0)
|
|
goto out;
|
|
nl = *nlp;
|
|
nl->next = NULL;
|
|
nl->ent.ent_val = NULL;
|
|
nl->ent.ent_len = 0;
|
|
if ((ret = __os_malloc(NULL, sizeof(u_int32_t), NULL, &nl->ent.ent_val)) != 0)
|
|
goto out;
|
|
q = (u_int32_t *)nl->ent.ent_val;
|
|
*q = (*p)->cl_id;
|
|
nl->ent.ent_len = sizeof(u_int32_t);
|
|
nlp = &nl->next;
|
|
}
|
|
return (0);
|
|
out:
|
|
__dbcl_db_join_cursfree(locp);
|
|
return (ret);
|
|
}
|
|
|
|
void
|
|
__dbcl_db_join_cursfree(locp)
|
|
__db_join_curslist **locp;
|
|
{
|
|
__db_join_curslist *nl, *nl1;
|
|
|
|
if (locp == NULL)
|
|
return;
|
|
for (nl = *locp; nl != NULL; nl = nl1) {
|
|
nl1 = nl->next;
|
|
if (nl->ent.ent_val)
|
|
__os_free(nl->ent.ent_val, nl->ent.ent_len);
|
|
__os_free(nl, sizeof(*nl));
|
|
}
|
|
}
|
|
|
|
int
|
|
__dbcl_dbc_close(dbc)
|
|
DBC * dbc;
|
|
{
|
|
CLIENT *cl;
|
|
__dbc_close_msg req;
|
|
static __dbc_close_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbc->dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___dbc_close_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbc == NULL)
|
|
req.dbccl_id = 0;
|
|
else
|
|
req.dbccl_id = dbc->cl_id;
|
|
|
|
replyp = __db_dbc_close_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_dbc_close_ret(dbc, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_dbc_count(dbc, countp, flags)
|
|
DBC * dbc;
|
|
db_recno_t * countp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__dbc_count_msg req;
|
|
static __dbc_count_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbc->dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___dbc_count_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbc == NULL)
|
|
req.dbccl_id = 0;
|
|
else
|
|
req.dbccl_id = dbc->cl_id;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_dbc_count_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_dbc_count_ret(dbc, countp, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_dbc_del(dbc, flags)
|
|
DBC * dbc;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__dbc_del_msg req;
|
|
static __dbc_del_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbc->dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___dbc_del_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbc == NULL)
|
|
req.dbccl_id = 0;
|
|
else
|
|
req.dbccl_id = dbc->cl_id;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_dbc_del_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
ret = replyp->status;
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_dbc_dup(dbc, dbcp, flags)
|
|
DBC * dbc;
|
|
DBC ** dbcp;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__dbc_dup_msg req;
|
|
static __dbc_dup_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbc->dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___dbc_dup_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbc == NULL)
|
|
req.dbccl_id = 0;
|
|
else
|
|
req.dbccl_id = dbc->cl_id;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_dbc_dup_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_dbc_dup_ret(dbc, dbcp, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_dbc_get(dbc, key, data, flags)
|
|
DBC * dbc;
|
|
DBT * key;
|
|
DBT * data;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__dbc_get_msg req;
|
|
static __dbc_get_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbc->dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___dbc_get_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbc == NULL)
|
|
req.dbccl_id = 0;
|
|
else
|
|
req.dbccl_id = dbc->cl_id;
|
|
req.keydlen = key->dlen;
|
|
req.keydoff = key->doff;
|
|
req.keyflags = key->flags;
|
|
req.keydata.keydata_val = key->data;
|
|
req.keydata.keydata_len = key->size;
|
|
req.datadlen = data->dlen;
|
|
req.datadoff = data->doff;
|
|
req.dataflags = data->flags;
|
|
req.datadata.datadata_val = data->data;
|
|
req.datadata.datadata_len = data->size;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_dbc_get_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_dbc_get_ret(dbc, key, data, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_dbc_put(dbc, key, data, flags)
|
|
DBC * dbc;
|
|
DBT * key;
|
|
DBT * data;
|
|
u_int32_t flags;
|
|
{
|
|
CLIENT *cl;
|
|
__dbc_put_msg req;
|
|
static __dbc_put_reply *replyp = NULL;
|
|
int ret;
|
|
DB_ENV *dbenv;
|
|
|
|
ret = 0;
|
|
dbenv = NULL;
|
|
dbenv = dbc->dbp->dbenv;
|
|
if (dbenv == NULL || dbenv->cl_handle == NULL) {
|
|
__db_err(dbenv, "No server environment.");
|
|
return (DB_NOSERVER);
|
|
}
|
|
|
|
if (replyp != NULL) {
|
|
xdr_free((xdrproc_t)xdr___dbc_put_reply, (void *)replyp);
|
|
replyp = NULL;
|
|
}
|
|
cl = (CLIENT *)dbenv->cl_handle;
|
|
|
|
if (dbc == NULL)
|
|
req.dbccl_id = 0;
|
|
else
|
|
req.dbccl_id = dbc->cl_id;
|
|
req.keydlen = key->dlen;
|
|
req.keydoff = key->doff;
|
|
req.keyflags = key->flags;
|
|
req.keydata.keydata_val = key->data;
|
|
req.keydata.keydata_len = key->size;
|
|
req.datadlen = data->dlen;
|
|
req.datadoff = data->doff;
|
|
req.dataflags = data->flags;
|
|
req.datadata.datadata_val = data->data;
|
|
req.datadata.datadata_len = data->size;
|
|
req.flags = flags;
|
|
|
|
replyp = __db_dbc_put_1(&req, cl);
|
|
if (replyp == NULL) {
|
|
__db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
|
|
ret = DB_NOSERVER;
|
|
goto out;
|
|
}
|
|
return (__dbcl_dbc_put_ret(dbc, key, data, flags, replyp));
|
|
out:
|
|
return (ret);
|
|
}
|
|
|
|
int
|
|
__dbcl_lock_detect(dbenv, flags, atype, aborted)
|
|
DB_ENV * dbenv;
|
|
u_int32_t flags;
|
|
u_int32_t atype;
|
|
int * aborted;
|
|
{
|
|
COMPQUIET(flags, 0);
|
|
COMPQUIET(atype, 0);
|
|
COMPQUIET(aborted, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "lock_detect"));
|
|
}
|
|
|
|
int
|
|
__dbcl_lock_get(dbenv, locker, flags, obj, mode, lock)
|
|
DB_ENV * dbenv;
|
|
u_int32_t locker;
|
|
u_int32_t flags;
|
|
const DBT * obj;
|
|
db_lockmode_t mode;
|
|
DB_LOCK * lock;
|
|
{
|
|
COMPQUIET(locker, 0);
|
|
COMPQUIET(flags, 0);
|
|
COMPQUIET(obj, NULL);
|
|
COMPQUIET(mode, 0);
|
|
COMPQUIET(lock, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "lock_get"));
|
|
}
|
|
|
|
int
|
|
__dbcl_lock_id(dbenv, idp)
|
|
DB_ENV * dbenv;
|
|
u_int32_t * idp;
|
|
{
|
|
COMPQUIET(idp, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "lock_id"));
|
|
}
|
|
|
|
int
|
|
__dbcl_lock_put(dbenv, lock)
|
|
DB_ENV * dbenv;
|
|
DB_LOCK * lock;
|
|
{
|
|
COMPQUIET(lock, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "lock_put"));
|
|
}
|
|
|
|
int
|
|
__dbcl_lock_stat(dbenv, statp, func0)
|
|
DB_ENV * dbenv;
|
|
DB_LOCK_STAT ** statp;
|
|
void *(*func0) __P((size_t));
|
|
{
|
|
COMPQUIET(statp, 0);
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "lock_stat"));
|
|
}
|
|
|
|
int
|
|
__dbcl_lock_vec(dbenv, locker, flags, list, nlist, elistp)
|
|
DB_ENV * dbenv;
|
|
u_int32_t locker;
|
|
u_int32_t flags;
|
|
DB_LOCKREQ * list;
|
|
int nlist;
|
|
DB_LOCKREQ ** elistp;
|
|
{
|
|
COMPQUIET(locker, 0);
|
|
COMPQUIET(flags, 0);
|
|
COMPQUIET(list, 0);
|
|
COMPQUIET(nlist, 0);
|
|
COMPQUIET(elistp, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "lock_vec"));
|
|
}
|
|
|
|
int
|
|
__dbcl_log_archive(dbenv, listp, flags, func0)
|
|
DB_ENV * dbenv;
|
|
char *** listp;
|
|
u_int32_t flags;
|
|
void *(*func0) __P((size_t));
|
|
{
|
|
COMPQUIET(listp, 0);
|
|
COMPQUIET(flags, 0);
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "log_archive"));
|
|
}
|
|
|
|
int
|
|
__dbcl_log_file(dbenv, lsn, namep, len)
|
|
DB_ENV * dbenv;
|
|
const DB_LSN * lsn;
|
|
char * namep;
|
|
size_t len;
|
|
{
|
|
COMPQUIET(lsn, NULL);
|
|
COMPQUIET(namep, NULL);
|
|
COMPQUIET(len, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "log_file"));
|
|
}
|
|
|
|
int
|
|
__dbcl_log_flush(dbenv, lsn)
|
|
DB_ENV * dbenv;
|
|
const DB_LSN * lsn;
|
|
{
|
|
COMPQUIET(lsn, NULL);
|
|
return (__dbcl_rpc_illegal(dbenv, "log_flush"));
|
|
}
|
|
|
|
int
|
|
__dbcl_log_get(dbenv, lsn, data, flags)
|
|
DB_ENV * dbenv;
|
|
DB_LSN * lsn;
|
|
DBT * data;
|
|
u_int32_t flags;
|
|
{
|
|
COMPQUIET(lsn, 0);
|
|
COMPQUIET(data, NULL);
|
|
COMPQUIET(flags, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "log_get"));
|
|
}
|
|
|
|
int
|
|
__dbcl_log_put(dbenv, lsn, data, flags)
|
|
DB_ENV * dbenv;
|
|
DB_LSN * lsn;
|
|
const DBT * data;
|
|
u_int32_t flags;
|
|
{
|
|
COMPQUIET(lsn, 0);
|
|
COMPQUIET(data, NULL);
|
|
COMPQUIET(flags, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "log_put"));
|
|
}
|
|
|
|
int
|
|
__dbcl_log_register(dbenv, dbp, namep)
|
|
DB_ENV * dbenv;
|
|
DB * dbp;
|
|
const char * namep;
|
|
{
|
|
COMPQUIET(dbp, 0);
|
|
COMPQUIET(namep, NULL);
|
|
return (__dbcl_rpc_illegal(dbenv, "log_register"));
|
|
}
|
|
|
|
int
|
|
__dbcl_log_stat(dbenv, statp, func0)
|
|
DB_ENV * dbenv;
|
|
DB_LOG_STAT ** statp;
|
|
void *(*func0) __P((size_t));
|
|
{
|
|
COMPQUIET(statp, 0);
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "log_stat"));
|
|
}
|
|
|
|
int
|
|
__dbcl_log_unregister(dbenv, dbp)
|
|
DB_ENV * dbenv;
|
|
DB * dbp;
|
|
{
|
|
COMPQUIET(dbp, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "log_unregister"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_fclose(mpf)
|
|
DB_MPOOLFILE * mpf;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = mpf->dbmp->dbenv;
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_fclose"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_fget(mpf, pgno, flags, pagep)
|
|
DB_MPOOLFILE * mpf;
|
|
db_pgno_t * pgno;
|
|
u_int32_t flags;
|
|
void ** pagep;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = mpf->dbmp->dbenv;
|
|
COMPQUIET(pgno, 0);
|
|
COMPQUIET(flags, 0);
|
|
COMPQUIET(pagep, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_fget"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_fopen(dbenv, file, flags, mode, pagesize, finfop, mpf)
|
|
DB_ENV * dbenv;
|
|
const char * file;
|
|
u_int32_t flags;
|
|
int mode;
|
|
size_t pagesize;
|
|
DB_MPOOL_FINFO * finfop;
|
|
DB_MPOOLFILE ** mpf;
|
|
{
|
|
COMPQUIET(file, NULL);
|
|
COMPQUIET(flags, 0);
|
|
COMPQUIET(mode, 0);
|
|
COMPQUIET(pagesize, 0);
|
|
COMPQUIET(finfop, 0);
|
|
COMPQUIET(mpf, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_fopen"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_fput(mpf, pgaddr, flags)
|
|
DB_MPOOLFILE * mpf;
|
|
void * pgaddr;
|
|
u_int32_t flags;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = mpf->dbmp->dbenv;
|
|
COMPQUIET(pgaddr, 0);
|
|
COMPQUIET(flags, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_fput"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_fset(mpf, pgaddr, flags)
|
|
DB_MPOOLFILE * mpf;
|
|
void * pgaddr;
|
|
u_int32_t flags;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = mpf->dbmp->dbenv;
|
|
COMPQUIET(pgaddr, 0);
|
|
COMPQUIET(flags, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_fset"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_fsync(mpf)
|
|
DB_MPOOLFILE * mpf;
|
|
{
|
|
DB_ENV *dbenv;
|
|
|
|
dbenv = mpf->dbmp->dbenv;
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_fsync"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_register(dbenv, ftype, func0, func1)
|
|
DB_ENV * dbenv;
|
|
int ftype;
|
|
int (*func0) __P((DB_ENV *, db_pgno_t, void *, DBT *));
|
|
int (*func1) __P((DB_ENV *, db_pgno_t, void *, DBT *));
|
|
{
|
|
COMPQUIET(ftype, 0);
|
|
COMPQUIET(func0, 0);
|
|
COMPQUIET(func1, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_register"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_stat(dbenv, gstatp, fstatp, func0)
|
|
DB_ENV * dbenv;
|
|
DB_MPOOL_STAT ** gstatp;
|
|
DB_MPOOL_FSTAT *** fstatp;
|
|
void *(*func0) __P((size_t));
|
|
{
|
|
COMPQUIET(gstatp, 0);
|
|
COMPQUIET(fstatp, 0);
|
|
COMPQUIET(func0, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_stat"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_sync(dbenv, lsn)
|
|
DB_ENV * dbenv;
|
|
DB_LSN * lsn;
|
|
{
|
|
COMPQUIET(lsn, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_sync"));
|
|
}
|
|
|
|
int
|
|
__dbcl_memp_trickle(dbenv, pct, nwrotep)
|
|
DB_ENV * dbenv;
|
|
int pct;
|
|
int * nwrotep;
|
|
{
|
|
COMPQUIET(pct, 0);
|
|
COMPQUIET(nwrotep, 0);
|
|
return (__dbcl_rpc_illegal(dbenv, "memp_trickle"));
|
|
}
|
|
|
|
#endif /* HAVE_RPC */
|