/*
 *  ircd-ratbox: A slightly useful ircd.
 *  m_info.h: A header for the information sent by /info
 *
 *  Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
 *  Copyright (C) 1996-2002 Hybrid Development Team
 *  Copyright (C) 2002-2004 ircd-ratbox development team
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
 *  USA
 */

#ifndef INCLUDED_m_info_h
#define INCLUDED_m_info_h

#include "defaults.h"

typedef struct Information
{
	const char *name;	/* name of item */
	const char *strvalue;	/* value of item if it's a boolean */
	int intvalue;		/* value of item if it's an integer */
	const char *desc;	/* short description of item */
}
Info;

Info MyInformation[] = {

#ifdef CPATH
	{"CPATH", CPATH, 0, "Path to Main Configuration File"},
#else
	{"CPATH", "NONE", 0, "Path to Main Configuration File"},
#endif /* CPATH */

#ifdef DPATH
	{"DPATH", DPATH, 0, "Directory Containing Configuration Files"},
#else
	{"DPATH", "NONE", 0, "Directory Containing Configuration Files"},
#endif /* DPATH */

#ifdef HPATH
	{"HPATH", HPATH, 0, "Path to Operator Help Files"},
#else
	{"HPATH", "NONE", 0, "Path to Operator Help Files"},
#endif /* HPATH */

#ifdef UHPATH
	{"UHPATH", UHPATH, 0, "Path to User Help Files"},
#else
	{"UHPATH", "NONE", 0, "Path to User Help Files"},
#endif /* UH PATH */

#ifdef SOMAXCONN
	{"SOLANUM_SOMAXCONN", "", SOMAXCONN,
	 "Maximum Queue Length of Pending Connections"},
#else
	{"SOLANUM_SOMAXCONN", "", SOLANUM_SOMAXCONN,
	 "Maximum Queue Length of Pending Connections"},
#endif /* SOMAXCONN */

	{"IPV6", "ON", 0, "IPv6 Support"},

	{"JOIN_LEAVE_COUNT_EXPIRE_TIME", "", JOIN_LEAVE_COUNT_EXPIRE_TIME,
	 "Anti SpamBot Parameter"},

	{"KILLCHASETIMELIMIT", "", KILLCHASETIMELIMIT,
	 "Nick Change Tracker for KILL"},

#ifdef LPATH
	{"LPATH", LPATH, 0, "Path to Log File"},
#else
	{"LPATH", "NONE", 0, "Path to Log File"},
#endif /* LPATH */

	{"MAX_BUFFER", "", MAX_BUFFER, "Maximum Buffer Connections Allowed"},

	{"MAX_JOIN_LEAVE_COUNT", "", MAX_JOIN_LEAVE_COUNT,
	 "Anti SpamBot Parameter"},

	{"MIN_JOIN_LEAVE_TIME", "", MIN_JOIN_LEAVE_TIME,
	 "Anti SpamBot Parameter"},

#ifdef MPATH
	{"MPATH", MPATH, 0, "Path to MOTD File"},
#else
	{"MPATH", "NONE", 0, "Path to MOTD File"},
#endif /* MPATH */

	{"NICKNAMEHISTORYLENGTH", "", NICKNAMEHISTORYLENGTH,
	 "Size of WHOWAS Array"},

#ifdef OPATH
	{"OPATH", OPATH, 0, "Path to Operator MOTD File"},
#else
	{"OPATH", "NONE", 0, "Path to Operator MOTD File"},
#endif /* OPATH */

	{"OPER_SPAM_COUNTDOWN", "", OPER_SPAM_COUNTDOWN,
	 "Anti SpamBot Parameter"},

#ifdef HAVE_OPENSSL
	{"HAVE_OPENSSL", "ON", 0, "Enable OpenSSL CHALLENGE Support"},
#else
	{"HAVE_OPENSSL", "OFF", 0, "Enable OpenSSL CHALLENGE Support"},
#endif /* HAVE_OPENSSL */

#ifdef HAVE_LIBZ
	{"HAVE_LIBZ", "YES", 0, "zlib (ziplinks) support"},
#else
	{"HAVE_LIBZ", "NO", 0, "zlib (ziplinks)  support"},
#endif /* HAVE_LIBZ */

#ifdef PPATH
	{"PPATH", PPATH, 0, "Path to Pid File"},
#else
	{"PPATH", "NONE", 0, "Path to Pid File"},
#endif /* PPATH */

#ifdef SPATH
	{"SPATH", SPATH, 0, "Path to Server Executable"},
#else
	{"SPATH", "NONE", 0, "Path to Server Executable"},
#endif /* SPATH */

	{"TS_MAX_DELTA_DEFAULT", "", TS_MAX_DELTA_DEFAULT,
	 "Maximum Allowed TS Delta from another Server"},
	{"TS_WARN_DELTA_DEFAULT", "", TS_WARN_DELTA_DEFAULT,
	 "Maximum TS Delta before Sending Warning"},
#ifdef USE_IODEBUG_HOOKS
	{"USE_IODEBUG_HOOKS", "YES", 0, "IO Debugging support"},
#else
	{"USE_IODEBUG_HOOKS", "NO", 0, "IO Debugging support"},
#endif

	/*
	 * since we don't want to include the world here, NULL probably
	 * isn't defined by the time we read this, just use plain 0 instead
	 * 0 is guaranteed by the language to be assignable to ALL built
	 * in types with the correct results.
	 */
	{0, 0, 0, 0}
};


#endif /* INCLUDED_m_info_h */
