diff options
Diffstat (limited to 'bdb/rpc_client/gen_client.c')
-rw-r--r-- | bdb/rpc_client/gen_client.c | 2494 |
1 files changed, 2494 insertions, 0 deletions
diff --git a/bdb/rpc_client/gen_client.c b/bdb/rpc_client/gen_client.c new file mode 100644 index 00000000000..7cc598e7dfa --- /dev/null +++ b/bdb/rpc_client/gen_client.c @@ -0,0 +1,2494 @@ +/* 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 */ |