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

📄 log_method.c

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 C
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 1999-2002 *	Sleepycat Software.  All rights reserved. */#include "db_config.h"#ifndef lintstatic const char revid[] = "$Id: log_method.c,v 11.32 2002/05/30 22:16:47 bostic Exp $";#endif /* not lint */#ifndef NO_SYSTEM_INCLUDES#include <sys/types.h>#ifdef HAVE_RPC#include <rpc/rpc.h>#endif#include <stdlib.h>#include <string.h>#include <unistd.h>#endif#include "db_int.h"#include "dbinc/log.h"#ifdef HAVE_RPC#include "dbinc_auto/db_server.h"#include "dbinc_auto/rpc_client_ext.h"#endifstatic int __log_set_lg_bsize __P((DB_ENV *, u_int32_t));static int __log_set_lg_dir __P((DB_ENV *, const char *));static int __log_set_lg_max __P((DB_ENV *, u_int32_t));static int __log_set_lg_regionmax __P((DB_ENV *, u_int32_t));/* * __log_dbenv_create -- *	Log specific initialization of the DB_ENV structure. * * PUBLIC: void __log_dbenv_create __P((DB_ENV *)); */void__log_dbenv_create(dbenv)	DB_ENV *dbenv;{	/*	 * !!!	 * Our caller has not yet had the opportunity to reset the panic	 * state or turn off mutex locking, and so we can neither check	 * the panic state or acquire a mutex in the DB_ENV create path.	 */	dbenv->lg_bsize = LG_BSIZE_DEFAULT;	dbenv->lg_regionmax = LG_BASE_REGION_SIZE;#ifdef	HAVE_RPC	/*	 * If we have a client, overwrite what we just setup to	 * point to client functions.	 */	if (F_ISSET(dbenv, DB_ENV_RPCCLIENT)) {		dbenv->set_lg_bsize = __dbcl_set_lg_bsize;		dbenv->set_lg_dir = __dbcl_set_lg_dir;		dbenv->set_lg_max = __dbcl_set_lg_max;		dbenv->set_lg_regionmax = __dbcl_set_lg_regionmax;		dbenv->log_archive = __dbcl_log_archive;		dbenv->log_cursor = __dbcl_log_cursor;		dbenv->log_file = __dbcl_log_file;		dbenv->log_flush = __dbcl_log_flush;		dbenv->log_put = __dbcl_log_put;		dbenv->log_stat = __dbcl_log_stat;	} else#endif	{		dbenv->set_lg_bsize = __log_set_lg_bsize;		dbenv->set_lg_dir = __log_set_lg_dir;		dbenv->set_lg_max = __log_set_lg_max;		dbenv->set_lg_regionmax = __log_set_lg_regionmax;		dbenv->log_archive = __log_archive;		dbenv->log_cursor = __log_cursor;		dbenv->log_file = __log_file;		dbenv->log_flush = __log_flush;		dbenv->log_put = __log_put;		dbenv->log_stat = __log_stat;	}}/* * __log_set_lg_bsize -- *	Set the log buffer size. */static int__log_set_lg_bsize(dbenv, lg_bsize)	DB_ENV *dbenv;	u_int32_t lg_bsize;{	u_int32_t lg_max;	ENV_ILLEGAL_AFTER_OPEN(dbenv, "set_lg_bsize");	if (lg_bsize == 0)		lg_bsize = LG_BSIZE_DEFAULT;					/* Let's not be silly. */	lg_max = dbenv->lg_size == 0 ? LG_MAX_DEFAULT : dbenv->lg_size;	if (lg_bsize > lg_max / 4) {		__db_err(dbenv, "log buffer size must be <= log file size / 4");		return (EINVAL);	}	dbenv->lg_bsize = lg_bsize;	return (0);}/* * __log_set_lg_max -- *	Set the maximum log file size. */static int__log_set_lg_max(dbenv, lg_max)	DB_ENV *dbenv;	u_int32_t lg_max;{	LOG *region;	if (lg_max == 0)		lg_max = LG_MAX_DEFAULT;	if (F_ISSET(dbenv, DB_ENV_OPEN_CALLED)) {		if (!LOGGING_ON(dbenv))			return (__db_env_config(			    dbenv, "set_lg_max", DB_INIT_LOG));		region = ((DB_LOG *)dbenv->lg_handle)->reginfo.primary;					/* Let's not be silly. */		if (lg_max < region->buffer_size * 4)			goto err;		region->log_nsize = lg_max;	} else {					/* Let's not be silly. */		if (lg_max < dbenv->lg_bsize * 4)			goto err;		dbenv->lg_size = lg_max;	}	return (0);err:	__db_err(dbenv, "log file size must be >= log buffer size * 4");	return (EINVAL);}/* * __log_set_lg_regionmax -- *	Set the region size. */static int__log_set_lg_regionmax(dbenv, lg_regionmax)	DB_ENV *dbenv;	u_int32_t lg_regionmax;{	ENV_ILLEGAL_AFTER_OPEN(dbenv, "set_lg_regionmax");					/* Let's not be silly. */	if (lg_regionmax != 0 && lg_regionmax < LG_BASE_REGION_SIZE) {		__db_err(dbenv,		    "log file size must be >= %d", LG_BASE_REGION_SIZE);		return (EINVAL);	}	dbenv->lg_regionmax = lg_regionmax;	return (0);}/* * __log_set_lg_dir -- *	Set the log file directory. */static int__log_set_lg_dir(dbenv, dir)	DB_ENV *dbenv;	const char *dir;{	if (dbenv->db_log_dir != NULL)		__os_free(dbenv, dbenv->db_log_dir);	return (__os_strdup(dbenv, dir, &dbenv->db_log_dir));}

⌨️ 快捷键说明

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