gen_client.c
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:64k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Do not edit: automatically built by gen_rpc.awk. */
  2. #include "db_config.h"
  3. #ifdef HAVE_RPC
  4. #ifndef NO_SYSTEM_INCLUDES
  5. #include <sys/types.h>
  6. #include <rpc/rpc.h>
  7. #include <rpc/xdr.h>
  8. #include <string.h>
  9. #endif
  10. #include "db_int.h"
  11. #include "dbinc/txn.h"
  12. #include "dbinc_auto/db_server.h"
  13. #include "dbinc_auto/rpc_client_ext.h"
  14. static int __dbcl_noserver __P((DB_ENV *));
  15. static int
  16. __dbcl_noserver(dbenv)
  17. DB_ENV *dbenv;
  18. {
  19. __db_err(dbenv, "No server environment");
  20. return (DB_NOSERVER);
  21. }
  22. static int __dbcl_rpc_illegal __P((DB_ENV *, char *));
  23. static int
  24. __dbcl_rpc_illegal(dbenv, name)
  25. DB_ENV *dbenv;
  26. char *name;
  27. {
  28. __db_err(dbenv, "%s method meaningless in an RPC environment", name);
  29. return (__db_eopnotsup(dbenv));
  30. }
  31. /*
  32.  * PUBLIC: int __dbcl_env_alloc __P((DB_ENV *, void *(*)(size_t),
  33.  * PUBLIC:      void *(*)(void *, size_t), void (*)(void *)));
  34.  */
  35. int
  36. __dbcl_env_alloc(dbenv, func0, func1, func2)
  37. DB_ENV * dbenv;
  38. void *(*func0) __P((size_t));
  39. void *(*func1) __P((void *, size_t));
  40. void (*func2) __P((void *));
  41. {
  42. COMPQUIET(func0, 0);
  43. COMPQUIET(func1, 0);
  44. COMPQUIET(func2, 0);
  45. return (__dbcl_rpc_illegal(dbenv, "env_alloc"));
  46. }
  47. /*
  48.  * PUBLIC: int __dbcl_set_app_dispatch __P((DB_ENV *, int (*)(DB_ENV *, DBT *,
  49.  * PUBLIC:      DB_LSN *, db_recops)));
  50.  */
  51. int
  52. __dbcl_set_app_dispatch(dbenv, func0)
  53. DB_ENV * dbenv;
  54. int (*func0) __P((DB_ENV *, DBT *, DB_LSN *, db_recops));
  55. {
  56. COMPQUIET(func0, 0);
  57. return (__dbcl_rpc_illegal(dbenv, "set_app_dispatch"));
  58. }
  59. /*
  60.  * PUBLIC: int __dbcl_env_cachesize __P((DB_ENV *, u_int32_t, u_int32_t, int));
  61.  */
  62. int
  63. __dbcl_env_cachesize(dbenv, gbytes, bytes, ncache)
  64. DB_ENV * dbenv;
  65. u_int32_t gbytes;
  66. u_int32_t bytes;
  67. int ncache;
  68. {
  69. CLIENT *cl;
  70. __env_cachesize_msg msg;
  71. __env_cachesize_reply *replyp = NULL;
  72. int ret;
  73. ret = 0;
  74. if (dbenv == NULL || !RPC_ON(dbenv))
  75. return (__dbcl_noserver(dbenv));
  76. cl = (CLIENT *)dbenv->cl_handle;
  77. if (dbenv == NULL)
  78. msg.dbenvcl_id = 0;
  79. else
  80. msg.dbenvcl_id = dbenv->cl_id;
  81. msg.gbytes = gbytes;
  82. msg.bytes = bytes;
  83. msg.ncache = ncache;
  84. replyp = __db_env_cachesize_4001(&msg, cl);
  85. if (replyp == NULL) {
  86. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  87. ret = DB_NOSERVER;
  88. goto out;
  89. }
  90. ret = replyp->status;
  91. out:
  92. if (replyp != NULL)
  93. xdr_free((xdrproc_t)xdr___env_cachesize_reply, (void *)replyp);
  94. return (ret);
  95. }
  96. /*
  97.  * PUBLIC: int __dbcl_env_close __P((DB_ENV *, u_int32_t));
  98.  */
  99. int
  100. __dbcl_env_close(dbenv, flags)
  101. DB_ENV * dbenv;
  102. u_int32_t flags;
  103. {
  104. CLIENT *cl;
  105. __env_close_msg msg;
  106. __env_close_reply *replyp = NULL;
  107. int ret;
  108. ret = 0;
  109. if (dbenv == NULL || !RPC_ON(dbenv))
  110. return (__dbcl_noserver(dbenv));
  111. cl = (CLIENT *)dbenv->cl_handle;
  112. if (dbenv == NULL)
  113. msg.dbenvcl_id = 0;
  114. else
  115. msg.dbenvcl_id = dbenv->cl_id;
  116. msg.flags = flags;
  117. replyp = __db_env_close_4001(&msg, cl);
  118. if (replyp == NULL) {
  119. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  120. ret = DB_NOSERVER;
  121. goto out;
  122. }
  123. ret = __dbcl_env_close_ret(dbenv, flags, replyp);
  124. out:
  125. if (replyp != NULL)
  126. xdr_free((xdrproc_t)xdr___env_close_reply, (void *)replyp);
  127. return (ret);
  128. }
  129. /*
  130.  * PUBLIC: int __dbcl_env_create __P((DB_ENV *, long));
  131.  */
  132. int
  133. __dbcl_env_create(dbenv, timeout)
  134. DB_ENV * dbenv;
  135. long timeout;
  136. {
  137. CLIENT *cl;
  138. __env_create_msg msg;
  139. __env_create_reply *replyp = NULL;
  140. int ret;
  141. ret = 0;
  142. if (dbenv == NULL || !RPC_ON(dbenv))
  143. return (__dbcl_noserver(dbenv));
  144. cl = (CLIENT *)dbenv->cl_handle;
  145. msg.timeout = timeout;
  146. replyp = __db_env_create_4001(&msg, cl);
  147. if (replyp == NULL) {
  148. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  149. ret = DB_NOSERVER;
  150. goto out;
  151. }
  152. ret = __dbcl_env_create_ret(dbenv, timeout, replyp);
  153. out:
  154. if (replyp != NULL)
  155. xdr_free((xdrproc_t)xdr___env_create_reply, (void *)replyp);
  156. return (ret);
  157. }
  158. /*
  159.  * PUBLIC: int __dbcl_set_data_dir __P((DB_ENV *, const char *));
  160.  */
  161. int
  162. __dbcl_set_data_dir(dbenv, dir)
  163. DB_ENV * dbenv;
  164. const char * dir;
  165. {
  166. COMPQUIET(dir, NULL);
  167. return (__dbcl_rpc_illegal(dbenv, "set_data_dir"));
  168. }
  169. /*
  170.  * PUBLIC: int __dbcl_env_dbremove __P((DB_ENV *, DB_TXN *, const char *,
  171.  * PUBLIC:      const char *, u_int32_t));
  172.  */
  173. int
  174. __dbcl_env_dbremove(dbenv, txnp, name, subdb, flags)
  175. DB_ENV * dbenv;
  176. DB_TXN * txnp;
  177. const char * name;
  178. const char * subdb;
  179. u_int32_t flags;
  180. {
  181. CLIENT *cl;
  182. __env_dbremove_msg msg;
  183. __env_dbremove_reply *replyp = NULL;
  184. int ret;
  185. ret = 0;
  186. if (dbenv == NULL || !RPC_ON(dbenv))
  187. return (__dbcl_noserver(dbenv));
  188. cl = (CLIENT *)dbenv->cl_handle;
  189. if (dbenv == NULL)
  190. msg.dbenvcl_id = 0;
  191. else
  192. msg.dbenvcl_id = dbenv->cl_id;
  193. if (txnp == NULL)
  194. msg.txnpcl_id = 0;
  195. else
  196. msg.txnpcl_id = txnp->txnid;
  197. if (name == NULL)
  198. msg.name = "";
  199. else
  200. msg.name = (char *)name;
  201. if (subdb == NULL)
  202. msg.subdb = "";
  203. else
  204. msg.subdb = (char *)subdb;
  205. msg.flags = flags;
  206. replyp = __db_env_dbremove_4001(&msg, cl);
  207. if (replyp == NULL) {
  208. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  209. ret = DB_NOSERVER;
  210. goto out;
  211. }
  212. ret = replyp->status;
  213. out:
  214. if (replyp != NULL)
  215. xdr_free((xdrproc_t)xdr___env_dbremove_reply, (void *)replyp);
  216. return (ret);
  217. }
  218. /*
  219.  * PUBLIC: int __dbcl_env_dbrename __P((DB_ENV *, DB_TXN *, const char *,
  220.  * PUBLIC:      const char *, const char *, u_int32_t));
  221.  */
  222. int
  223. __dbcl_env_dbrename(dbenv, txnp, name, subdb, newname, flags)
  224. DB_ENV * dbenv;
  225. DB_TXN * txnp;
  226. const char * name;
  227. const char * subdb;
  228. const char * newname;
  229. u_int32_t flags;
  230. {
  231. CLIENT *cl;
  232. __env_dbrename_msg msg;
  233. __env_dbrename_reply *replyp = NULL;
  234. int ret;
  235. ret = 0;
  236. if (dbenv == NULL || !RPC_ON(dbenv))
  237. return (__dbcl_noserver(dbenv));
  238. cl = (CLIENT *)dbenv->cl_handle;
  239. if (dbenv == NULL)
  240. msg.dbenvcl_id = 0;
  241. else
  242. msg.dbenvcl_id = dbenv->cl_id;
  243. if (txnp == NULL)
  244. msg.txnpcl_id = 0;
  245. else
  246. msg.txnpcl_id = txnp->txnid;
  247. if (name == NULL)
  248. msg.name = "";
  249. else
  250. msg.name = (char *)name;
  251. if (subdb == NULL)
  252. msg.subdb = "";
  253. else
  254. msg.subdb = (char *)subdb;
  255. if (newname == NULL)
  256. msg.newname = "";
  257. else
  258. msg.newname = (char *)newname;
  259. msg.flags = flags;
  260. replyp = __db_env_dbrename_4001(&msg, cl);
  261. if (replyp == NULL) {
  262. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  263. ret = DB_NOSERVER;
  264. goto out;
  265. }
  266. ret = replyp->status;
  267. out:
  268. if (replyp != NULL)
  269. xdr_free((xdrproc_t)xdr___env_dbrename_reply, (void *)replyp);
  270. return (ret);
  271. }
  272. /*
  273.  * PUBLIC: int __dbcl_env_encrypt __P((DB_ENV *, const char *, u_int32_t));
  274.  */
  275. int
  276. __dbcl_env_encrypt(dbenv, passwd, flags)
  277. DB_ENV * dbenv;
  278. const char * passwd;
  279. u_int32_t flags;
  280. {
  281. CLIENT *cl;
  282. __env_encrypt_msg msg;
  283. __env_encrypt_reply *replyp = NULL;
  284. int ret;
  285. ret = 0;
  286. if (dbenv == NULL || !RPC_ON(dbenv))
  287. return (__dbcl_noserver(dbenv));
  288. cl = (CLIENT *)dbenv->cl_handle;
  289. if (dbenv == NULL)
  290. msg.dbenvcl_id = 0;
  291. else
  292. msg.dbenvcl_id = dbenv->cl_id;
  293. if (passwd == NULL)
  294. msg.passwd = "";
  295. else
  296. msg.passwd = (char *)passwd;
  297. msg.flags = flags;
  298. replyp = __db_env_encrypt_4001(&msg, cl);
  299. if (replyp == NULL) {
  300. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  301. ret = DB_NOSERVER;
  302. goto out;
  303. }
  304. ret = replyp->status;
  305. out:
  306. if (replyp != NULL)
  307. xdr_free((xdrproc_t)xdr___env_encrypt_reply, (void *)replyp);
  308. return (ret);
  309. }
  310. /*
  311.  * PUBLIC: int __dbcl_env_set_feedback __P((DB_ENV *, void (*)(DB_ENV *, int,
  312.  * PUBLIC:      int)));
  313.  */
  314. int
  315. __dbcl_env_set_feedback(dbenv, func0)
  316. DB_ENV * dbenv;
  317. void (*func0) __P((DB_ENV *, int, int));
  318. {
  319. COMPQUIET(func0, 0);
  320. return (__dbcl_rpc_illegal(dbenv, "env_set_feedback"));
  321. }
  322. /*
  323.  * PUBLIC: int __dbcl_env_flags __P((DB_ENV *, u_int32_t, int));
  324.  */
  325. int
  326. __dbcl_env_flags(dbenv, flags, onoff)
  327. DB_ENV * dbenv;
  328. u_int32_t flags;
  329. int onoff;
  330. {
  331. CLIENT *cl;
  332. __env_flags_msg msg;
  333. __env_flags_reply *replyp = NULL;
  334. int ret;
  335. ret = 0;
  336. if (dbenv == NULL || !RPC_ON(dbenv))
  337. return (__dbcl_noserver(dbenv));
  338. cl = (CLIENT *)dbenv->cl_handle;
  339. if (dbenv == NULL)
  340. msg.dbenvcl_id = 0;
  341. else
  342. msg.dbenvcl_id = dbenv->cl_id;
  343. msg.flags = flags;
  344. msg.onoff = onoff;
  345. replyp = __db_env_flags_4001(&msg, cl);
  346. if (replyp == NULL) {
  347. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  348. ret = DB_NOSERVER;
  349. goto out;
  350. }
  351. ret = replyp->status;
  352. out:
  353. if (replyp != NULL)
  354. xdr_free((xdrproc_t)xdr___env_flags_reply, (void *)replyp);
  355. return (ret);
  356. }
  357. /*
  358.  * PUBLIC: int __dbcl_set_lg_bsize __P((DB_ENV *, u_int32_t));
  359.  */
  360. int
  361. __dbcl_set_lg_bsize(dbenv, bsize)
  362. DB_ENV * dbenv;
  363. u_int32_t bsize;
  364. {
  365. COMPQUIET(bsize, 0);
  366. return (__dbcl_rpc_illegal(dbenv, "set_lg_bsize"));
  367. }
  368. /*
  369.  * PUBLIC: int __dbcl_set_lg_dir __P((DB_ENV *, const char *));
  370.  */
  371. int
  372. __dbcl_set_lg_dir(dbenv, dir)
  373. DB_ENV * dbenv;
  374. const char * dir;
  375. {
  376. COMPQUIET(dir, NULL);
  377. return (__dbcl_rpc_illegal(dbenv, "set_lg_dir"));
  378. }
  379. /*
  380.  * PUBLIC: int __dbcl_set_lg_max __P((DB_ENV *, u_int32_t));
  381.  */
  382. int
  383. __dbcl_set_lg_max(dbenv, max)
  384. DB_ENV * dbenv;
  385. u_int32_t max;
  386. {
  387. COMPQUIET(max, 0);
  388. return (__dbcl_rpc_illegal(dbenv, "set_lg_max"));
  389. }
  390. /*
  391.  * PUBLIC: int __dbcl_set_lg_regionmax __P((DB_ENV *, u_int32_t));
  392.  */
  393. int
  394. __dbcl_set_lg_regionmax(dbenv, max)
  395. DB_ENV * dbenv;
  396. u_int32_t max;
  397. {
  398. COMPQUIET(max, 0);
  399. return (__dbcl_rpc_illegal(dbenv, "set_lg_regionmax"));
  400. }
  401. /*
  402.  * PUBLIC: int __dbcl_set_lk_conflict __P((DB_ENV *, u_int8_t *, int));
  403.  */
  404. int
  405. __dbcl_set_lk_conflict(dbenv, conflicts, modes)
  406. DB_ENV * dbenv;
  407. u_int8_t * conflicts;
  408. int modes;
  409. {
  410. COMPQUIET(conflicts, 0);
  411. COMPQUIET(modes, 0);
  412. return (__dbcl_rpc_illegal(dbenv, "set_lk_conflict"));
  413. }
  414. /*
  415.  * PUBLIC: int __dbcl_set_lk_detect __P((DB_ENV *, u_int32_t));
  416.  */
  417. int
  418. __dbcl_set_lk_detect(dbenv, detect)
  419. DB_ENV * dbenv;
  420. u_int32_t detect;
  421. {
  422. COMPQUIET(detect, 0);
  423. return (__dbcl_rpc_illegal(dbenv, "set_lk_detect"));
  424. }
  425. /*
  426.  * PUBLIC: int __dbcl_set_lk_max __P((DB_ENV *, u_int32_t));
  427.  */
  428. int
  429. __dbcl_set_lk_max(dbenv, max)
  430. DB_ENV * dbenv;
  431. u_int32_t max;
  432. {
  433. COMPQUIET(max, 0);
  434. return (__dbcl_rpc_illegal(dbenv, "set_lk_max"));
  435. }
  436. /*
  437.  * PUBLIC: int __dbcl_set_lk_max_locks __P((DB_ENV *, u_int32_t));
  438.  */
  439. int
  440. __dbcl_set_lk_max_locks(dbenv, max)
  441. DB_ENV * dbenv;
  442. u_int32_t max;
  443. {
  444. COMPQUIET(max, 0);
  445. return (__dbcl_rpc_illegal(dbenv, "set_lk_max_locks"));
  446. }
  447. /*
  448.  * PUBLIC: int __dbcl_set_lk_max_lockers __P((DB_ENV *, u_int32_t));
  449.  */
  450. int
  451. __dbcl_set_lk_max_lockers(dbenv, max)
  452. DB_ENV * dbenv;
  453. u_int32_t max;
  454. {
  455. COMPQUIET(max, 0);
  456. return (__dbcl_rpc_illegal(dbenv, "set_lk_max_lockers"));
  457. }
  458. /*
  459.  * PUBLIC: int __dbcl_set_lk_max_objects __P((DB_ENV *, u_int32_t));
  460.  */
  461. int
  462. __dbcl_set_lk_max_objects(dbenv, max)
  463. DB_ENV * dbenv;
  464. u_int32_t max;
  465. {
  466. COMPQUIET(max, 0);
  467. return (__dbcl_rpc_illegal(dbenv, "set_lk_max_objects"));
  468. }
  469. /*
  470.  * PUBLIC: int __dbcl_set_mp_mmapsize __P((DB_ENV *, size_t));
  471.  */
  472. int
  473. __dbcl_set_mp_mmapsize(dbenv, mmapsize)
  474. DB_ENV * dbenv;
  475. size_t mmapsize;
  476. {
  477. COMPQUIET(mmapsize, 0);
  478. return (__dbcl_rpc_illegal(dbenv, "set_mp_mmapsize"));
  479. }
  480. /*
  481.  * PUBLIC: int __dbcl_env_open __P((DB_ENV *, const char *, u_int32_t, int));
  482.  */
  483. int
  484. __dbcl_env_open(dbenv, home, flags, mode)
  485. DB_ENV * dbenv;
  486. const char * home;
  487. u_int32_t flags;
  488. int mode;
  489. {
  490. CLIENT *cl;
  491. __env_open_msg msg;
  492. __env_open_reply *replyp = NULL;
  493. int ret;
  494. ret = 0;
  495. if (dbenv == NULL || !RPC_ON(dbenv))
  496. return (__dbcl_noserver(dbenv));
  497. cl = (CLIENT *)dbenv->cl_handle;
  498. if (dbenv == NULL)
  499. msg.dbenvcl_id = 0;
  500. else
  501. msg.dbenvcl_id = dbenv->cl_id;
  502. if (home == NULL)
  503. msg.home = "";
  504. else
  505. msg.home = (char *)home;
  506. msg.flags = flags;
  507. msg.mode = mode;
  508. replyp = __db_env_open_4001(&msg, cl);
  509. if (replyp == NULL) {
  510. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  511. ret = DB_NOSERVER;
  512. goto out;
  513. }
  514. ret = __dbcl_env_open_ret(dbenv, home, flags, mode, replyp);
  515. out:
  516. if (replyp != NULL)
  517. xdr_free((xdrproc_t)xdr___env_open_reply, (void *)replyp);
  518. return (ret);
  519. }
  520. /*
  521.  * PUBLIC: int __dbcl_env_paniccall __P((DB_ENV *, void (*)(DB_ENV *, int)));
  522.  */
  523. int
  524. __dbcl_env_paniccall(dbenv, func0)
  525. DB_ENV * dbenv;
  526. void (*func0) __P((DB_ENV *, int));
  527. {
  528. COMPQUIET(func0, 0);
  529. return (__dbcl_rpc_illegal(dbenv, "env_paniccall"));
  530. }
  531. /*
  532.  * PUBLIC: int __dbcl_env_remove __P((DB_ENV *, const char *, u_int32_t));
  533.  */
  534. int
  535. __dbcl_env_remove(dbenv, home, flags)
  536. DB_ENV * dbenv;
  537. const char * home;
  538. u_int32_t flags;
  539. {
  540. CLIENT *cl;
  541. __env_remove_msg msg;
  542. __env_remove_reply *replyp = NULL;
  543. int ret;
  544. ret = 0;
  545. if (dbenv == NULL || !RPC_ON(dbenv))
  546. return (__dbcl_noserver(dbenv));
  547. cl = (CLIENT *)dbenv->cl_handle;
  548. if (dbenv == NULL)
  549. msg.dbenvcl_id = 0;
  550. else
  551. msg.dbenvcl_id = dbenv->cl_id;
  552. if (home == NULL)
  553. msg.home = "";
  554. else
  555. msg.home = (char *)home;
  556. msg.flags = flags;
  557. replyp = __db_env_remove_4001(&msg, cl);
  558. if (replyp == NULL) {
  559. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  560. ret = DB_NOSERVER;
  561. goto out;
  562. }
  563. ret = __dbcl_env_remove_ret(dbenv, home, flags, replyp);
  564. out:
  565. if (replyp != NULL)
  566. xdr_free((xdrproc_t)xdr___env_remove_reply, (void *)replyp);
  567. return (ret);
  568. }
  569. /*
  570.  * PUBLIC: int __dbcl_set_shm_key __P((DB_ENV *, long));
  571.  */
  572. int
  573. __dbcl_set_shm_key(dbenv, shm_key)
  574. DB_ENV * dbenv;
  575. long shm_key;
  576. {
  577. COMPQUIET(shm_key, 0);
  578. return (__dbcl_rpc_illegal(dbenv, "set_shm_key"));
  579. }
  580. /*
  581.  * PUBLIC: int __dbcl_set_tas_spins __P((DB_ENV *, u_int32_t));
  582.  */
  583. int
  584. __dbcl_set_tas_spins(dbenv, tas_spins)
  585. DB_ENV * dbenv;
  586. u_int32_t tas_spins;
  587. {
  588. COMPQUIET(tas_spins, 0);
  589. return (__dbcl_rpc_illegal(dbenv, "set_tas_spins"));
  590. }
  591. /*
  592.  * PUBLIC: int __dbcl_set_timeout __P((DB_ENV *, u_int32_t, u_int32_t));
  593.  */
  594. int
  595. __dbcl_set_timeout(dbenv, timeout, flags)
  596. DB_ENV * dbenv;
  597. u_int32_t timeout;
  598. u_int32_t flags;
  599. {
  600. COMPQUIET(timeout, 0);
  601. COMPQUIET(flags, 0);
  602. return (__dbcl_rpc_illegal(dbenv, "set_timeout"));
  603. }
  604. /*
  605.  * PUBLIC: int __dbcl_set_tmp_dir __P((DB_ENV *, const char *));
  606.  */
  607. int
  608. __dbcl_set_tmp_dir(dbenv, dir)
  609. DB_ENV * dbenv;
  610. const char * dir;
  611. {
  612. COMPQUIET(dir, NULL);
  613. return (__dbcl_rpc_illegal(dbenv, "set_tmp_dir"));
  614. }
  615. /*
  616.  * PUBLIC: int __dbcl_set_tx_max __P((DB_ENV *, u_int32_t));
  617.  */
  618. int
  619. __dbcl_set_tx_max(dbenv, max)
  620. DB_ENV * dbenv;
  621. u_int32_t max;
  622. {
  623. COMPQUIET(max, 0);
  624. return (__dbcl_rpc_illegal(dbenv, "set_tx_max"));
  625. }
  626. /*
  627.  * PUBLIC: int __dbcl_set_tx_timestamp __P((DB_ENV *, time_t *));
  628.  */
  629. int
  630. __dbcl_set_tx_timestamp(dbenv, max)
  631. DB_ENV * dbenv;
  632. time_t * max;
  633. {
  634. COMPQUIET(max, 0);
  635. return (__dbcl_rpc_illegal(dbenv, "set_tx_timestamp"));
  636. }
  637. /*
  638.  * PUBLIC: int __dbcl_set_verbose __P((DB_ENV *, u_int32_t, int));
  639.  */
  640. int
  641. __dbcl_set_verbose(dbenv, which, onoff)
  642. DB_ENV * dbenv;
  643. u_int32_t which;
  644. int onoff;
  645. {
  646. COMPQUIET(which, 0);
  647. COMPQUIET(onoff, 0);
  648. return (__dbcl_rpc_illegal(dbenv, "set_verbose"));
  649. }
  650. /*
  651.  * PUBLIC: int __dbcl_txn_abort __P((DB_TXN *));
  652.  */
  653. int
  654. __dbcl_txn_abort(txnp)
  655. DB_TXN * txnp;
  656. {
  657. CLIENT *cl;
  658. __txn_abort_msg msg;
  659. __txn_abort_reply *replyp = NULL;
  660. int ret;
  661. DB_ENV *dbenv;
  662. ret = 0;
  663. dbenv = txnp->mgrp->dbenv;
  664. if (dbenv == NULL || !RPC_ON(dbenv))
  665. return (__dbcl_noserver(NULL));
  666. cl = (CLIENT *)dbenv->cl_handle;
  667. if (txnp == NULL)
  668. msg.txnpcl_id = 0;
  669. else
  670. msg.txnpcl_id = txnp->txnid;
  671. replyp = __db_txn_abort_4001(&msg, cl);
  672. if (replyp == NULL) {
  673. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  674. ret = DB_NOSERVER;
  675. goto out;
  676. }
  677. ret = __dbcl_txn_abort_ret(txnp, replyp);
  678. out:
  679. if (replyp != NULL)
  680. xdr_free((xdrproc_t)xdr___txn_abort_reply, (void *)replyp);
  681. return (ret);
  682. }
  683. /*
  684.  * PUBLIC: int __dbcl_txn_begin __P((DB_ENV *, DB_TXN *, DB_TXN **,
  685.  * PUBLIC:      u_int32_t));
  686.  */
  687. int
  688. __dbcl_txn_begin(dbenv, parent, txnpp, flags)
  689. DB_ENV * dbenv;
  690. DB_TXN * parent;
  691. DB_TXN ** txnpp;
  692. u_int32_t flags;
  693. {
  694. CLIENT *cl;
  695. __txn_begin_msg msg;
  696. __txn_begin_reply *replyp = NULL;
  697. int ret;
  698. ret = 0;
  699. if (dbenv == NULL || !RPC_ON(dbenv))
  700. return (__dbcl_noserver(dbenv));
  701. cl = (CLIENT *)dbenv->cl_handle;
  702. if (dbenv == NULL)
  703. msg.dbenvcl_id = 0;
  704. else
  705. msg.dbenvcl_id = dbenv->cl_id;
  706. if (parent == NULL)
  707. msg.parentcl_id = 0;
  708. else
  709. msg.parentcl_id = parent->txnid;
  710. msg.flags = flags;
  711. replyp = __db_txn_begin_4001(&msg, cl);
  712. if (replyp == NULL) {
  713. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  714. ret = DB_NOSERVER;
  715. goto out;
  716. }
  717. ret = __dbcl_txn_begin_ret(dbenv, parent, txnpp, flags, replyp);
  718. out:
  719. if (replyp != NULL)
  720. xdr_free((xdrproc_t)xdr___txn_begin_reply, (void *)replyp);
  721. return (ret);
  722. }
  723. /*
  724.  * PUBLIC: int __dbcl_txn_checkpoint __P((DB_ENV *, u_int32_t, u_int32_t,
  725.  * PUBLIC:      u_int32_t));
  726.  */
  727. int
  728. __dbcl_txn_checkpoint(dbenv, kbyte, min, flags)
  729. DB_ENV * dbenv;
  730. u_int32_t kbyte;
  731. u_int32_t min;
  732. u_int32_t flags;
  733. {
  734. COMPQUIET(kbyte, 0);
  735. COMPQUIET(min, 0);
  736. COMPQUIET(flags, 0);
  737. return (__dbcl_rpc_illegal(dbenv, "txn_checkpoint"));
  738. }
  739. /*
  740.  * PUBLIC: int __dbcl_txn_commit __P((DB_TXN *, u_int32_t));
  741.  */
  742. int
  743. __dbcl_txn_commit(txnp, flags)
  744. DB_TXN * txnp;
  745. u_int32_t flags;
  746. {
  747. CLIENT *cl;
  748. __txn_commit_msg msg;
  749. __txn_commit_reply *replyp = NULL;
  750. int ret;
  751. DB_ENV *dbenv;
  752. ret = 0;
  753. dbenv = txnp->mgrp->dbenv;
  754. if (dbenv == NULL || !RPC_ON(dbenv))
  755. return (__dbcl_noserver(NULL));
  756. cl = (CLIENT *)dbenv->cl_handle;
  757. if (txnp == NULL)
  758. msg.txnpcl_id = 0;
  759. else
  760. msg.txnpcl_id = txnp->txnid;
  761. msg.flags = flags;
  762. replyp = __db_txn_commit_4001(&msg, cl);
  763. if (replyp == NULL) {
  764. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  765. ret = DB_NOSERVER;
  766. goto out;
  767. }
  768. ret = __dbcl_txn_commit_ret(txnp, flags, replyp);
  769. out:
  770. if (replyp != NULL)
  771. xdr_free((xdrproc_t)xdr___txn_commit_reply, (void *)replyp);
  772. return (ret);
  773. }
  774. /*
  775.  * PUBLIC: int __dbcl_txn_discard __P((DB_TXN *, u_int32_t));
  776.  */
  777. int
  778. __dbcl_txn_discard(txnp, flags)
  779. DB_TXN * txnp;
  780. u_int32_t flags;
  781. {
  782. CLIENT *cl;
  783. __txn_discard_msg msg;
  784. __txn_discard_reply *replyp = NULL;
  785. int ret;
  786. DB_ENV *dbenv;
  787. ret = 0;
  788. dbenv = txnp->mgrp->dbenv;
  789. if (dbenv == NULL || !RPC_ON(dbenv))
  790. return (__dbcl_noserver(NULL));
  791. cl = (CLIENT *)dbenv->cl_handle;
  792. if (txnp == NULL)
  793. msg.txnpcl_id = 0;
  794. else
  795. msg.txnpcl_id = txnp->txnid;
  796. msg.flags = flags;
  797. replyp = __db_txn_discard_4001(&msg, cl);
  798. if (replyp == NULL) {
  799. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  800. ret = DB_NOSERVER;
  801. goto out;
  802. }
  803. ret = __dbcl_txn_discard_ret(txnp, flags, replyp);
  804. out:
  805. if (replyp != NULL)
  806. xdr_free((xdrproc_t)xdr___txn_discard_reply, (void *)replyp);
  807. return (ret);
  808. }
  809. /*
  810.  * PUBLIC: int __dbcl_txn_prepare __P((DB_TXN *, u_int8_t *));
  811.  */
  812. int
  813. __dbcl_txn_prepare(txnp, gid)
  814. DB_TXN * txnp;
  815. u_int8_t * gid;
  816. {
  817. CLIENT *cl;
  818. __txn_prepare_msg msg;
  819. __txn_prepare_reply *replyp = NULL;
  820. int ret;
  821. DB_ENV *dbenv;
  822. ret = 0;
  823. dbenv = txnp->mgrp->dbenv;
  824. if (dbenv == NULL || !RPC_ON(dbenv))
  825. return (__dbcl_noserver(NULL));
  826. cl = (CLIENT *)dbenv->cl_handle;
  827. if (txnp == NULL)
  828. msg.txnpcl_id = 0;
  829. else
  830. msg.txnpcl_id = txnp->txnid;
  831. memcpy(msg.gid, gid, 128);
  832. replyp = __db_txn_prepare_4001(&msg, cl);
  833. if (replyp == NULL) {
  834. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  835. ret = DB_NOSERVER;
  836. goto out;
  837. }
  838. ret = replyp->status;
  839. out:
  840. if (replyp != NULL)
  841. xdr_free((xdrproc_t)xdr___txn_prepare_reply, (void *)replyp);
  842. return (ret);
  843. }
  844. /*
  845.  * PUBLIC: int __dbcl_txn_recover __P((DB_ENV *, DB_PREPLIST *, long, long *,
  846.  * PUBLIC:      u_int32_t));
  847.  */
  848. int
  849. __dbcl_txn_recover(dbenv, preplist, count, retp, flags)
  850. DB_ENV * dbenv;
  851. DB_PREPLIST * preplist;
  852. long count;
  853. long * retp;
  854. u_int32_t flags;
  855. {
  856. CLIENT *cl;
  857. __txn_recover_msg msg;
  858. __txn_recover_reply *replyp = NULL;
  859. int ret;
  860. ret = 0;
  861. if (dbenv == NULL || !RPC_ON(dbenv))
  862. return (__dbcl_noserver(dbenv));
  863. cl = (CLIENT *)dbenv->cl_handle;
  864. if (dbenv == NULL)
  865. msg.dbenvcl_id = 0;
  866. else
  867. msg.dbenvcl_id = dbenv->cl_id;
  868. msg.count = count;
  869. msg.flags = flags;
  870. replyp = __db_txn_recover_4001(&msg, cl);
  871. if (replyp == NULL) {
  872. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  873. ret = DB_NOSERVER;
  874. goto out;
  875. }
  876. ret = __dbcl_txn_recover_ret(dbenv, preplist, count, retp, flags, replyp);
  877. out:
  878. if (replyp != NULL)
  879. xdr_free((xdrproc_t)xdr___txn_recover_reply, (void *)replyp);
  880. return (ret);
  881. }
  882. /*
  883.  * PUBLIC: int __dbcl_txn_stat __P((DB_ENV *, DB_TXN_STAT **, u_int32_t));
  884.  */
  885. int
  886. __dbcl_txn_stat(dbenv, statp, flags)
  887. DB_ENV * dbenv;
  888. DB_TXN_STAT ** statp;
  889. u_int32_t flags;
  890. {
  891. COMPQUIET(statp, 0);
  892. COMPQUIET(flags, 0);
  893. return (__dbcl_rpc_illegal(dbenv, "txn_stat"));
  894. }
  895. /*
  896.  * PUBLIC: int __dbcl_txn_timeout __P((DB_TXN *, u_int32_t, u_int32_t));
  897.  */
  898. int
  899. __dbcl_txn_timeout(txnp, timeout, flags)
  900. DB_TXN * txnp;
  901. u_int32_t timeout;
  902. u_int32_t flags;
  903. {
  904. DB_ENV *dbenv;
  905. dbenv = txnp->mgrp->dbenv;
  906. COMPQUIET(timeout, 0);
  907. COMPQUIET(flags, 0);
  908. return (__dbcl_rpc_illegal(dbenv, "txn_timeout"));
  909. }
  910. /*
  911.  * PUBLIC: int __dbcl_rep_elect __P((DB_ENV *, int, int, u_int32_t, int *));
  912.  */
  913. int
  914. __dbcl_rep_elect(dbenv, nsites, pri, timeout, idp)
  915. DB_ENV * dbenv;
  916. int nsites;
  917. int pri;
  918. u_int32_t timeout;
  919. int * idp;
  920. {
  921. COMPQUIET(nsites, 0);
  922. COMPQUIET(pri, 0);
  923. COMPQUIET(timeout, 0);
  924. COMPQUIET(idp, 0);
  925. return (__dbcl_rpc_illegal(dbenv, "rep_elect"));
  926. }
  927. /*
  928.  * PUBLIC: int __dbcl_rep_flush __P((DB_ENV *));
  929.  */
  930. int
  931. __dbcl_rep_flush(dbenv)
  932. DB_ENV * dbenv;
  933. {
  934. return (__dbcl_rpc_illegal(dbenv, "rep_flush"));
  935. }
  936. /*
  937.  * PUBLIC: int __dbcl_rep_process_message __P((DB_ENV *, DBT *, DBT *, int *));
  938.  */
  939. int
  940. __dbcl_rep_process_message(dbenv, rec, control, idp)
  941. DB_ENV * dbenv;
  942. DBT * rec;
  943. DBT * control;
  944. int * idp;
  945. {
  946. COMPQUIET(rec, NULL);
  947. COMPQUIET(control, NULL);
  948. COMPQUIET(idp, 0);
  949. return (__dbcl_rpc_illegal(dbenv, "rep_process_message"));
  950. }
  951. /*
  952.  * PUBLIC: int __dbcl_rep_set_limit __P((DB_ENV *, u_int32_t, u_int32_t));
  953.  */
  954. int
  955. __dbcl_rep_set_limit(dbenv, mbytes, bytes)
  956. DB_ENV * dbenv;
  957. u_int32_t mbytes;
  958. u_int32_t bytes;
  959. {
  960. COMPQUIET(mbytes, 0);
  961. COMPQUIET(bytes, 0);
  962. return (__dbcl_rpc_illegal(dbenv, "rep_set_limit"));
  963. }
  964. /*
  965.  * PUBLIC: int __dbcl_rep_set_request __P((DB_ENV *, u_int32_t, u_int32_t));
  966.  */
  967. int
  968. __dbcl_rep_set_request(dbenv, min, max)
  969. DB_ENV * dbenv;
  970. u_int32_t min;
  971. u_int32_t max;
  972. {
  973. COMPQUIET(min, 0);
  974. COMPQUIET(max, 0);
  975. return (__dbcl_rpc_illegal(dbenv, "rep_set_request"));
  976. }
  977. /*
  978.  * PUBLIC: int __dbcl_rep_set_rep_transport __P((DB_ENV *, int,
  979.  * PUBLIC:      int (*)(DB_ENV *, const DBT *, const DBT *, int, u_int32_t)));
  980.  */
  981. int
  982. __dbcl_rep_set_rep_transport(dbenv, id, func0)
  983. DB_ENV * dbenv;
  984. int id;
  985. int (*func0) __P((DB_ENV *, const DBT *, const DBT *, int, u_int32_t));
  986. {
  987. COMPQUIET(id, 0);
  988. COMPQUIET(func0, 0);
  989. return (__dbcl_rpc_illegal(dbenv, "rep_set_rep_transport"));
  990. }
  991. /*
  992.  * PUBLIC: int __dbcl_rep_start __P((DB_ENV *, DBT *, u_int32_t));
  993.  */
  994. int
  995. __dbcl_rep_start(dbenv, cdata, flags)
  996. DB_ENV * dbenv;
  997. DBT * cdata;
  998. u_int32_t flags;
  999. {
  1000. COMPQUIET(cdata, NULL);
  1001. COMPQUIET(flags, 0);
  1002. return (__dbcl_rpc_illegal(dbenv, "rep_start"));
  1003. }
  1004. /*
  1005.  * PUBLIC: int __dbcl_rep_stat __P((DB_ENV *, DB_REP_STAT **, u_int32_t));
  1006.  */
  1007. int
  1008. __dbcl_rep_stat(dbenv, statp, flags)
  1009. DB_ENV * dbenv;
  1010. DB_REP_STAT ** statp;
  1011. u_int32_t flags;
  1012. {
  1013. COMPQUIET(statp, 0);
  1014. COMPQUIET(flags, 0);
  1015. return (__dbcl_rpc_illegal(dbenv, "rep_stat"));
  1016. }
  1017. /*
  1018.  * PUBLIC: int __dbcl_db_alloc __P((DB *, void *(*)(size_t), void *(*)(void *,
  1019.  * PUBLIC:      size_t), void (*)(void *)));
  1020.  */
  1021. int
  1022. __dbcl_db_alloc(dbp, func0, func1, func2)
  1023. DB * dbp;
  1024. void *(*func0) __P((size_t));
  1025. void *(*func1) __P((void *, size_t));
  1026. void (*func2) __P((void *));
  1027. {
  1028. DB_ENV *dbenv;
  1029. dbenv = dbp->dbenv;
  1030. COMPQUIET(func0, 0);
  1031. COMPQUIET(func1, 0);
  1032. COMPQUIET(func2, 0);
  1033. return (__dbcl_rpc_illegal(dbenv, "db_alloc"));
  1034. }
  1035. /*
  1036.  * PUBLIC: int __dbcl_db_associate __P((DB *, DB_TXN *, DB *, int (*)(DB *,
  1037.  * PUBLIC:      const DBT *, const DBT *, DBT *), u_int32_t));
  1038.  */
  1039. int
  1040. __dbcl_db_associate(dbp, txnp, sdbp, func0, flags)
  1041. DB * dbp;
  1042. DB_TXN * txnp;
  1043. DB * sdbp;
  1044. int (*func0) __P((DB *, const DBT *, const DBT *, DBT *));
  1045. u_int32_t flags;
  1046. {
  1047. CLIENT *cl;
  1048. __db_associate_msg msg;
  1049. __db_associate_reply *replyp = NULL;
  1050. int ret;
  1051. DB_ENV *dbenv;
  1052. ret = 0;
  1053. dbenv = dbp->dbenv;
  1054. if (dbenv == NULL || !RPC_ON(dbenv))
  1055. return (__dbcl_noserver(NULL));
  1056. cl = (CLIENT *)dbenv->cl_handle;
  1057. if (func0 != NULL) {
  1058. __db_err(dbenv, "User functions not supported in RPC");
  1059. return (EINVAL);
  1060. }
  1061. if (dbp == NULL)
  1062. msg.dbpcl_id = 0;
  1063. else
  1064. msg.dbpcl_id = dbp->cl_id;
  1065. if (txnp == NULL)
  1066. msg.txnpcl_id = 0;
  1067. else
  1068. msg.txnpcl_id = txnp->txnid;
  1069. if (sdbp == NULL)
  1070. msg.sdbpcl_id = 0;
  1071. else
  1072. msg.sdbpcl_id = sdbp->cl_id;
  1073. msg.flags = flags;
  1074. replyp = __db_db_associate_4001(&msg, cl);
  1075. if (replyp == NULL) {
  1076. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1077. ret = DB_NOSERVER;
  1078. goto out;
  1079. }
  1080. ret = replyp->status;
  1081. out:
  1082. if (replyp != NULL)
  1083. xdr_free((xdrproc_t)xdr___db_associate_reply, (void *)replyp);
  1084. return (ret);
  1085. }
  1086. /*
  1087.  * PUBLIC: int __dbcl_db_bt_compare __P((DB *, int (*)(DB *, const DBT *,
  1088.  * PUBLIC:      const DBT *)));
  1089.  */
  1090. int
  1091. __dbcl_db_bt_compare(dbp, func0)
  1092. DB * dbp;
  1093. int (*func0) __P((DB *, const DBT *, const DBT *));
  1094. {
  1095. DB_ENV *dbenv;
  1096. dbenv = dbp->dbenv;
  1097. COMPQUIET(func0, 0);
  1098. return (__dbcl_rpc_illegal(dbenv, "db_bt_compare"));
  1099. }
  1100. /*
  1101.  * PUBLIC: int __dbcl_db_bt_maxkey __P((DB *, u_int32_t));
  1102.  */
  1103. int
  1104. __dbcl_db_bt_maxkey(dbp, maxkey)
  1105. DB * dbp;
  1106. u_int32_t maxkey;
  1107. {
  1108. CLIENT *cl;
  1109. __db_bt_maxkey_msg msg;
  1110. __db_bt_maxkey_reply *replyp = NULL;
  1111. int ret;
  1112. DB_ENV *dbenv;
  1113. ret = 0;
  1114. dbenv = dbp->dbenv;
  1115. if (dbenv == NULL || !RPC_ON(dbenv))
  1116. return (__dbcl_noserver(NULL));
  1117. cl = (CLIENT *)dbenv->cl_handle;
  1118. if (dbp == NULL)
  1119. msg.dbpcl_id = 0;
  1120. else
  1121. msg.dbpcl_id = dbp->cl_id;
  1122. msg.maxkey = maxkey;
  1123. replyp = __db_db_bt_maxkey_4001(&msg, cl);
  1124. if (replyp == NULL) {
  1125. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1126. ret = DB_NOSERVER;
  1127. goto out;
  1128. }
  1129. ret = replyp->status;
  1130. out:
  1131. if (replyp != NULL)
  1132. xdr_free((xdrproc_t)xdr___db_bt_maxkey_reply, (void *)replyp);
  1133. return (ret);
  1134. }
  1135. /*
  1136.  * PUBLIC: int __dbcl_db_bt_minkey __P((DB *, u_int32_t));
  1137.  */
  1138. int
  1139. __dbcl_db_bt_minkey(dbp, minkey)
  1140. DB * dbp;
  1141. u_int32_t minkey;
  1142. {
  1143. CLIENT *cl;
  1144. __db_bt_minkey_msg msg;
  1145. __db_bt_minkey_reply *replyp = NULL;
  1146. int ret;
  1147. DB_ENV *dbenv;
  1148. ret = 0;
  1149. dbenv = dbp->dbenv;
  1150. if (dbenv == NULL || !RPC_ON(dbenv))
  1151. return (__dbcl_noserver(NULL));
  1152. cl = (CLIENT *)dbenv->cl_handle;
  1153. if (dbp == NULL)
  1154. msg.dbpcl_id = 0;
  1155. else
  1156. msg.dbpcl_id = dbp->cl_id;
  1157. msg.minkey = minkey;
  1158. replyp = __db_db_bt_minkey_4001(&msg, cl);
  1159. if (replyp == NULL) {
  1160. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1161. ret = DB_NOSERVER;
  1162. goto out;
  1163. }
  1164. ret = replyp->status;
  1165. out:
  1166. if (replyp != NULL)
  1167. xdr_free((xdrproc_t)xdr___db_bt_minkey_reply, (void *)replyp);
  1168. return (ret);
  1169. }
  1170. /*
  1171.  * PUBLIC: int __dbcl_db_bt_prefix __P((DB *, size_t(*)(DB *, const DBT *,
  1172.  * PUBLIC:      const DBT *)));
  1173.  */
  1174. int
  1175. __dbcl_db_bt_prefix(dbp, func0)
  1176. DB * dbp;
  1177. size_t (*func0) __P((DB *, const DBT *, const DBT *));
  1178. {
  1179. DB_ENV *dbenv;
  1180. dbenv = dbp->dbenv;
  1181. COMPQUIET(func0, 0);
  1182. return (__dbcl_rpc_illegal(dbenv, "db_bt_prefix"));
  1183. }
  1184. /*
  1185.  * PUBLIC: int __dbcl_db_set_append_recno __P((DB *, int (*)(DB *, DBT *,
  1186.  * PUBLIC:      db_recno_t)));
  1187.  */
  1188. int
  1189. __dbcl_db_set_append_recno(dbp, func0)
  1190. DB * dbp;
  1191. int (*func0) __P((DB *, DBT *, db_recno_t));
  1192. {
  1193. DB_ENV *dbenv;
  1194. dbenv = dbp->dbenv;
  1195. COMPQUIET(func0, 0);
  1196. return (__dbcl_rpc_illegal(dbenv, "db_set_append_recno"));
  1197. }
  1198. /*
  1199.  * PUBLIC: int __dbcl_db_cache_priority __P((DB *, DB_CACHE_PRIORITY));
  1200.  */
  1201. int
  1202. __dbcl_db_cache_priority(dbp, priority)
  1203. DB * dbp;
  1204. DB_CACHE_PRIORITY priority;
  1205. {
  1206. DB_ENV *dbenv;
  1207. dbenv = dbp->dbenv;
  1208. COMPQUIET(priority, 0);
  1209. return (__dbcl_rpc_illegal(dbenv, "db_cache_priority"));
  1210. }
  1211. /*
  1212.  * PUBLIC: int __dbcl_db_cachesize __P((DB *, u_int32_t, u_int32_t, int));
  1213.  */
  1214. int
  1215. __dbcl_db_cachesize(dbp, gbytes, bytes, ncache)
  1216. DB * dbp;
  1217. u_int32_t gbytes;
  1218. u_int32_t bytes;
  1219. int ncache;
  1220. {
  1221. DB_ENV *dbenv;
  1222. dbenv = dbp->dbenv;
  1223. COMPQUIET(gbytes, 0);
  1224. COMPQUIET(bytes, 0);
  1225. COMPQUIET(ncache, 0);
  1226. return (__dbcl_rpc_illegal(dbenv, "db_cachesize"));
  1227. }
  1228. /*
  1229.  * PUBLIC: int __dbcl_db_close __P((DB *, u_int32_t));
  1230.  */
  1231. int
  1232. __dbcl_db_close(dbp, flags)
  1233. DB * dbp;
  1234. u_int32_t flags;
  1235. {
  1236. CLIENT *cl;
  1237. __db_close_msg msg;
  1238. __db_close_reply *replyp = NULL;
  1239. int ret;
  1240. DB_ENV *dbenv;
  1241. ret = 0;
  1242. dbenv = dbp->dbenv;
  1243. if (dbenv == NULL || !RPC_ON(dbenv))
  1244. return (__dbcl_noserver(NULL));
  1245. cl = (CLIENT *)dbenv->cl_handle;
  1246. if (dbp == NULL)
  1247. msg.dbpcl_id = 0;
  1248. else
  1249. msg.dbpcl_id = dbp->cl_id;
  1250. msg.flags = flags;
  1251. replyp = __db_db_close_4001(&msg, cl);
  1252. if (replyp == NULL) {
  1253. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1254. ret = DB_NOSERVER;
  1255. goto out;
  1256. }
  1257. ret = __dbcl_db_close_ret(dbp, flags, replyp);
  1258. out:
  1259. if (replyp != NULL)
  1260. xdr_free((xdrproc_t)xdr___db_close_reply, (void *)replyp);
  1261. return (ret);
  1262. }
  1263. /*
  1264.  * PUBLIC: int __dbcl_db_create __P((DB *, DB_ENV *, u_int32_t));
  1265.  */
  1266. int
  1267. __dbcl_db_create(dbp, dbenv, flags)
  1268. DB * dbp;
  1269. DB_ENV * dbenv;
  1270. u_int32_t flags;
  1271. {
  1272. CLIENT *cl;
  1273. __db_create_msg msg;
  1274. __db_create_reply *replyp = NULL;
  1275. int ret;
  1276. ret = 0;
  1277. if (dbenv == NULL || !RPC_ON(dbenv))
  1278. return (__dbcl_noserver(dbenv));
  1279. cl = (CLIENT *)dbenv->cl_handle;
  1280. if (dbenv == NULL)
  1281. msg.dbenvcl_id = 0;
  1282. else
  1283. msg.dbenvcl_id = dbenv->cl_id;
  1284. msg.flags = flags;
  1285. replyp = __db_db_create_4001(&msg, cl);
  1286. if (replyp == NULL) {
  1287. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1288. ret = DB_NOSERVER;
  1289. goto out;
  1290. }
  1291. ret = __dbcl_db_create_ret(dbp, dbenv, flags, replyp);
  1292. out:
  1293. if (replyp != NULL)
  1294. xdr_free((xdrproc_t)xdr___db_create_reply, (void *)replyp);
  1295. return (ret);
  1296. }
  1297. /*
  1298.  * PUBLIC: int __dbcl_db_del __P((DB *, DB_TXN *, DBT *, u_int32_t));
  1299.  */
  1300. int
  1301. __dbcl_db_del(dbp, txnp, key, flags)
  1302. DB * dbp;
  1303. DB_TXN * txnp;
  1304. DBT * key;
  1305. u_int32_t flags;
  1306. {
  1307. CLIENT *cl;
  1308. __db_del_msg msg;
  1309. __db_del_reply *replyp = NULL;
  1310. int ret;
  1311. DB_ENV *dbenv;
  1312. ret = 0;
  1313. dbenv = dbp->dbenv;
  1314. if (dbenv == NULL || !RPC_ON(dbenv))
  1315. return (__dbcl_noserver(NULL));
  1316. cl = (CLIENT *)dbenv->cl_handle;
  1317. if (dbp == NULL)
  1318. msg.dbpcl_id = 0;
  1319. else
  1320. msg.dbpcl_id = dbp->cl_id;
  1321. if (txnp == NULL)
  1322. msg.txnpcl_id = 0;
  1323. else
  1324. msg.txnpcl_id = txnp->txnid;
  1325. msg.keydlen = key->dlen;
  1326. msg.keydoff = key->doff;
  1327. msg.keyulen = key->ulen;
  1328. msg.keyflags = key->flags;
  1329. msg.keydata.keydata_val = key->data;
  1330. msg.keydata.keydata_len = key->size;
  1331. msg.flags = flags;
  1332. replyp = __db_db_del_4001(&msg, cl);
  1333. if (replyp == NULL) {
  1334. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1335. ret = DB_NOSERVER;
  1336. goto out;
  1337. }
  1338. ret = replyp->status;
  1339. out:
  1340. if (replyp != NULL)
  1341. xdr_free((xdrproc_t)xdr___db_del_reply, (void *)replyp);
  1342. return (ret);
  1343. }
  1344. /*
  1345.  * PUBLIC: int __dbcl_db_dup_compare __P((DB *, int (*)(DB *, const DBT *,
  1346.  * PUBLIC:      const DBT *)));
  1347.  */
  1348. int
  1349. __dbcl_db_dup_compare(dbp, func0)
  1350. DB * dbp;
  1351. int (*func0) __P((DB *, const DBT *, const DBT *));
  1352. {
  1353. DB_ENV *dbenv;
  1354. dbenv = dbp->dbenv;
  1355. COMPQUIET(func0, 0);
  1356. return (__dbcl_rpc_illegal(dbenv, "db_dup_compare"));
  1357. }
  1358. /*
  1359.  * PUBLIC: int __dbcl_db_encrypt __P((DB *, const char *, u_int32_t));
  1360.  */
  1361. int
  1362. __dbcl_db_encrypt(dbp, passwd, flags)
  1363. DB * dbp;
  1364. const char * passwd;
  1365. u_int32_t flags;
  1366. {
  1367. CLIENT *cl;
  1368. __db_encrypt_msg msg;
  1369. __db_encrypt_reply *replyp = NULL;
  1370. int ret;
  1371. DB_ENV *dbenv;
  1372. ret = 0;
  1373. dbenv = dbp->dbenv;
  1374. if (dbenv == NULL || !RPC_ON(dbenv))
  1375. return (__dbcl_noserver(NULL));
  1376. cl = (CLIENT *)dbenv->cl_handle;
  1377. if (dbp == NULL)
  1378. msg.dbpcl_id = 0;
  1379. else
  1380. msg.dbpcl_id = dbp->cl_id;
  1381. if (passwd == NULL)
  1382. msg.passwd = "";
  1383. else
  1384. msg.passwd = (char *)passwd;
  1385. msg.flags = flags;
  1386. replyp = __db_db_encrypt_4001(&msg, cl);
  1387. if (replyp == NULL) {
  1388. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1389. ret = DB_NOSERVER;
  1390. goto out;
  1391. }
  1392. ret = replyp->status;
  1393. out:
  1394. if (replyp != NULL)
  1395. xdr_free((xdrproc_t)xdr___db_encrypt_reply, (void *)replyp);
  1396. return (ret);
  1397. }
  1398. /*
  1399.  * PUBLIC: int __dbcl_db_extentsize __P((DB *, u_int32_t));
  1400.  */
  1401. int
  1402. __dbcl_db_extentsize(dbp, extentsize)
  1403. DB * dbp;
  1404. u_int32_t extentsize;
  1405. {
  1406. CLIENT *cl;
  1407. __db_extentsize_msg msg;
  1408. __db_extentsize_reply *replyp = NULL;
  1409. int ret;
  1410. DB_ENV *dbenv;
  1411. ret = 0;
  1412. dbenv = dbp->dbenv;
  1413. if (dbenv == NULL || !RPC_ON(dbenv))
  1414. return (__dbcl_noserver(NULL));
  1415. cl = (CLIENT *)dbenv->cl_handle;
  1416. if (dbp == NULL)
  1417. msg.dbpcl_id = 0;
  1418. else
  1419. msg.dbpcl_id = dbp->cl_id;
  1420. msg.extentsize = extentsize;
  1421. replyp = __db_db_extentsize_4001(&msg, cl);
  1422. if (replyp == NULL) {
  1423. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1424. ret = DB_NOSERVER;
  1425. goto out;
  1426. }
  1427. ret = replyp->status;
  1428. out:
  1429. if (replyp != NULL)
  1430. xdr_free((xdrproc_t)xdr___db_extentsize_reply, (void *)replyp);
  1431. return (ret);
  1432. }
  1433. /*
  1434.  * PUBLIC: int __dbcl_db_fd __P((DB *, int *));
  1435.  */
  1436. int
  1437. __dbcl_db_fd(dbp, fdp)
  1438. DB * dbp;
  1439. int * fdp;
  1440. {
  1441. DB_ENV *dbenv;
  1442. dbenv = dbp->dbenv;
  1443. COMPQUIET(fdp, 0);
  1444. return (__dbcl_rpc_illegal(dbenv, "db_fd"));
  1445. }
  1446. /*
  1447.  * PUBLIC: int __dbcl_db_feedback __P((DB *, void (*)(DB *, int, int)));
  1448.  */
  1449. int
  1450. __dbcl_db_feedback(dbp, func0)
  1451. DB * dbp;
  1452. void (*func0) __P((DB *, int, int));
  1453. {
  1454. DB_ENV *dbenv;
  1455. dbenv = dbp->dbenv;
  1456. COMPQUIET(func0, 0);
  1457. return (__dbcl_rpc_illegal(dbenv, "db_feedback"));
  1458. }
  1459. /*
  1460.  * PUBLIC: int __dbcl_db_flags __P((DB *, u_int32_t));
  1461.  */
  1462. int
  1463. __dbcl_db_flags(dbp, flags)
  1464. DB * dbp;
  1465. u_int32_t flags;
  1466. {
  1467. CLIENT *cl;
  1468. __db_flags_msg msg;
  1469. __db_flags_reply *replyp = NULL;
  1470. int ret;
  1471. DB_ENV *dbenv;
  1472. ret = 0;
  1473. dbenv = dbp->dbenv;
  1474. if (dbenv == NULL || !RPC_ON(dbenv))
  1475. return (__dbcl_noserver(NULL));
  1476. cl = (CLIENT *)dbenv->cl_handle;
  1477. if (dbp == NULL)
  1478. msg.dbpcl_id = 0;
  1479. else
  1480. msg.dbpcl_id = dbp->cl_id;
  1481. msg.flags = flags;
  1482. replyp = __db_db_flags_4001(&msg, cl);
  1483. if (replyp == NULL) {
  1484. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1485. ret = DB_NOSERVER;
  1486. goto out;
  1487. }
  1488. ret = replyp->status;
  1489. out:
  1490. if (replyp != NULL)
  1491. xdr_free((xdrproc_t)xdr___db_flags_reply, (void *)replyp);
  1492. return (ret);
  1493. }
  1494. /*
  1495.  * PUBLIC: int __dbcl_db_get __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t));
  1496.  */
  1497. int
  1498. __dbcl_db_get(dbp, txnp, key, data, flags)
  1499. DB * dbp;
  1500. DB_TXN * txnp;
  1501. DBT * key;
  1502. DBT * data;
  1503. u_int32_t flags;
  1504. {
  1505. CLIENT *cl;
  1506. __db_get_msg msg;
  1507. __db_get_reply *replyp = NULL;
  1508. int ret;
  1509. DB_ENV *dbenv;
  1510. ret = 0;
  1511. dbenv = dbp->dbenv;
  1512. if (dbenv == NULL || !RPC_ON(dbenv))
  1513. return (__dbcl_noserver(NULL));
  1514. cl = (CLIENT *)dbenv->cl_handle;
  1515. if (dbp == NULL)
  1516. msg.dbpcl_id = 0;
  1517. else
  1518. msg.dbpcl_id = dbp->cl_id;
  1519. if (txnp == NULL)
  1520. msg.txnpcl_id = 0;
  1521. else
  1522. msg.txnpcl_id = txnp->txnid;
  1523. msg.keydlen = key->dlen;
  1524. msg.keydoff = key->doff;
  1525. msg.keyulen = key->ulen;
  1526. msg.keyflags = key->flags;
  1527. msg.keydata.keydata_val = key->data;
  1528. msg.keydata.keydata_len = key->size;
  1529. msg.datadlen = data->dlen;
  1530. msg.datadoff = data->doff;
  1531. msg.dataulen = data->ulen;
  1532. msg.dataflags = data->flags;
  1533. msg.datadata.datadata_val = data->data;
  1534. msg.datadata.datadata_len = data->size;
  1535. msg.flags = flags;
  1536. replyp = __db_db_get_4001(&msg, cl);
  1537. if (replyp == NULL) {
  1538. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1539. ret = DB_NOSERVER;
  1540. goto out;
  1541. }
  1542. ret = __dbcl_db_get_ret(dbp, txnp, key, data, flags, replyp);
  1543. out:
  1544. if (replyp != NULL)
  1545. xdr_free((xdrproc_t)xdr___db_get_reply, (void *)replyp);
  1546. return (ret);
  1547. }
  1548. /*
  1549.  * PUBLIC: int __dbcl_db_h_ffactor __P((DB *, u_int32_t));
  1550.  */
  1551. int
  1552. __dbcl_db_h_ffactor(dbp, ffactor)
  1553. DB * dbp;
  1554. u_int32_t ffactor;
  1555. {
  1556. CLIENT *cl;
  1557. __db_h_ffactor_msg msg;
  1558. __db_h_ffactor_reply *replyp = NULL;
  1559. int ret;
  1560. DB_ENV *dbenv;
  1561. ret = 0;
  1562. dbenv = dbp->dbenv;
  1563. if (dbenv == NULL || !RPC_ON(dbenv))
  1564. return (__dbcl_noserver(NULL));
  1565. cl = (CLIENT *)dbenv->cl_handle;
  1566. if (dbp == NULL)
  1567. msg.dbpcl_id = 0;
  1568. else
  1569. msg.dbpcl_id = dbp->cl_id;
  1570. msg.ffactor = ffactor;
  1571. replyp = __db_db_h_ffactor_4001(&msg, cl);
  1572. if (replyp == NULL) {
  1573. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1574. ret = DB_NOSERVER;
  1575. goto out;
  1576. }
  1577. ret = replyp->status;
  1578. out:
  1579. if (replyp != NULL)
  1580. xdr_free((xdrproc_t)xdr___db_h_ffactor_reply, (void *)replyp);
  1581. return (ret);
  1582. }
  1583. /*
  1584.  * PUBLIC: int __dbcl_db_h_hash __P((DB *, u_int32_t(*)(DB *, const void *,
  1585.  * PUBLIC:      u_int32_t)));
  1586.  */
  1587. int
  1588. __dbcl_db_h_hash(dbp, func0)
  1589. DB * dbp;
  1590. u_int32_t (*func0) __P((DB *, const void *, u_int32_t));
  1591. {
  1592. DB_ENV *dbenv;
  1593. dbenv = dbp->dbenv;
  1594. COMPQUIET(func0, 0);
  1595. return (__dbcl_rpc_illegal(dbenv, "db_h_hash"));
  1596. }
  1597. /*
  1598.  * PUBLIC: int __dbcl_db_h_nelem __P((DB *, u_int32_t));
  1599.  */
  1600. int
  1601. __dbcl_db_h_nelem(dbp, nelem)
  1602. DB * dbp;
  1603. u_int32_t nelem;
  1604. {
  1605. CLIENT *cl;
  1606. __db_h_nelem_msg msg;
  1607. __db_h_nelem_reply *replyp = NULL;
  1608. int ret;
  1609. DB_ENV *dbenv;
  1610. ret = 0;
  1611. dbenv = dbp->dbenv;
  1612. if (dbenv == NULL || !RPC_ON(dbenv))
  1613. return (__dbcl_noserver(NULL));
  1614. cl = (CLIENT *)dbenv->cl_handle;
  1615. if (dbp == NULL)
  1616. msg.dbpcl_id = 0;
  1617. else
  1618. msg.dbpcl_id = dbp->cl_id;
  1619. msg.nelem = nelem;
  1620. replyp = __db_db_h_nelem_4001(&msg, cl);
  1621. if (replyp == NULL) {
  1622. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1623. ret = DB_NOSERVER;
  1624. goto out;
  1625. }
  1626. ret = replyp->status;
  1627. out:
  1628. if (replyp != NULL)
  1629. xdr_free((xdrproc_t)xdr___db_h_nelem_reply, (void *)replyp);
  1630. return (ret);
  1631. }
  1632. /*
  1633.  * PUBLIC: int __dbcl_db_key_range __P((DB *, DB_TXN *, DBT *, DB_KEY_RANGE *,
  1634.  * PUBLIC:      u_int32_t));
  1635.  */
  1636. int
  1637. __dbcl_db_key_range(dbp, txnp, key, range, flags)
  1638. DB * dbp;
  1639. DB_TXN * txnp;
  1640. DBT * key;
  1641. DB_KEY_RANGE * range;
  1642. u_int32_t flags;
  1643. {
  1644. CLIENT *cl;
  1645. __db_key_range_msg msg;
  1646. __db_key_range_reply *replyp = NULL;
  1647. int ret;
  1648. DB_ENV *dbenv;
  1649. ret = 0;
  1650. dbenv = dbp->dbenv;
  1651. if (dbenv == NULL || !RPC_ON(dbenv))
  1652. return (__dbcl_noserver(NULL));
  1653. cl = (CLIENT *)dbenv->cl_handle;
  1654. if (dbp == NULL)
  1655. msg.dbpcl_id = 0;
  1656. else
  1657. msg.dbpcl_id = dbp->cl_id;
  1658. if (txnp == NULL)
  1659. msg.txnpcl_id = 0;
  1660. else
  1661. msg.txnpcl_id = txnp->txnid;
  1662. msg.keydlen = key->dlen;
  1663. msg.keydoff = key->doff;
  1664. msg.keyulen = key->ulen;
  1665. msg.keyflags = key->flags;
  1666. msg.keydata.keydata_val = key->data;
  1667. msg.keydata.keydata_len = key->size;
  1668. msg.flags = flags;
  1669. replyp = __db_db_key_range_4001(&msg, cl);
  1670. if (replyp == NULL) {
  1671. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1672. ret = DB_NOSERVER;
  1673. goto out;
  1674. }
  1675. ret = __dbcl_db_key_range_ret(dbp, txnp, key, range, flags, replyp);
  1676. out:
  1677. if (replyp != NULL)
  1678. xdr_free((xdrproc_t)xdr___db_key_range_reply, (void *)replyp);
  1679. return (ret);
  1680. }
  1681. /*
  1682.  * PUBLIC: int __dbcl_db_lorder __P((DB *, int));
  1683.  */
  1684. int
  1685. __dbcl_db_lorder(dbp, lorder)
  1686. DB * dbp;
  1687. int lorder;
  1688. {
  1689. CLIENT *cl;
  1690. __db_lorder_msg msg;
  1691. __db_lorder_reply *replyp = NULL;
  1692. int ret;
  1693. DB_ENV *dbenv;
  1694. ret = 0;
  1695. dbenv = dbp->dbenv;
  1696. if (dbenv == NULL || !RPC_ON(dbenv))
  1697. return (__dbcl_noserver(NULL));
  1698. cl = (CLIENT *)dbenv->cl_handle;
  1699. if (dbp == NULL)
  1700. msg.dbpcl_id = 0;
  1701. else
  1702. msg.dbpcl_id = dbp->cl_id;
  1703. msg.lorder = lorder;
  1704. replyp = __db_db_lorder_4001(&msg, cl);
  1705. if (replyp == NULL) {
  1706. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1707. ret = DB_NOSERVER;
  1708. goto out;
  1709. }
  1710. ret = replyp->status;
  1711. out:
  1712. if (replyp != NULL)
  1713. xdr_free((xdrproc_t)xdr___db_lorder_reply, (void *)replyp);
  1714. return (ret);
  1715. }
  1716. /*
  1717.  * PUBLIC: int __dbcl_db_open __P((DB *, DB_TXN *, const char *, const char *,
  1718.  * PUBLIC:      DBTYPE, u_int32_t, int));
  1719.  */
  1720. int
  1721. __dbcl_db_open(dbp, txnp, name, subdb, type, flags, mode)
  1722. DB * dbp;
  1723. DB_TXN * txnp;
  1724. const char * name;
  1725. const char * subdb;
  1726. DBTYPE type;
  1727. u_int32_t flags;
  1728. int mode;
  1729. {
  1730. CLIENT *cl;
  1731. __db_open_msg msg;
  1732. __db_open_reply *replyp = NULL;
  1733. int ret;
  1734. DB_ENV *dbenv;
  1735. ret = 0;
  1736. dbenv = dbp->dbenv;
  1737. if (dbenv == NULL || !RPC_ON(dbenv))
  1738. return (__dbcl_noserver(NULL));
  1739. cl = (CLIENT *)dbenv->cl_handle;
  1740. if (dbp == NULL)
  1741. msg.dbpcl_id = 0;
  1742. else
  1743. msg.dbpcl_id = dbp->cl_id;
  1744. if (txnp == NULL)
  1745. msg.txnpcl_id = 0;
  1746. else
  1747. msg.txnpcl_id = txnp->txnid;
  1748. if (name == NULL)
  1749. msg.name = "";
  1750. else
  1751. msg.name = (char *)name;
  1752. if (subdb == NULL)
  1753. msg.subdb = "";
  1754. else
  1755. msg.subdb = (char *)subdb;
  1756. msg.type = type;
  1757. msg.flags = flags;
  1758. msg.mode = mode;
  1759. replyp = __db_db_open_4001(&msg, cl);
  1760. if (replyp == NULL) {
  1761. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1762. ret = DB_NOSERVER;
  1763. goto out;
  1764. }
  1765. ret = __dbcl_db_open_ret(dbp, txnp, name, subdb, type, flags, mode, replyp);
  1766. out:
  1767. if (replyp != NULL)
  1768. xdr_free((xdrproc_t)xdr___db_open_reply, (void *)replyp);
  1769. return (ret);
  1770. }
  1771. /*
  1772.  * PUBLIC: int __dbcl_db_pagesize __P((DB *, u_int32_t));
  1773.  */
  1774. int
  1775. __dbcl_db_pagesize(dbp, pagesize)
  1776. DB * dbp;
  1777. u_int32_t pagesize;
  1778. {
  1779. CLIENT *cl;
  1780. __db_pagesize_msg msg;
  1781. __db_pagesize_reply *replyp = NULL;
  1782. int ret;
  1783. DB_ENV *dbenv;
  1784. ret = 0;
  1785. dbenv = dbp->dbenv;
  1786. if (dbenv == NULL || !RPC_ON(dbenv))
  1787. return (__dbcl_noserver(NULL));
  1788. cl = (CLIENT *)dbenv->cl_handle;
  1789. if (dbp == NULL)
  1790. msg.dbpcl_id = 0;
  1791. else
  1792. msg.dbpcl_id = dbp->cl_id;
  1793. msg.pagesize = pagesize;
  1794. replyp = __db_db_pagesize_4001(&msg, cl);
  1795. if (replyp == NULL) {
  1796. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1797. ret = DB_NOSERVER;
  1798. goto out;
  1799. }
  1800. ret = replyp->status;
  1801. out:
  1802. if (replyp != NULL)
  1803. xdr_free((xdrproc_t)xdr___db_pagesize_reply, (void *)replyp);
  1804. return (ret);
  1805. }
  1806. /*
  1807.  * PUBLIC: int __dbcl_db_panic __P((DB *, void (*)(DB_ENV *, int)));
  1808.  */
  1809. int
  1810. __dbcl_db_panic(dbp, func0)
  1811. DB * dbp;
  1812. void (*func0) __P((DB_ENV *, int));
  1813. {
  1814. DB_ENV *dbenv;
  1815. dbenv = dbp->dbenv;
  1816. COMPQUIET(func0, 0);
  1817. return (__dbcl_rpc_illegal(dbenv, "db_panic"));
  1818. }
  1819. /*
  1820.  * PUBLIC: int __dbcl_db_pget __P((DB *, DB_TXN *, DBT *, DBT *, DBT *,
  1821.  * PUBLIC:      u_int32_t));
  1822.  */
  1823. int
  1824. __dbcl_db_pget(dbp, txnp, skey, pkey, data, flags)
  1825. DB * dbp;
  1826. DB_TXN * txnp;
  1827. DBT * skey;
  1828. DBT * pkey;
  1829. DBT * data;
  1830. u_int32_t flags;
  1831. {
  1832. CLIENT *cl;
  1833. __db_pget_msg msg;
  1834. __db_pget_reply *replyp = NULL;
  1835. int ret;
  1836. DB_ENV *dbenv;
  1837. ret = 0;
  1838. dbenv = dbp->dbenv;
  1839. if (dbenv == NULL || !RPC_ON(dbenv))
  1840. return (__dbcl_noserver(NULL));
  1841. cl = (CLIENT *)dbenv->cl_handle;
  1842. if (dbp == NULL)
  1843. msg.dbpcl_id = 0;
  1844. else
  1845. msg.dbpcl_id = dbp->cl_id;
  1846. if (txnp == NULL)
  1847. msg.txnpcl_id = 0;
  1848. else
  1849. msg.txnpcl_id = txnp->txnid;
  1850. msg.skeydlen = skey->dlen;
  1851. msg.skeydoff = skey->doff;
  1852. msg.skeyulen = skey->ulen;
  1853. msg.skeyflags = skey->flags;
  1854. msg.skeydata.skeydata_val = skey->data;
  1855. msg.skeydata.skeydata_len = skey->size;
  1856. msg.pkeydlen = pkey->dlen;
  1857. msg.pkeydoff = pkey->doff;
  1858. msg.pkeyulen = pkey->ulen;
  1859. msg.pkeyflags = pkey->flags;
  1860. msg.pkeydata.pkeydata_val = pkey->data;
  1861. msg.pkeydata.pkeydata_len = pkey->size;
  1862. msg.datadlen = data->dlen;
  1863. msg.datadoff = data->doff;
  1864. msg.dataulen = data->ulen;
  1865. msg.dataflags = data->flags;
  1866. msg.datadata.datadata_val = data->data;
  1867. msg.datadata.datadata_len = data->size;
  1868. msg.flags = flags;
  1869. replyp = __db_db_pget_4001(&msg, cl);
  1870. if (replyp == NULL) {
  1871. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1872. ret = DB_NOSERVER;
  1873. goto out;
  1874. }
  1875. ret = __dbcl_db_pget_ret(dbp, txnp, skey, pkey, data, flags, replyp);
  1876. out:
  1877. if (replyp != NULL)
  1878. xdr_free((xdrproc_t)xdr___db_pget_reply, (void *)replyp);
  1879. return (ret);
  1880. }
  1881. /*
  1882.  * PUBLIC: int __dbcl_db_put __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t));
  1883.  */
  1884. int
  1885. __dbcl_db_put(dbp, txnp, key, data, flags)
  1886. DB * dbp;
  1887. DB_TXN * txnp;
  1888. DBT * key;
  1889. DBT * data;
  1890. u_int32_t flags;
  1891. {
  1892. CLIENT *cl;
  1893. __db_put_msg msg;
  1894. __db_put_reply *replyp = NULL;
  1895. int ret;
  1896. DB_ENV *dbenv;
  1897. ret = 0;
  1898. dbenv = dbp->dbenv;
  1899. if (dbenv == NULL || !RPC_ON(dbenv))
  1900. return (__dbcl_noserver(NULL));
  1901. cl = (CLIENT *)dbenv->cl_handle;
  1902. if (dbp == NULL)
  1903. msg.dbpcl_id = 0;
  1904. else
  1905. msg.dbpcl_id = dbp->cl_id;
  1906. if (txnp == NULL)
  1907. msg.txnpcl_id = 0;
  1908. else
  1909. msg.txnpcl_id = txnp->txnid;
  1910. msg.keydlen = key->dlen;
  1911. msg.keydoff = key->doff;
  1912. msg.keyulen = key->ulen;
  1913. msg.keyflags = key->flags;
  1914. msg.keydata.keydata_val = key->data;
  1915. msg.keydata.keydata_len = key->size;
  1916. msg.datadlen = data->dlen;
  1917. msg.datadoff = data->doff;
  1918. msg.dataulen = data->ulen;
  1919. msg.dataflags = data->flags;
  1920. msg.datadata.datadata_val = data->data;
  1921. msg.datadata.datadata_len = data->size;
  1922. msg.flags = flags;
  1923. replyp = __db_db_put_4001(&msg, cl);
  1924. if (replyp == NULL) {
  1925. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1926. ret = DB_NOSERVER;
  1927. goto out;
  1928. }
  1929. ret = __dbcl_db_put_ret(dbp, txnp, key, data, flags, replyp);
  1930. out:
  1931. if (replyp != NULL)
  1932. xdr_free((xdrproc_t)xdr___db_put_reply, (void *)replyp);
  1933. return (ret);
  1934. }
  1935. /*
  1936.  * PUBLIC: int __dbcl_db_re_delim __P((DB *, int));
  1937.  */
  1938. int
  1939. __dbcl_db_re_delim(dbp, delim)
  1940. DB * dbp;
  1941. int delim;
  1942. {
  1943. CLIENT *cl;
  1944. __db_re_delim_msg msg;
  1945. __db_re_delim_reply *replyp = NULL;
  1946. int ret;
  1947. DB_ENV *dbenv;
  1948. ret = 0;
  1949. dbenv = dbp->dbenv;
  1950. if (dbenv == NULL || !RPC_ON(dbenv))
  1951. return (__dbcl_noserver(NULL));
  1952. cl = (CLIENT *)dbenv->cl_handle;
  1953. if (dbp == NULL)
  1954. msg.dbpcl_id = 0;
  1955. else
  1956. msg.dbpcl_id = dbp->cl_id;
  1957. msg.delim = delim;
  1958. replyp = __db_db_re_delim_4001(&msg, cl);
  1959. if (replyp == NULL) {
  1960. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1961. ret = DB_NOSERVER;
  1962. goto out;
  1963. }
  1964. ret = replyp->status;
  1965. out:
  1966. if (replyp != NULL)
  1967. xdr_free((xdrproc_t)xdr___db_re_delim_reply, (void *)replyp);
  1968. return (ret);
  1969. }
  1970. /*
  1971.  * PUBLIC: int __dbcl_db_re_len __P((DB *, u_int32_t));
  1972.  */
  1973. int
  1974. __dbcl_db_re_len(dbp, len)
  1975. DB * dbp;
  1976. u_int32_t len;
  1977. {
  1978. CLIENT *cl;
  1979. __db_re_len_msg msg;
  1980. __db_re_len_reply *replyp = NULL;
  1981. int ret;
  1982. DB_ENV *dbenv;
  1983. ret = 0;
  1984. dbenv = dbp->dbenv;
  1985. if (dbenv == NULL || !RPC_ON(dbenv))
  1986. return (__dbcl_noserver(NULL));
  1987. cl = (CLIENT *)dbenv->cl_handle;
  1988. if (dbp == NULL)
  1989. msg.dbpcl_id = 0;
  1990. else
  1991. msg.dbpcl_id = dbp->cl_id;
  1992. msg.len = len;
  1993. replyp = __db_db_re_len_4001(&msg, cl);
  1994. if (replyp == NULL) {
  1995. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  1996. ret = DB_NOSERVER;
  1997. goto out;
  1998. }
  1999. ret = replyp->status;
  2000. out:
  2001. if (replyp != NULL)
  2002. xdr_free((xdrproc_t)xdr___db_re_len_reply, (void *)replyp);
  2003. return (ret);
  2004. }
  2005. /*
  2006.  * PUBLIC: int __dbcl_db_re_pad __P((DB *, int));
  2007.  */
  2008. int
  2009. __dbcl_db_re_pad(dbp, pad)
  2010. DB * dbp;
  2011. int pad;
  2012. {
  2013. CLIENT *cl;
  2014. __db_re_pad_msg msg;
  2015. __db_re_pad_reply *replyp = NULL;
  2016. int ret;
  2017. DB_ENV *dbenv;
  2018. ret = 0;
  2019. dbenv = dbp->dbenv;
  2020. if (dbenv == NULL || !RPC_ON(dbenv))
  2021. return (__dbcl_noserver(NULL));
  2022. cl = (CLIENT *)dbenv->cl_handle;
  2023. if (dbp == NULL)
  2024. msg.dbpcl_id = 0;
  2025. else
  2026. msg.dbpcl_id = dbp->cl_id;
  2027. msg.pad = pad;
  2028. replyp = __db_db_re_pad_4001(&msg, cl);
  2029. if (replyp == NULL) {
  2030. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2031. ret = DB_NOSERVER;
  2032. goto out;
  2033. }
  2034. ret = replyp->status;
  2035. out:
  2036. if (replyp != NULL)
  2037. xdr_free((xdrproc_t)xdr___db_re_pad_reply, (void *)replyp);
  2038. return (ret);
  2039. }
  2040. /*
  2041.  * PUBLIC: int __dbcl_db_re_source __P((DB *, const char *));
  2042.  */
  2043. int
  2044. __dbcl_db_re_source(dbp, re_source)
  2045. DB * dbp;
  2046. const char * re_source;
  2047. {
  2048. DB_ENV *dbenv;
  2049. dbenv = dbp->dbenv;
  2050. COMPQUIET(re_source, NULL);
  2051. return (__dbcl_rpc_illegal(dbenv, "db_re_source"));
  2052. }
  2053. /*
  2054.  * PUBLIC: int __dbcl_db_remove __P((DB *, const char *, const char *,
  2055.  * PUBLIC:      u_int32_t));
  2056.  */
  2057. int
  2058. __dbcl_db_remove(dbp, name, subdb, flags)
  2059. DB * dbp;
  2060. const char * name;
  2061. const char * subdb;
  2062. u_int32_t flags;
  2063. {
  2064. CLIENT *cl;
  2065. __db_remove_msg msg;
  2066. __db_remove_reply *replyp = NULL;
  2067. int ret;
  2068. DB_ENV *dbenv;
  2069. ret = 0;
  2070. dbenv = dbp->dbenv;
  2071. if (dbenv == NULL || !RPC_ON(dbenv))
  2072. return (__dbcl_noserver(NULL));
  2073. cl = (CLIENT *)dbenv->cl_handle;
  2074. if (dbp == NULL)
  2075. msg.dbpcl_id = 0;
  2076. else
  2077. msg.dbpcl_id = dbp->cl_id;
  2078. if (name == NULL)
  2079. msg.name = "";
  2080. else
  2081. msg.name = (char *)name;
  2082. if (subdb == NULL)
  2083. msg.subdb = "";
  2084. else
  2085. msg.subdb = (char *)subdb;
  2086. msg.flags = flags;
  2087. replyp = __db_db_remove_4001(&msg, cl);
  2088. if (replyp == NULL) {
  2089. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2090. ret = DB_NOSERVER;
  2091. goto out;
  2092. }
  2093. ret = __dbcl_db_remove_ret(dbp, name, subdb, flags, replyp);
  2094. out:
  2095. if (replyp != NULL)
  2096. xdr_free((xdrproc_t)xdr___db_remove_reply, (void *)replyp);
  2097. return (ret);
  2098. }
  2099. /*
  2100.  * PUBLIC: int __dbcl_db_rename __P((DB *, const char *, const char *,
  2101.  * PUBLIC:      const char *, u_int32_t));
  2102.  */
  2103. int
  2104. __dbcl_db_rename(dbp, name, subdb, newname, flags)
  2105. DB * dbp;
  2106. const char * name;
  2107. const char * subdb;
  2108. const char * newname;
  2109. u_int32_t flags;
  2110. {
  2111. CLIENT *cl;
  2112. __db_rename_msg msg;
  2113. __db_rename_reply *replyp = NULL;
  2114. int ret;
  2115. DB_ENV *dbenv;
  2116. ret = 0;
  2117. dbenv = dbp->dbenv;
  2118. if (dbenv == NULL || !RPC_ON(dbenv))
  2119. return (__dbcl_noserver(NULL));
  2120. cl = (CLIENT *)dbenv->cl_handle;
  2121. if (dbp == NULL)
  2122. msg.dbpcl_id = 0;
  2123. else
  2124. msg.dbpcl_id = dbp->cl_id;
  2125. if (name == NULL)
  2126. msg.name = "";
  2127. else
  2128. msg.name = (char *)name;
  2129. if (subdb == NULL)
  2130. msg.subdb = "";
  2131. else
  2132. msg.subdb = (char *)subdb;
  2133. if (newname == NULL)
  2134. msg.newname = "";
  2135. else
  2136. msg.newname = (char *)newname;
  2137. msg.flags = flags;
  2138. replyp = __db_db_rename_4001(&msg, cl);
  2139. if (replyp == NULL) {
  2140. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2141. ret = DB_NOSERVER;
  2142. goto out;
  2143. }
  2144. ret = __dbcl_db_rename_ret(dbp, name, subdb, newname, flags, replyp);
  2145. out:
  2146. if (replyp != NULL)
  2147. xdr_free((xdrproc_t)xdr___db_rename_reply, (void *)replyp);
  2148. return (ret);
  2149. }
  2150. /*
  2151.  * PUBLIC: int __dbcl_db_stat __P((DB *, void *, u_int32_t));
  2152.  */
  2153. int
  2154. __dbcl_db_stat(dbp, sp, flags)
  2155. DB * dbp;
  2156. void * sp;
  2157. u_int32_t flags;
  2158. {
  2159. CLIENT *cl;
  2160. __db_stat_msg msg;
  2161. __db_stat_reply *replyp = NULL;
  2162. int ret;
  2163. DB_ENV *dbenv;
  2164. ret = 0;
  2165. dbenv = dbp->dbenv;
  2166. if (dbenv == NULL || !RPC_ON(dbenv))
  2167. return (__dbcl_noserver(NULL));
  2168. cl = (CLIENT *)dbenv->cl_handle;
  2169. if (dbp == NULL)
  2170. msg.dbpcl_id = 0;
  2171. else
  2172. msg.dbpcl_id = dbp->cl_id;
  2173. msg.flags = flags;
  2174. replyp = __db_db_stat_4001(&msg, cl);
  2175. if (replyp == NULL) {
  2176. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2177. ret = DB_NOSERVER;
  2178. goto out;
  2179. }
  2180. ret = __dbcl_db_stat_ret(dbp, sp, flags, replyp);
  2181. out:
  2182. if (replyp != NULL)
  2183. xdr_free((xdrproc_t)xdr___db_stat_reply, (void *)replyp);
  2184. return (ret);
  2185. }
  2186. /*
  2187.  * PUBLIC: int __dbcl_db_sync __P((DB *, u_int32_t));
  2188.  */
  2189. int
  2190. __dbcl_db_sync(dbp, flags)
  2191. DB * dbp;
  2192. u_int32_t flags;
  2193. {
  2194. CLIENT *cl;
  2195. __db_sync_msg msg;
  2196. __db_sync_reply *replyp = NULL;
  2197. int ret;
  2198. DB_ENV *dbenv;
  2199. ret = 0;
  2200. dbenv = dbp->dbenv;
  2201. if (dbenv == NULL || !RPC_ON(dbenv))
  2202. return (__dbcl_noserver(NULL));
  2203. cl = (CLIENT *)dbenv->cl_handle;
  2204. if (dbp == NULL)
  2205. msg.dbpcl_id = 0;
  2206. else
  2207. msg.dbpcl_id = dbp->cl_id;
  2208. msg.flags = flags;
  2209. replyp = __db_db_sync_4001(&msg, cl);
  2210. if (replyp == NULL) {
  2211. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2212. ret = DB_NOSERVER;
  2213. goto out;
  2214. }
  2215. ret = replyp->status;
  2216. out:
  2217. if (replyp != NULL)
  2218. xdr_free((xdrproc_t)xdr___db_sync_reply, (void *)replyp);
  2219. return (ret);
  2220. }
  2221. /*
  2222.  * PUBLIC: int __dbcl_db_truncate __P((DB *, DB_TXN *, u_int32_t  *,
  2223.  * PUBLIC:      u_int32_t));
  2224.  */
  2225. int
  2226. __dbcl_db_truncate(dbp, txnp, countp, flags)
  2227. DB * dbp;
  2228. DB_TXN * txnp;
  2229. u_int32_t  * countp;
  2230. u_int32_t flags;
  2231. {
  2232. CLIENT *cl;
  2233. __db_truncate_msg msg;
  2234. __db_truncate_reply *replyp = NULL;
  2235. int ret;
  2236. DB_ENV *dbenv;
  2237. ret = 0;
  2238. dbenv = dbp->dbenv;
  2239. if (dbenv == NULL || !RPC_ON(dbenv))
  2240. return (__dbcl_noserver(NULL));
  2241. cl = (CLIENT *)dbenv->cl_handle;
  2242. if (dbp == NULL)
  2243. msg.dbpcl_id = 0;
  2244. else
  2245. msg.dbpcl_id = dbp->cl_id;
  2246. if (txnp == NULL)
  2247. msg.txnpcl_id = 0;
  2248. else
  2249. msg.txnpcl_id = txnp->txnid;
  2250. msg.flags = flags;
  2251. replyp = __db_db_truncate_4001(&msg, cl);
  2252. if (replyp == NULL) {
  2253. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2254. ret = DB_NOSERVER;
  2255. goto out;
  2256. }
  2257. ret = __dbcl_db_truncate_ret(dbp, txnp, countp, flags, replyp);
  2258. out:
  2259. if (replyp != NULL)
  2260. xdr_free((xdrproc_t)xdr___db_truncate_reply, (void *)replyp);
  2261. return (ret);
  2262. }
  2263. /*
  2264.  * PUBLIC: int __dbcl_db_upgrade __P((DB *, const char *, u_int32_t));
  2265.  */
  2266. int
  2267. __dbcl_db_upgrade(dbp, fname, flags)
  2268. DB * dbp;
  2269. const char * fname;
  2270. u_int32_t flags;
  2271. {
  2272. DB_ENV *dbenv;
  2273. dbenv = dbp->dbenv;
  2274. COMPQUIET(fname, NULL);
  2275. COMPQUIET(flags, 0);
  2276. return (__dbcl_rpc_illegal(dbenv, "db_upgrade"));
  2277. }
  2278. /*
  2279.  * PUBLIC: int __dbcl_db_verify __P((DB *, const char *, const char *, FILE *,
  2280.  * PUBLIC:      u_int32_t));
  2281.  */
  2282. int
  2283. __dbcl_db_verify(dbp, fname, subdb, outfile, flags)
  2284. DB * dbp;
  2285. const char * fname;
  2286. const char * subdb;
  2287. FILE * outfile;
  2288. u_int32_t flags;
  2289. {
  2290. DB_ENV *dbenv;
  2291. dbenv = dbp->dbenv;
  2292. COMPQUIET(fname, NULL);
  2293. COMPQUIET(subdb, NULL);
  2294. COMPQUIET(outfile, 0);
  2295. COMPQUIET(flags, 0);
  2296. return (__dbcl_rpc_illegal(dbenv, "db_verify"));
  2297. }
  2298. /*
  2299.  * PUBLIC: int __dbcl_db_cursor __P((DB *, DB_TXN *, DBC **, u_int32_t));
  2300.  */
  2301. int
  2302. __dbcl_db_cursor(dbp, txnp, dbcpp, flags)
  2303. DB * dbp;
  2304. DB_TXN * txnp;
  2305. DBC ** dbcpp;
  2306. u_int32_t flags;
  2307. {
  2308. CLIENT *cl;
  2309. __db_cursor_msg msg;
  2310. __db_cursor_reply *replyp = NULL;
  2311. int ret;
  2312. DB_ENV *dbenv;
  2313. ret = 0;
  2314. dbenv = dbp->dbenv;
  2315. if (dbenv == NULL || !RPC_ON(dbenv))
  2316. return (__dbcl_noserver(NULL));
  2317. cl = (CLIENT *)dbenv->cl_handle;
  2318. if (dbp == NULL)
  2319. msg.dbpcl_id = 0;
  2320. else
  2321. msg.dbpcl_id = dbp->cl_id;
  2322. if (txnp == NULL)
  2323. msg.txnpcl_id = 0;
  2324. else
  2325. msg.txnpcl_id = txnp->txnid;
  2326. msg.flags = flags;
  2327. replyp = __db_db_cursor_4001(&msg, cl);
  2328. if (replyp == NULL) {
  2329. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2330. ret = DB_NOSERVER;
  2331. goto out;
  2332. }
  2333. ret = __dbcl_db_cursor_ret(dbp, txnp, dbcpp, flags, replyp);
  2334. out:
  2335. if (replyp != NULL)
  2336. xdr_free((xdrproc_t)xdr___db_cursor_reply, (void *)replyp);
  2337. return (ret);
  2338. }
  2339. /*
  2340.  * PUBLIC: int __dbcl_db_join __P((DB *, DBC **, DBC **, u_int32_t));
  2341.  */
  2342. int
  2343. __dbcl_db_join(dbp, curs, dbcp, flags)
  2344. DB * dbp;
  2345. DBC ** curs;
  2346. DBC ** dbcp;
  2347. u_int32_t flags;
  2348. {
  2349. CLIENT *cl;
  2350. __db_join_msg msg;
  2351. __db_join_reply *replyp = NULL;
  2352. int ret;
  2353. DB_ENV *dbenv;
  2354. DBC ** cursp;
  2355. int cursi;
  2356. u_int32_t * cursq;
  2357. ret = 0;
  2358. dbenv = dbp->dbenv;
  2359. if (dbenv == NULL || !RPC_ON(dbenv))
  2360. return (__dbcl_noserver(NULL));
  2361. cl = (CLIENT *)dbenv->cl_handle;
  2362. if (dbp == NULL)
  2363. msg.dbpcl_id = 0;
  2364. else
  2365. msg.dbpcl_id = dbp->cl_id;
  2366. for (cursi = 0, cursp = curs; *cursp != 0;  cursi++, cursp++)
  2367. ;
  2368. msg.curs.curs_len = cursi;
  2369. if ((ret = __os_calloc(dbenv,
  2370.     msg.curs.curs_len, sizeof(u_int32_t), &msg.curs.curs_val)) != 0)
  2371. return (ret);
  2372. for (cursq = msg.curs.curs_val, cursp = curs; cursi--; cursq++, cursp++)
  2373. *cursq = (*cursp)->cl_id;
  2374. msg.flags = flags;
  2375. replyp = __db_db_join_4001(&msg, cl);
  2376. __os_free(dbenv, msg.curs.curs_val);
  2377. if (replyp == NULL) {
  2378. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2379. ret = DB_NOSERVER;
  2380. goto out;
  2381. }
  2382. ret = __dbcl_db_join_ret(dbp, curs, dbcp, flags, replyp);
  2383. out:
  2384. if (replyp != NULL)
  2385. xdr_free((xdrproc_t)xdr___db_join_reply, (void *)replyp);
  2386. return (ret);
  2387. }
  2388. /*
  2389.  * PUBLIC: int __dbcl_dbc_close __P((DBC *));
  2390.  */
  2391. int
  2392. __dbcl_dbc_close(dbc)
  2393. DBC * dbc;
  2394. {
  2395. CLIENT *cl;
  2396. __dbc_close_msg msg;
  2397. __dbc_close_reply *replyp = NULL;
  2398. int ret;
  2399. DB_ENV *dbenv;
  2400. ret = 0;
  2401. dbenv = dbc->dbp->dbenv;
  2402. if (dbenv == NULL || !RPC_ON(dbenv))
  2403. return (__dbcl_noserver(NULL));
  2404. cl = (CLIENT *)dbenv->cl_handle;
  2405. if (dbc == NULL)
  2406. msg.dbccl_id = 0;
  2407. else
  2408. msg.dbccl_id = dbc->cl_id;
  2409. replyp = __db_dbc_close_4001(&msg, cl);
  2410. if (replyp == NULL) {
  2411. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2412. ret = DB_NOSERVER;
  2413. goto out;
  2414. }
  2415. ret = __dbcl_dbc_close_ret(dbc, replyp);
  2416. out:
  2417. if (replyp != NULL)
  2418. xdr_free((xdrproc_t)xdr___dbc_close_reply, (void *)replyp);
  2419. return (ret);
  2420. }
  2421. /*
  2422.  * PUBLIC: int __dbcl_dbc_count __P((DBC *, db_recno_t *, u_int32_t));
  2423.  */
  2424. int
  2425. __dbcl_dbc_count(dbc, countp, flags)
  2426. DBC * dbc;
  2427. db_recno_t * countp;
  2428. u_int32_t flags;
  2429. {
  2430. CLIENT *cl;
  2431. __dbc_count_msg msg;
  2432. __dbc_count_reply *replyp = NULL;
  2433. int ret;
  2434. DB_ENV *dbenv;
  2435. ret = 0;
  2436. dbenv = dbc->dbp->dbenv;
  2437. if (dbenv == NULL || !RPC_ON(dbenv))
  2438. return (__dbcl_noserver(NULL));
  2439. cl = (CLIENT *)dbenv->cl_handle;
  2440. if (dbc == NULL)
  2441. msg.dbccl_id = 0;
  2442. else
  2443. msg.dbccl_id = dbc->cl_id;
  2444. msg.flags = flags;
  2445. replyp = __db_dbc_count_4001(&msg, cl);
  2446. if (replyp == NULL) {
  2447. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2448. ret = DB_NOSERVER;
  2449. goto out;
  2450. }
  2451. ret = __dbcl_dbc_count_ret(dbc, countp, flags, replyp);
  2452. out:
  2453. if (replyp != NULL)
  2454. xdr_free((xdrproc_t)xdr___dbc_count_reply, (void *)replyp);
  2455. return (ret);
  2456. }
  2457. /*
  2458.  * PUBLIC: int __dbcl_dbc_del __P((DBC *, u_int32_t));
  2459.  */
  2460. int
  2461. __dbcl_dbc_del(dbc, flags)
  2462. DBC * dbc;
  2463. u_int32_t flags;
  2464. {
  2465. CLIENT *cl;
  2466. __dbc_del_msg msg;
  2467. __dbc_del_reply *replyp = NULL;
  2468. int ret;
  2469. DB_ENV *dbenv;
  2470. ret = 0;
  2471. dbenv = dbc->dbp->dbenv;
  2472. if (dbenv == NULL || !RPC_ON(dbenv))
  2473. return (__dbcl_noserver(NULL));
  2474. cl = (CLIENT *)dbenv->cl_handle;
  2475. if (dbc == NULL)
  2476. msg.dbccl_id = 0;
  2477. else
  2478. msg.dbccl_id = dbc->cl_id;
  2479. msg.flags = flags;
  2480. replyp = __db_dbc_del_4001(&msg, cl);
  2481. if (replyp == NULL) {
  2482. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2483. ret = DB_NOSERVER;
  2484. goto out;
  2485. }
  2486. ret = replyp->status;
  2487. out:
  2488. if (replyp != NULL)
  2489. xdr_free((xdrproc_t)xdr___dbc_del_reply, (void *)replyp);
  2490. return (ret);
  2491. }
  2492. /*
  2493.  * PUBLIC: int __dbcl_dbc_dup __P((DBC *, DBC **, u_int32_t));
  2494.  */
  2495. int
  2496. __dbcl_dbc_dup(dbc, dbcp, flags)
  2497. DBC * dbc;
  2498. DBC ** dbcp;
  2499. u_int32_t flags;
  2500. {
  2501. CLIENT *cl;
  2502. __dbc_dup_msg msg;
  2503. __dbc_dup_reply *replyp = NULL;
  2504. int ret;
  2505. DB_ENV *dbenv;
  2506. ret = 0;
  2507. dbenv = dbc->dbp->dbenv;
  2508. if (dbenv == NULL || !RPC_ON(dbenv))
  2509. return (__dbcl_noserver(NULL));
  2510. cl = (CLIENT *)dbenv->cl_handle;
  2511. if (dbc == NULL)
  2512. msg.dbccl_id = 0;
  2513. else
  2514. msg.dbccl_id = dbc->cl_id;
  2515. msg.flags = flags;
  2516. replyp = __db_dbc_dup_4001(&msg, cl);
  2517. if (replyp == NULL) {
  2518. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2519. ret = DB_NOSERVER;
  2520. goto out;
  2521. }
  2522. ret = __dbcl_dbc_dup_ret(dbc, dbcp, flags, replyp);
  2523. out:
  2524. if (replyp != NULL)
  2525. xdr_free((xdrproc_t)xdr___dbc_dup_reply, (void *)replyp);
  2526. return (ret);
  2527. }
  2528. /*
  2529.  * PUBLIC: int __dbcl_dbc_get __P((DBC *, DBT *, DBT *, u_int32_t));
  2530.  */
  2531. int
  2532. __dbcl_dbc_get(dbc, key, data, flags)
  2533. DBC * dbc;
  2534. DBT * key;
  2535. DBT * data;
  2536. u_int32_t flags;
  2537. {
  2538. CLIENT *cl;
  2539. __dbc_get_msg msg;
  2540. __dbc_get_reply *replyp = NULL;
  2541. int ret;
  2542. DB_ENV *dbenv;
  2543. ret = 0;
  2544. dbenv = dbc->dbp->dbenv;
  2545. if (dbenv == NULL || !RPC_ON(dbenv))
  2546. return (__dbcl_noserver(NULL));
  2547. cl = (CLIENT *)dbenv->cl_handle;
  2548. if (dbc == NULL)
  2549. msg.dbccl_id = 0;
  2550. else
  2551. msg.dbccl_id = dbc->cl_id;
  2552. msg.keydlen = key->dlen;
  2553. msg.keydoff = key->doff;
  2554. msg.keyulen = key->ulen;
  2555. msg.keyflags = key->flags;
  2556. msg.keydata.keydata_val = key->data;
  2557. msg.keydata.keydata_len = key->size;
  2558. msg.datadlen = data->dlen;
  2559. msg.datadoff = data->doff;
  2560. msg.dataulen = data->ulen;
  2561. msg.dataflags = data->flags;
  2562. msg.datadata.datadata_val = data->data;
  2563. msg.datadata.datadata_len = data->size;
  2564. msg.flags = flags;
  2565. replyp = __db_dbc_get_4001(&msg, cl);
  2566. if (replyp == NULL) {
  2567. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2568. ret = DB_NOSERVER;
  2569. goto out;
  2570. }
  2571. ret = __dbcl_dbc_get_ret(dbc, key, data, flags, replyp);
  2572. out:
  2573. if (replyp != NULL)
  2574. xdr_free((xdrproc_t)xdr___dbc_get_reply, (void *)replyp);
  2575. return (ret);
  2576. }
  2577. /*
  2578.  * PUBLIC: int __dbcl_dbc_pget __P((DBC *, DBT *, DBT *, DBT *, u_int32_t));
  2579.  */
  2580. int
  2581. __dbcl_dbc_pget(dbc, skey, pkey, data, flags)
  2582. DBC * dbc;
  2583. DBT * skey;
  2584. DBT * pkey;
  2585. DBT * data;
  2586. u_int32_t flags;
  2587. {
  2588. CLIENT *cl;
  2589. __dbc_pget_msg msg;
  2590. __dbc_pget_reply *replyp = NULL;
  2591. int ret;
  2592. DB_ENV *dbenv;
  2593. ret = 0;
  2594. dbenv = dbc->dbp->dbenv;
  2595. if (dbenv == NULL || !RPC_ON(dbenv))
  2596. return (__dbcl_noserver(NULL));
  2597. cl = (CLIENT *)dbenv->cl_handle;
  2598. if (dbc == NULL)
  2599. msg.dbccl_id = 0;
  2600. else
  2601. msg.dbccl_id = dbc->cl_id;
  2602. msg.skeydlen = skey->dlen;
  2603. msg.skeydoff = skey->doff;
  2604. msg.skeyulen = skey->ulen;
  2605. msg.skeyflags = skey->flags;
  2606. msg.skeydata.skeydata_val = skey->data;
  2607. msg.skeydata.skeydata_len = skey->size;
  2608. msg.pkeydlen = pkey->dlen;
  2609. msg.pkeydoff = pkey->doff;
  2610. msg.pkeyulen = pkey->ulen;
  2611. msg.pkeyflags = pkey->flags;
  2612. msg.pkeydata.pkeydata_val = pkey->data;
  2613. msg.pkeydata.pkeydata_len = pkey->size;
  2614. msg.datadlen = data->dlen;
  2615. msg.datadoff = data->doff;
  2616. msg.dataulen = data->ulen;
  2617. msg.dataflags = data->flags;
  2618. msg.datadata.datadata_val = data->data;
  2619. msg.datadata.datadata_len = data->size;
  2620. msg.flags = flags;
  2621. replyp = __db_dbc_pget_4001(&msg, cl);
  2622. if (replyp == NULL) {
  2623. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2624. ret = DB_NOSERVER;
  2625. goto out;
  2626. }
  2627. ret = __dbcl_dbc_pget_ret(dbc, skey, pkey, data, flags, replyp);
  2628. out:
  2629. if (replyp != NULL)
  2630. xdr_free((xdrproc_t)xdr___dbc_pget_reply, (void *)replyp);
  2631. return (ret);
  2632. }
  2633. /*
  2634.  * PUBLIC: int __dbcl_dbc_put __P((DBC *, DBT *, DBT *, u_int32_t));
  2635.  */
  2636. int
  2637. __dbcl_dbc_put(dbc, key, data, flags)
  2638. DBC * dbc;
  2639. DBT * key;
  2640. DBT * data;
  2641. u_int32_t flags;
  2642. {
  2643. CLIENT *cl;
  2644. __dbc_put_msg msg;
  2645. __dbc_put_reply *replyp = NULL;
  2646. int ret;
  2647. DB_ENV *dbenv;
  2648. ret = 0;
  2649. dbenv = dbc->dbp->dbenv;
  2650. if (dbenv == NULL || !RPC_ON(dbenv))
  2651. return (__dbcl_noserver(NULL));
  2652. cl = (CLIENT *)dbenv->cl_handle;
  2653. if (dbc == NULL)
  2654. msg.dbccl_id = 0;
  2655. else
  2656. msg.dbccl_id = dbc->cl_id;
  2657. msg.keydlen = key->dlen;
  2658. msg.keydoff = key->doff;
  2659. msg.keyulen = key->ulen;
  2660. msg.keyflags = key->flags;
  2661. msg.keydata.keydata_val = key->data;
  2662. msg.keydata.keydata_len = key->size;
  2663. msg.datadlen = data->dlen;
  2664. msg.datadoff = data->doff;
  2665. msg.dataulen = data->ulen;
  2666. msg.dataflags = data->flags;
  2667. msg.datadata.datadata_val = data->data;
  2668. msg.datadata.datadata_len = data->size;
  2669. msg.flags = flags;
  2670. replyp = __db_dbc_put_4001(&msg, cl);
  2671. if (replyp == NULL) {
  2672. __db_err(dbenv, clnt_sperror(cl, "Berkeley DB"));
  2673. ret = DB_NOSERVER;
  2674. goto out;
  2675. }
  2676. ret = __dbcl_dbc_put_ret(dbc, key, data, flags, replyp);
  2677. out:
  2678. if (replyp != NULL)
  2679. xdr_free((xdrproc_t)xdr___dbc_put_reply, (void *)replyp);
  2680. return (ret);
  2681. }
  2682. /*
  2683.  * PUBLIC: int __dbcl_lock_detect __P((DB_ENV *, u_int32_t, u_int32_t, int *));
  2684.  */
  2685. int
  2686. __dbcl_lock_detect(dbenv, flags, atype, aborted)
  2687. DB_ENV * dbenv;
  2688. u_int32_t flags;
  2689. u_int32_t atype;
  2690. int * aborted;
  2691. {
  2692. COMPQUIET(flags, 0);
  2693. COMPQUIET(atype, 0);
  2694. COMPQUIET(aborted, 0);
  2695. return (__dbcl_rpc_illegal(dbenv, "lock_detect"));
  2696. }
  2697. /*
  2698.  * PUBLIC: int __dbcl_lock_get __P((DB_ENV *, u_int32_t, u_int32_t,
  2699.  * PUBLIC:      const DBT *, db_lockmode_t, DB_LOCK *));
  2700.  */
  2701. int
  2702. __dbcl_lock_get(dbenv, locker, flags, obj, mode, lock)
  2703. DB_ENV * dbenv;
  2704. u_int32_t locker;
  2705. u_int32_t flags;
  2706. const DBT * obj;
  2707. db_lockmode_t mode;
  2708. DB_LOCK * lock;
  2709. {
  2710. COMPQUIET(locker, 0);
  2711. COMPQUIET(flags, 0);
  2712. COMPQUIET(obj, NULL);
  2713. COMPQUIET(mode, 0);
  2714. COMPQUIET(lock, 0);
  2715. return (__dbcl_rpc_illegal(dbenv, "lock_get"));
  2716. }
  2717. /*
  2718.  * PUBLIC: int __dbcl_lock_id __P((DB_ENV *, u_int32_t *));
  2719.  */
  2720. int
  2721. __dbcl_lock_id(dbenv, idp)
  2722. DB_ENV * dbenv;
  2723. u_int32_t * idp;
  2724. {
  2725. COMPQUIET(idp, 0);
  2726. return (__dbcl_rpc_illegal(dbenv, "lock_id"));
  2727. }
  2728. /*
  2729.  * PUBLIC: int __dbcl_lock_id_free __P((DB_ENV *, u_int32_t));
  2730.  */
  2731. int
  2732. __dbcl_lock_id_free(dbenv, id)
  2733. DB_ENV * dbenv;
  2734. u_int32_t id;
  2735. {
  2736. COMPQUIET(id, 0);
  2737. return (__dbcl_rpc_illegal(dbenv, "lock_id_free"));
  2738. }
  2739. /*
  2740.  * PUBLIC: int __dbcl_lock_put __P((DB_ENV *, DB_LOCK *));
  2741.  */
  2742. int
  2743. __dbcl_lock_put(dbenv, lock)
  2744. DB_ENV * dbenv;
  2745. DB_LOCK * lock;
  2746. {
  2747. COMPQUIET(lock, 0);
  2748. return (__dbcl_rpc_illegal(dbenv, "lock_put"));
  2749. }
  2750. /*
  2751.  * PUBLIC: int __dbcl_lock_stat __P((DB_ENV *, DB_LOCK_STAT **, u_int32_t));
  2752.  */
  2753. int
  2754. __dbcl_lock_stat(dbenv, statp, flags)
  2755. DB_ENV * dbenv;
  2756. DB_LOCK_STAT ** statp;
  2757. u_int32_t flags;
  2758. {
  2759. COMPQUIET(statp, 0);
  2760. COMPQUIET(flags, 0);
  2761. return (__dbcl_rpc_illegal(dbenv, "lock_stat"));
  2762. }
  2763. /*
  2764.  * PUBLIC: int __dbcl_lock_vec __P((DB_ENV *, u_int32_t, u_int32_t,
  2765.  * PUBLIC:      DB_LOCKREQ *, int, DB_LOCKREQ **));
  2766.  */
  2767. int
  2768. __dbcl_lock_vec(dbenv, locker, flags, list, nlist, elistp)
  2769. DB_ENV * dbenv;
  2770. u_int32_t locker;
  2771. u_int32_t flags;
  2772. DB_LOCKREQ * list;
  2773. int nlist;
  2774. DB_LOCKREQ ** elistp;
  2775. {
  2776. COMPQUIET(locker, 0);
  2777. COMPQUIET(flags, 0);
  2778. COMPQUIET(list, 0);
  2779. COMPQUIET(nlist, 0);
  2780. COMPQUIET(elistp, 0);
  2781. return (__dbcl_rpc_illegal(dbenv, "lock_vec"));
  2782. }
  2783. /*
  2784.  * PUBLIC: int __dbcl_log_archive __P((DB_ENV *, char ***, u_int32_t));
  2785.  */
  2786. int
  2787. __dbcl_log_archive(dbenv, listp, flags)
  2788. DB_ENV * dbenv;
  2789. char *** listp;
  2790. u_int32_t flags;
  2791. {
  2792. COMPQUIET(listp, 0);
  2793. COMPQUIET(flags, 0);
  2794. return (__dbcl_rpc_illegal(dbenv, "log_archive"));
  2795. }
  2796. /*
  2797.  * PUBLIC: int __dbcl_log_cursor __P((DB_ENV *, DB_LOGC **, u_int32_t));
  2798.  */
  2799. int
  2800. __dbcl_log_cursor(dbenv, logcp, flags)
  2801. DB_ENV * dbenv;
  2802. DB_LOGC ** logcp;
  2803. u_int32_t flags;
  2804. {
  2805. COMPQUIET(logcp, 0);
  2806. COMPQUIET(flags, 0);
  2807. return (__dbcl_rpc_illegal(dbenv, "log_cursor"));
  2808. }
  2809. /*
  2810.  * PUBLIC: int __dbcl_log_file __P((DB_ENV *, const DB_LSN *, char *, size_t));
  2811.  */
  2812. int
  2813. __dbcl_log_file(dbenv, lsn, namep, len)
  2814. DB_ENV * dbenv;
  2815. const DB_LSN * lsn;
  2816. char * namep;
  2817. size_t len;
  2818. {
  2819. COMPQUIET(lsn, NULL);
  2820. COMPQUIET(namep, NULL);
  2821. COMPQUIET(len, 0);
  2822. return (__dbcl_rpc_illegal(dbenv, "log_file"));
  2823. }
  2824. /*
  2825.  * PUBLIC: int __dbcl_log_flush __P((DB_ENV *, const DB_LSN *));
  2826.  */
  2827. int
  2828. __dbcl_log_flush(dbenv, lsn)
  2829. DB_ENV * dbenv;
  2830. const DB_LSN * lsn;
  2831. {
  2832. COMPQUIET(lsn, NULL);
  2833. return (__dbcl_rpc_illegal(dbenv, "log_flush"));
  2834. }
  2835. /*
  2836.  * PUBLIC: int __dbcl_log_put __P((DB_ENV *, DB_LSN *, const DBT *,
  2837.  * PUBLIC:      u_int32_t));
  2838.  */
  2839. int
  2840. __dbcl_log_put(dbenv, lsn, data, flags)
  2841. DB_ENV * dbenv;
  2842. DB_LSN * lsn;
  2843. const DBT * data;
  2844. u_int32_t flags;
  2845. {
  2846. COMPQUIET(lsn, 0);
  2847. COMPQUIET(data, NULL);
  2848. COMPQUIET(flags, 0);
  2849. return (__dbcl_rpc_illegal(dbenv, "log_put"));
  2850. }
  2851. /*
  2852.  * PUBLIC: int __dbcl_log_stat __P((DB_ENV *, DB_LOG_STAT **, u_int32_t));
  2853.  */
  2854. int
  2855. __dbcl_log_stat(dbenv, statp, flags)
  2856. DB_ENV * dbenv;
  2857. DB_LOG_STAT ** statp;
  2858. u_int32_t flags;
  2859. {
  2860. COMPQUIET(statp, 0);
  2861. COMPQUIET(flags, 0);
  2862. return (__dbcl_rpc_illegal(dbenv, "log_stat"));
  2863. }
  2864. /*
  2865.  * PUBLIC: int __dbcl_memp_fcreate __P((DB_ENV *, DB_MPOOLFILE **, u_int32_t));
  2866.  */
  2867. int
  2868. __dbcl_memp_fcreate(dbenv, mpf, flags)
  2869. DB_ENV * dbenv;
  2870. DB_MPOOLFILE ** mpf;
  2871. u_int32_t flags;
  2872. {
  2873. COMPQUIET(mpf, 0);
  2874. COMPQUIET(flags, 0);
  2875. return (__dbcl_rpc_illegal(dbenv, "memp_fcreate"));
  2876. }
  2877. /*
  2878.  * PUBLIC: int __dbcl_memp_register __P((DB_ENV *, int, int (*)(DB_ENV *,
  2879.  * PUBLIC:      db_pgno_t, void *, DBT *), int (*)(DB_ENV *, db_pgno_t, void *, DBT *)));
  2880.  */
  2881. int
  2882. __dbcl_memp_register(dbenv, ftype, func0, func1)
  2883. DB_ENV * dbenv;
  2884. int ftype;
  2885. int (*func0) __P((DB_ENV *, db_pgno_t, void *, DBT *));
  2886. int (*func1) __P((DB_ENV *, db_pgno_t, void *, DBT *));
  2887. {
  2888. COMPQUIET(ftype, 0);
  2889. COMPQUIET(func0, 0);
  2890. COMPQUIET(func1, 0);
  2891. return (__dbcl_rpc_illegal(dbenv, "memp_register"));
  2892. }
  2893. /*
  2894.  * PUBLIC: int __dbcl_memp_stat __P((DB_ENV *, DB_MPOOL_STAT **,
  2895.  * PUBLIC:      DB_MPOOL_FSTAT ***, u_int32_t));
  2896.  */
  2897. int
  2898. __dbcl_memp_stat(dbenv, gstatp, fstatp, flags)
  2899. DB_ENV * dbenv;
  2900. DB_MPOOL_STAT ** gstatp;
  2901. DB_MPOOL_FSTAT *** fstatp;
  2902. u_int32_t flags;
  2903. {
  2904. COMPQUIET(gstatp, 0);
  2905. COMPQUIET(fstatp, 0);
  2906. COMPQUIET(flags, 0);
  2907. return (__dbcl_rpc_illegal(dbenv, "memp_stat"));
  2908. }
  2909. /*
  2910.  * PUBLIC: int __dbcl_memp_sync __P((DB_ENV *, DB_LSN *));
  2911.  */
  2912. int
  2913. __dbcl_memp_sync(dbenv, lsn)
  2914. DB_ENV * dbenv;
  2915. DB_LSN * lsn;
  2916. {
  2917. COMPQUIET(lsn, 0);
  2918. return (__dbcl_rpc_illegal(dbenv, "memp_sync"));
  2919. }
  2920. /*
  2921.  * PUBLIC: int __dbcl_memp_trickle __P((DB_ENV *, int, int *));
  2922.  */
  2923. int
  2924. __dbcl_memp_trickle(dbenv, pct, nwrotep)
  2925. DB_ENV * dbenv;
  2926. int pct;
  2927. int * nwrotep;
  2928. {
  2929. COMPQUIET(pct, 0);
  2930. COMPQUIET(nwrotep, 0);
  2931. return (__dbcl_rpc_illegal(dbenv, "memp_trickle"));
  2932. }
  2933. #endif /* HAVE_RPC */