⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gen_client_ret.c

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 C
📖 第 1 页 / 共 2 页
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2000-2002 *	Sleepycat Software.  All rights reserved. */#include "db_config.h"#ifndef lintstatic const char revid[] = "$Id: gen_client_ret.c,v 1.57 2002/08/06 06:18:37 bostic Exp $";#endif /* not lint */#ifdef HAVE_RPC#ifndef NO_SYSTEM_INCLUDES#include <sys/types.h>#include <rpc/rpc.h>#include <string.h>#endif#include "db_int.h"#include "dbinc/db_page.h"#include "dbinc/db_am.h"#include "dbinc/txn.h"#include "dbinc_auto/db_server.h"#include "dbinc_auto/rpc_client_ext.h"/* * PUBLIC: int __dbcl_env_close_ret * PUBLIC:     __P((DB_ENV *, u_int32_t, __env_close_reply *)); */int__dbcl_env_close_ret(dbenv, flags, replyp)	DB_ENV *dbenv;	u_int32_t flags;	__env_close_reply *replyp;{	int ret;	COMPQUIET(flags, 0);	ret = __dbcl_refresh(dbenv);	__os_free(NULL, dbenv);	if (replyp->status == 0 && ret != 0)		return (ret);	else		return (replyp->status);}/* * PUBLIC: int __dbcl_env_create_ret * PUBLIC:     __P((DB_ENV *, long, __env_create_reply *)); */int__dbcl_env_create_ret(dbenv, timeout, replyp)	DB_ENV * dbenv;	long timeout;	__env_create_reply *replyp;{	COMPQUIET(timeout, 0);	if (replyp->status != 0)		return (replyp->status);	dbenv->cl_id = replyp->envcl_id;	return (replyp->status);}/* * PUBLIC: int __dbcl_env_open_ret __P((DB_ENV *, * PUBLIC:     const char *, u_int32_t, int, __env_open_reply *)); */int__dbcl_env_open_ret(dbenv, home, flags, mode, replyp)	DB_ENV *dbenv;	const char *home;	u_int32_t flags;	int mode;	__env_open_reply *replyp;{	DB_TXNMGR *tmgrp;	int ret;	COMPQUIET(home, NULL);	COMPQUIET(mode, 0);	/*	 * If error, return it.	 */	if (replyp->status != 0)		return (replyp->status);	dbenv->cl_id = replyp->envcl_id;	/*	 * If the user requested transactions, then we have some	 * local client-side setup to do also.	 */	if (LF_ISSET(DB_INIT_TXN)) {		if ((ret = __os_calloc(dbenv,		    1, sizeof(DB_TXNMGR), &tmgrp)) != 0)			return (ret);		TAILQ_INIT(&tmgrp->txn_chain);		tmgrp->dbenv = dbenv;		dbenv->tx_handle = tmgrp;	}	return (replyp->status);}/* * PUBLIC: int __dbcl_env_remove_ret * PUBLIC:     __P((DB_ENV *, const char *, u_int32_t, __env_remove_reply *)); */int__dbcl_env_remove_ret(dbenv, home, flags, replyp)	DB_ENV *dbenv;	const char *home;	u_int32_t flags;	__env_remove_reply *replyp;{	int ret;	COMPQUIET(home, NULL);	COMPQUIET(flags, 0);	ret = __dbcl_refresh(dbenv);	__os_free(NULL, dbenv);	if (replyp->status == 0 && ret != 0)		return (ret);	else		return (replyp->status);}/* * PUBLIC: int __dbcl_txn_abort_ret __P((DB_TXN *, __txn_abort_reply *)); */int__dbcl_txn_abort_ret(txnp, replyp)	DB_TXN *txnp;	__txn_abort_reply *replyp;{	__dbcl_txn_end(txnp);	return (replyp->status);}/* * PUBLIC: int __dbcl_txn_begin_ret __P((DB_ENV *, * PUBLIC:     DB_TXN *, DB_TXN **, u_int32_t, __txn_begin_reply *)); */int__dbcl_txn_begin_ret(envp, parent, txnpp, flags, replyp)	DB_ENV *envp;	DB_TXN *parent, **txnpp;	u_int32_t flags;	__txn_begin_reply *replyp;{	DB_TXN *txn;	int ret;	COMPQUIET(flags, 0);	if (replyp->status != 0)		return (replyp->status);	if ((ret = __os_calloc(envp, 1, sizeof(DB_TXN), &txn)) != 0)		return (ret);	__dbcl_txn_setup(envp, txn, parent, replyp->txnidcl_id);	*txnpp = txn;	return (replyp->status);}/* * PUBLIC: int __dbcl_txn_commit_ret * PUBLIC:     __P((DB_TXN *, u_int32_t, __txn_commit_reply *)); */int__dbcl_txn_commit_ret(txnp, flags, replyp)	DB_TXN *txnp;	u_int32_t flags;	__txn_commit_reply *replyp;{	COMPQUIET(flags, 0);	__dbcl_txn_end(txnp);	return (replyp->status);}/* * PUBLIC: int __dbcl_txn_discard_ret __P((DB_TXN *, u_int32_t, * PUBLIC:      __txn_discard_reply *)); */int__dbcl_txn_discard_ret(txnp, flags, replyp)	DB_TXN * txnp;	u_int32_t flags;	__txn_discard_reply *replyp;{	COMPQUIET(flags, 0);	__dbcl_txn_end(txnp);	return (replyp->status);}/* * PUBLIC: int __dbcl_txn_recover_ret __P((DB_ENV *, DB_PREPLIST *, long, * PUBLIC:      long *, u_int32_t, __txn_recover_reply *)); */int__dbcl_txn_recover_ret(dbenv, preplist, count, retp, flags, replyp)	DB_ENV * dbenv;	DB_PREPLIST * preplist;	long count;	long * retp;	u_int32_t flags;	__txn_recover_reply *replyp;{	DB_PREPLIST *prep;	DB_TXN *txnarray, *txn;	u_int32_t i, *txnid;	int ret;	u_int8_t *gid;	COMPQUIET(flags, 0);	COMPQUIET(count, 0);	if (replyp->status != 0)		return (replyp->status);	*retp = (long) replyp->retcount;	if (replyp->retcount == 0)		return (replyp->status);	if ((ret = __os_calloc(dbenv, replyp->retcount, sizeof(DB_TXN),	    &txnarray)) != 0)		return (ret);	/*	 * We have a bunch of arrays that need to iterate in	 * lockstep with each other.	 */	i = 0;	txn = txnarray;	txnid = (u_int32_t *)replyp->txn.txn_val;	gid = (u_int8_t *)replyp->gid.gid_val;	prep = preplist;	while (i++ < replyp->retcount) {		__dbcl_txn_setup(dbenv, txn, NULL, *txnid);		prep->txn = txn;		memcpy(&prep->gid, gid, DB_XIDDATASIZE);		/*		 * Now increment all our array pointers.		 */		txn++;		gid += DB_XIDDATASIZE;		txnid++;		prep++;	}	return (0);}/* * PUBLIC: int __dbcl_db_close_ret __P((DB *, u_int32_t, __db_close_reply *)); */int__dbcl_db_close_ret(dbp, flags, replyp)	DB *dbp;	u_int32_t flags;	__db_close_reply *replyp;{	int ret;	COMPQUIET(flags, 0);	ret = __dbcl_dbclose_common(dbp);	if (replyp->status != 0)		return (replyp->status);	else		return (ret);}/* * PUBLIC: int __dbcl_db_create_ret * PUBLIC:     __P((DB *, DB_ENV *, u_int32_t, __db_create_reply *)); */int__dbcl_db_create_ret(dbp, dbenv, flags, replyp)	DB * dbp;	DB_ENV * dbenv;	u_int32_t flags;	__db_create_reply *replyp;{	COMPQUIET(dbenv, NULL);	COMPQUIET(flags, 0);	if (replyp->status != 0)		return (replyp->status);	dbp->cl_id = replyp->dbcl_id;	return (replyp->status);}/* * PUBLIC: int __dbcl_db_get_ret * PUBLIC:     __P((DB *, DB_TXN *, DBT *, DBT *, u_int32_t, __db_get_reply *)); */int__dbcl_db_get_ret(dbp, txnp, key, data, flags, replyp)	DB *dbp;	DB_TXN *txnp;	DBT *key, *data;	u_int32_t flags;	__db_get_reply *replyp;{	DB_ENV *dbenv;	int ret;	void *oldkey;	COMPQUIET(txnp, NULL);	COMPQUIET(flags, 0);	ret = 0;	if (replyp->status != 0)		return (replyp->status);	dbenv = dbp->dbenv;	oldkey = key->data;	ret = __dbcl_retcopy(dbenv, key, replyp->keydata.keydata_val,	    replyp->keydata.keydata_len, &dbp->my_rkey.data,	    &dbp->my_rkey.ulen);	if (ret)		return (ret);	ret = __dbcl_retcopy(dbenv, data, replyp->datadata.datadata_val,	    replyp->datadata.datadata_len, &dbp->my_rdata.data,	    &dbp->my_rdata.ulen);	/*	 * If an error on copying 'data' and we allocated for 'key'	 * free it before returning the error.	 */	if (ret && oldkey != NULL)		__os_free(dbenv, key->data);	return (ret);}/* * PUBLIC: int __dbcl_db_key_range_ret __P((DB *, DB_TXN *, * PUBLIC:     DBT *, DB_KEY_RANGE *, u_int32_t, __db_key_range_reply *)); */int__dbcl_db_key_range_ret(dbp, txnp, key, range, flags, replyp)	DB *dbp;	DB_TXN *txnp;	DBT *key;	DB_KEY_RANGE *range;	u_int32_t flags;	__db_key_range_reply *replyp;{	COMPQUIET(dbp, NULL);	COMPQUIET(txnp, NULL);	COMPQUIET(key, NULL);	COMPQUIET(flags, 0);	if (replyp->status != 0)		return (replyp->status);	range->less = replyp->less;	range->equal = replyp->equal;	range->greater = replyp->greater;	return (replyp->status);}/* * PUBLIC: int __dbcl_db_open_ret __P((DB *, DB_TXN *, const char *, * PUBLIC:     const char *, DBTYPE, u_int32_t, int, __db_open_reply *)); */int__dbcl_db_open_ret(dbp, txn, name, subdb, type, flags, mode, replyp)	DB *dbp;	DB_TXN *txn;	const char *name, *subdb;	DBTYPE type;	u_int32_t flags;	int mode;	__db_open_reply *replyp;{	COMPQUIET(txn, NULL);	COMPQUIET(name, NULL);	COMPQUIET(subdb, NULL);	COMPQUIET(type, 0);	COMPQUIET(flags, 0);	COMPQUIET(mode, 0);	if (replyp->status == 0) {		dbp->cl_id = replyp->dbcl_id;		dbp->type = replyp->type;		/*		 * We get back the database's byteorder on the server.		 * Determine if our byteorder is the same or not by		 * calling __db_set_lorder.		 *		 * XXX		 * This MUST come before we set the flags because		 * __db_set_lorder checks that it is called before		 * the open flag is set.		 */		(void)__db_set_lorder(dbp, replyp->lorder);		/*		 * XXX		 * This is only for Tcl which peeks at the dbp flags.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -