#include "db_config.h"
#ifndef NO_SYSTEM_INCLUDES
#include <rpc/rpc.h>
#include <rpc/pmap_clnt.h>
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <sys/socket.h>
#include <netinet/in.h>
#endif
#include "db_int.h"
#include "dbinc_auto/db_server.h"
#include "dbinc/db_server_int.h"
#include "dbinc_auto/rpc_server_ext.h"
#ifdef DEBUG
#define RPC_SVC_FG
#endif
static void
db_rpc_serverprog_4002(rqstp, transp)
struct svc_req *rqstp;
register SVCXPRT *transp;
{
union {
__env_get_cachesize_msg __db_env_get_cachesize_4002_arg;
__env_cachesize_msg __db_env_cachesize_4002_arg;
__env_close_msg __db_env_close_4002_arg;
__env_create_msg __db_env_create_4002_arg;
__env_dbremove_msg __db_env_dbremove_4002_arg;
__env_dbrename_msg __db_env_dbrename_4002_arg;
__env_get_encrypt_flags_msg __db_env_get_encrypt_flags_4002_arg;
__env_encrypt_msg __db_env_encrypt_4002_arg;
__env_get_flags_msg __db_env_get_flags_4002_arg;
__env_flags_msg __db_env_flags_4002_arg;
__env_get_home_msg __db_env_get_home_4002_arg;
__env_get_open_flags_msg __db_env_get_open_flags_4002_arg;
__env_open_msg __db_env_open_4002_arg;
__env_remove_msg __db_env_remove_4002_arg;
__txn_abort_msg __db_txn_abort_4002_arg;
__txn_begin_msg __db_txn_begin_4002_arg;
__txn_commit_msg __db_txn_commit_4002_arg;
__txn_discard_msg __db_txn_discard_4002_arg;
__txn_prepare_msg __db_txn_prepare_4002_arg;
__txn_recover_msg __db_txn_recover_4002_arg;
__db_associate_msg __db_db_associate_4002_arg;
__db_bt_maxkey_msg __db_db_bt_maxkey_4002_arg;
__db_get_bt_minkey_msg __db_db_get_bt_minkey_4002_arg;
__db_bt_minkey_msg __db_db_bt_minkey_4002_arg;
__db_close_msg __db_db_close_4002_arg;
__db_create_msg __db_db_create_4002_arg;
__db_del_msg __db_db_del_4002_arg;
__db_get_encrypt_flags_msg __db_db_get_encrypt_flags_4002_arg;
__db_encrypt_msg __db_db_encrypt_4002_arg;
__db_get_extentsize_msg __db_db_get_extentsize_4002_arg;
__db_extentsize_msg __db_db_extentsize_4002_arg;
__db_get_flags_msg __db_db_get_flags_4002_arg;
__db_flags_msg __db_db_flags_4002_arg;
__db_get_msg __db_db_get_4002_arg;
__db_get_name_msg __db_db_get_name_4002_arg;
__db_get_open_flags_msg __db_db_get_open_flags_4002_arg;
__db_get_h_ffactor_msg __db_db_get_h_ffactor_4002_arg;
__db_h_ffactor_msg __db_db_h_ffactor_4002_arg;
__db_get_h_nelem_msg __db_db_get_h_nelem_4002_arg;
__db_h_nelem_msg __db_db_h_nelem_4002_arg;
__db_key_range_msg __db_db_key_range_4002_arg;
__db_get_lorder_msg __db_db_get_lorder_4002_arg;
__db_lorder_msg __db_db_lorder_4002_arg;
__db_open_msg __db_db_open_4002_arg;
__db_get_pagesize_msg __db_db_get_pagesize_4002_arg;
__db_pagesize_msg __db_db_pagesize_4002_arg;
__db_pget_msg __db_db_pget_4002_arg;
__db_put_msg __db_db_put_4002_arg;
__db_get_re_delim_msg __db_db_get_re_delim_4002_arg;
__db_re_delim_msg __db_db_re_delim_4002_arg;
__db_get_re_len_msg __db_db_get_re_len_4002_arg;
__db_re_len_msg __db_db_re_len_4002_arg;
__db_re_pad_msg __db_db_re_pad_4002_arg;
__db_get_re_pad_msg __db_db_get_re_pad_4002_arg;
__db_remove_msg __db_db_remove_4002_arg;
__db_rename_msg __db_db_rename_4002_arg;
__db_stat_msg __db_db_stat_4002_arg;
__db_sync_msg __db_db_sync_4002_arg;
__db_truncate_msg __db_db_truncate_4002_arg;
__db_cursor_msg __db_db_cursor_4002_arg;
__db_join_msg __db_db_join_4002_arg;
__dbc_close_msg __db_dbc_close_4002_arg;
__dbc_count_msg __db_dbc_count_4002_arg;
__dbc_del_msg __db_dbc_del_4002_arg;
__dbc_dup_msg __db_dbc_dup_4002_arg;
__dbc_get_msg __db_dbc_get_4002_arg;
__dbc_pget_msg __db_dbc_pget_4002_arg;
__dbc_put_msg __db_dbc_put_4002_arg;
} argument;
char *result;
bool_t (*xdr_argument)(), (*xdr_result)();
char *(*local)();
switch (rqstp->rq_proc) {
case NULLPROC:
(void) svc_sendreply(transp, (xdrproc_t)xdr_void,
(char *)NULL);
return;
case __DB_env_get_cachesize:
xdr_argument = xdr___env_get_cachesize_msg;
xdr_result = xdr___env_get_cachesize_reply;
local = (char *(*)()) __db_env_get_cachesize_4002;
break;
case __DB_env_cachesize:
xdr_argument = xdr___env_cachesize_msg;
xdr_result = xdr___env_cachesize_reply;
local = (char *(*)()) __db_env_cachesize_4002;
break;
case __DB_env_close:
xdr_argument = xdr___env_close_msg;
xdr_result = xdr___env_close_reply;
local = (char *(*)()) __db_env_close_4002;
break;
case __DB_env_create:
xdr_argument = xdr___env_create_msg;
xdr_result = xdr___env_create_reply;
local = (char *(*)()) __db_env_create_4002;
break;
case __DB_env_dbremove:
xdr_argument = xdr___env_dbremove_msg;
xdr_result = xdr___env_dbremove_reply;
local = (char *(*)()) __db_env_dbremove_4002;
break;
case __DB_env_dbrename:
xdr_argument = xdr___env_dbrename_msg;
xdr_result = xdr___env_dbrename_reply;
local = (char *(*)()) __db_env_dbrename_4002;
break;
case __DB_env_get_encrypt_flags:
xdr_argument = xdr___env_get_encrypt_flags_msg;
xdr_result = xdr___env_get_encrypt_flags_reply;
local = (char *(*)()) __db_env_get_encrypt_flags_4002;
break;
case __DB_env_encrypt:
xdr_argument = xdr___env_encrypt_msg;
xdr_result = xdr___env_encrypt_reply;
local = (char *(*)()) __db_env_encrypt_4002;
break;
case __DB_env_get_flags:
xdr_argument = xdr___env_get_flags_msg;
xdr_result = xdr___env_get_flags_reply;
local = (char *(*)()) __db_env_get_flags_4002;
break;
case __DB_env_flags:
xdr_argument = xdr___env_flags_msg;
xdr_result = xdr___env_flags_reply;
local = (char *(*)()) __db_env_flags_4002;
break;
case __DB_env_get_home:
xdr_argument = xdr___env_get_home_msg;
xdr_result = xdr___env_get_home_reply;
local = (char *(*)()) __db_env_get_home_4002;
break;
case __DB_env_get_open_flags:
xdr_argument = xdr___env_get_open_flags_msg;
xdr_result = xdr___env_get_open_flags_reply;
local = (char *(*)()) __db_env_get_open_flags_4002;
break;
case __DB_env_open:
xdr_argument = xdr___env_open_msg;
xdr_result = xdr___env_open_reply;
local = (char *(*)()) __db_env_open_4002;
break;
case __DB_env_remove:
xdr_argument = xdr___env_remove_msg;
xdr_result = xdr___env_remove_reply;
local = (char *(*)()) __db_env_remove_4002;
break;
case __DB_txn_abort:
xdr_argument = xdr___txn_abort_msg;
xdr_result = xdr___txn_abort_reply;
local = (char *(*)()) __db_txn_abort_4002;
break;
case __DB_txn_begin:
xdr_argument = xdr___txn_begin_msg;
xdr_result = xdr___txn_begin_reply;
local = (char *(*)()) __db_txn_begin_4002;
break;
case __DB_txn_commit:
xdr_argument = xdr___txn_commit_msg;
xdr_result = xdr___txn_commit_reply;
local = (char *(*)()) __db_txn_commit_4002;
break;
case __DB_txn_discard:
xdr_argument = xdr___txn_discard_msg;
xdr_result = xdr___txn_discard_reply;
local = (char *(*)()) __db_txn_discard_4002;
break;
case __DB_txn_prepare:
xdr_argument = xdr___txn_prepare_msg;
xdr_result = xdr___txn_prepare_reply;
local = (char *(*)()) __db_txn_prepare_4002;
break;
case __DB_txn_recover:
xdr_argument = xdr___txn_recover_msg;
xdr_result = xdr___txn_recover_reply;
local = (char *(*)()) __db_txn_recover_4002;
break;
case __DB_db_associate:
xdr_argument = xdr___db_associate_msg;
xdr_result = xdr___db_associate_reply;
local = (char *(*)()) __db_db_associate_4002;
break;
case __DB_db_bt_maxkey:
xdr_argument = xdr___db_bt_maxkey_msg;
xdr_result = xdr___db_bt_maxkey_reply;
local = (char *(*)()) __db_db_bt_maxkey_4002;
break;
case __DB_db_get_bt_minkey:
xdr_argument = xdr___db_get_bt_minkey_msg;
xdr_result = xdr___db_get_bt_minkey_reply;
local = (char *(*)()) __db_db_get_bt_minkey_4002;
break;
case __DB_db_bt_minkey:
xdr_argument = xdr___db_bt_minkey_msg;
xdr_result = xdr___db_bt_minkey_reply;
local = (char *(*)()) __db_db_bt_minkey_4002;
break;
case __DB_db_close:
xdr_argument = xdr___db_close_msg;
xdr_result = xdr___db_close_reply;
local = (char *(*)()) __db_db_close_4002;
break;
case __DB_db_create:
xdr_argument = xdr___db_create_msg;
xdr_result = xdr___db_create_reply;
local = (char *(*)()) __db_db_create_4002;
break;
case __DB_db_del:
xdr_argument = xdr___db_del_msg;
xdr_result = xdr___db_del_reply;
local = (char *(*)()) __db_db_del_4002;
break;
case __DB_db_get_encrypt_flags:
xdr_argument = xdr___db_get_encrypt_flags_msg;
xdr_result = xdr___db_get_encrypt_flags_reply;
local = (char *(*)()) __db_db_get_encrypt_flags_4002;
break;
case __DB_db_encrypt:
xdr_argument = xdr___db_encrypt_msg;
xdr_result = xdr___db_encrypt_reply;
local = (char *(*)()) __db_db_encrypt_4002;
break;
case __DB_db_get_extentsize:
xdr_argument = xdr___db_get_extentsize_msg;
xdr_result = xdr___db_get_extentsize_reply;
local = (char *(*)()) __db_db_get_extentsize_4002;
break;
case __DB_db_extentsize:
xdr_argument = xdr___db_extentsize_msg;
xdr_result = xdr___db_extentsize_reply;
local = (char *(*)()) __db_db_extentsize_4002;
break;
case __DB_db_get_flags:
xdr_argument = xdr___db_get_flags_msg;
xdr_result = xdr___db_get_flags_reply;
local = (char *(*)()) __db_db_get_flags_4002;
break;
case __DB_db_flags:
xdr_argument = xdr___db_flags_msg;
xdr_result = xdr___db_flags_reply;
local = (char *(*)()) __db_db_flags_4002;
break;
case __DB_db_get:
xdr_argument = xdr___db_get_msg;
xdr_result = xdr___db_get_reply;
local = (char *(*)()) __db_db_get_4002;
break;
case __DB_db_get_name:
xdr_argument = xdr___db_get_name_msg;
xdr_result = xdr___db_get_name_reply;
local = (char *(*)()) __db_db_get_name_4002;
break;
case __DB_db_get_open_flags:
xdr_argument = xdr___db_get_open_flags_msg;
xdr_result = xdr___db_get_open_flags_reply;
local = (char *(*)()) __db_db_get_open_flags_4002;
break;
case __DB_db_get_h_ffactor:
xdr_argument = xdr___db_get_h_ffactor_msg;
xdr_result = xdr___db_get_h_ffactor_reply;
local = (char *(*)()) __db_db_get_h_ffactor_4002;
break;
case __DB_db_h_ffactor:
xdr_argument = xdr___db_h_ffactor_msg;
xdr_result = xdr___db_h_ffactor_reply;
local = (char *(*)()) __db_db_h_ffactor_4002;
break;
case __DB_db_get_h_nelem:
xdr_argument = xdr___db_get_h_nelem_msg;
xdr_result = xdr___db_get_h_nelem_reply;
local = (char *(*)()) __db_db_get_h_nelem_4002;
break;
case __DB_db_h_nelem:
xdr_argument = xdr___db_h_nelem_msg;
xdr_result = xdr___db_h_nelem_reply;
local = (char *(*)()) __db_db_h_nelem_4002;
break;
case __DB_db_key_range:
xdr_argument = xdr___db_key_range_msg;
xdr_result = xdr___db_key_range_reply;
local = (char *(*)()) __db_db_key_range_4002;
break;
case __DB_db_get_lorder:
xdr_argument = xdr___db_get_lorder_msg;
xdr_result = xdr___db_get_lorder_reply;
local = (char *(*)()) __db_db_get_lorder_4002;
break;
case __DB_db_lorder:
xdr_argument = xdr___db_lorder_msg;
xdr_result = xdr___db_lorder_reply;
local = (char *(*)()) __db_db_lorder_4002;
break;
case __DB_db_open:
xdr_argument = xdr___db_open_msg;
xdr_result = xdr___db_open_reply;
local = (char *(*)()) __db_db_open_4002;
break;
case __DB_db_get_pagesize:
xdr_argument = xdr___db_get_pagesize_msg;
xdr_result = xdr___db_get_pagesize_reply;
local = (char *(*)()) __db_db_get_pagesize_4002;
break;
case __DB_db_pagesize:
xdr_argument = xdr___db_pagesize_msg;
xdr_result = xdr___db_pagesize_reply;
local = (char *(*)()) __db_db_pagesize_4002;
break;
case __DB_db_pget:
xdr_argument = xdr___db_pget_msg;
xdr_result = xdr___db_pget_reply;
local = (char *(*)()) __db_db_pget_4002;
break;
case __DB_db_put:
xdr_argument = xdr___db_put_msg;
xdr_result = xdr___db_put_reply;
local = (char *(*)()) __db_db_put_4002;
break;
case __DB_db_get_re_delim:
xdr_argument = xdr___db_get_re_delim_msg;
xdr_result = xdr___db_get_re_delim_reply;
local = (char *(*)()) __db_db_get_re_delim_4002;
break;
case __DB_db_re_delim:
xdr_argument = xdr___db_re_delim_msg;
xdr_result = xdr___db_re_delim_reply;
local = (char *(*)()) __db_db_re_delim_4002;
break;
case __DB_db_get_re_len:
xdr_argument = xdr___db_get_re_len_msg;
xdr_result = xdr___db_get_re_len_reply;
local = (char *(*)()) __db_db_get_re_len_4002;
break;
case __DB_db_re_len:
xdr_argument = xdr___db_re_len_msg;
xdr_result = xdr___db_re_len_reply;
local = (char *(*)()) __db_db_re_len_4002;
break;
case __DB_db_re_pad:
xdr_argument = xdr___db_re_pad_msg;
xdr_result = xdr___db_re_pad_reply;
local = (char *(*)()) __db_db_re_pad_4002;
break;
case __DB_db_get_re_pad:
xdr_argument = xdr___db_get_re_pad_msg;
xdr_result = xdr___db_get_re_pad_reply;
local = (char *(*)()) __db_db_get_re_pad_4002;
break;
case __DB_db_remove:
xdr_argument = xdr___db_remove_msg;
xdr_result = xdr___db_remove_reply;
local = (char *(*)()) __db_db_remove_4002;
break;
case __DB_db_rename:
xdr_argument = xdr___db_rename_msg;
xdr_result = xdr___db_rename_reply;
local = (char *(*)()) __db_db_rename_4002;
break;
case __DB_db_stat:
xdr_argument = xdr___db_stat_msg;
xdr_result = xdr___db_stat_reply;
local = (char *(*)()) __db_db_stat_4002;
break;
case __DB_db_sync:
xdr_argument = xdr___db_sync_msg;
xdr_result = xdr___db_sync_reply;
local = (char *(*)()) __db_db_sync_4002;
break;
case __DB_db_truncate:
xdr_argument = xdr___db_truncate_msg;
xdr_result = xdr___db_truncate_reply;
local = (char *(*)()) __db_db_truncate_4002;
break;
case __DB_db_cursor:
xdr_argument = xdr___db_cursor_msg;
xdr_result = xdr___db_cursor_reply;
local = (char *(*)()) __db_db_cursor_4002;
break;
case __DB_db_join:
xdr_argument = xdr___db_join_msg;
xdr_result = xdr___db_join_reply;
local = (char *(*)()) __db_db_join_4002;
break;
case __DB_dbc_close:
xdr_argument = xdr___dbc_close_msg;
xdr_result = xdr___dbc_close_reply;
local = (char *(*)()) __db_dbc_close_4002;
break;
case __DB_dbc_count:
xdr_argument = xdr___dbc_count_msg;
xdr_result = xdr___dbc_count_reply;
local = (char *(*)()) __db_dbc_count_4002;
break;
case __DB_dbc_del:
xdr_argument = xdr___dbc_del_msg;
xdr_result = xdr___dbc_del_reply;
local = (char *(*)()) __db_dbc_del_4002;
break;
case __DB_dbc_dup:
xdr_argument = xdr___dbc_dup_msg;
xdr_result = xdr___dbc_dup_reply;
local = (char *(*)()) __db_dbc_dup_4002;
break;
case __DB_dbc_get:
xdr_argument = xdr___dbc_get_msg;
xdr_result = xdr___dbc_get_reply;
local = (char *(*)()) __db_dbc_get_4002;
break;
case __DB_dbc_pget:
xdr_argument = xdr___dbc_pget_msg;
xdr_result = xdr___dbc_pget_reply;
local = (char *(*)()) __db_dbc_pget_4002;
break;
case __DB_dbc_put:
xdr_argument = xdr___dbc_put_msg;
xdr_result = xdr___dbc_put_reply;
local = (char *(*)()) __db_dbc_put_4002;
break;
default:
svcerr_noproc(transp);
return;
}
(void) memset((char *)&argument, 0, sizeof (argument));
if (!svc_getargs(transp, (xdrproc_t)xdr_argument, (char *)&argument)) {
svcerr_decode(transp);
return;
}
result = (*local)(&argument, rqstp);
if (result != NULL && !svc_sendreply(transp, (xdrproc_t)xdr_result, result)) {
svcerr_systemerr(transp);
}
if (!svc_freeargs(transp, (xdrproc_t)xdr_argument, (char *)&argument)) {
fprintf(stderr, "unable to free arguments");
exit(1);
}
__dbsrv_timeout(0);
return;
}
void __dbsrv_main()
{
register SVCXPRT *transp;
(void) pmap_unset(DB_RPC_SERVERPROG, DB_RPC_SERVERVERS);
transp = svctcp_create(RPC_ANYSOCK, 0, 0);
if (transp == NULL) {
fprintf(stderr, "cannot create tcp service.");
exit(1);
}
if (!svc_register(transp, DB_RPC_SERVERPROG, DB_RPC_SERVERVERS, db_rpc_serverprog_4002, IPPROTO_TCP)) {
fprintf(stderr, "unable to register (DB_RPC_SERVERPROG, DB_RPC_SERVERVERS, tcp).");
exit(1);
}
svc_run();
fprintf(stderr, "svc_run returned");
exit(1);
}