setup_before.h
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:13k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * Copyright (C) 1998,1999,2000  Ross Combs (rocombs@cs.nmsu.edu)
  3.  * Copyright (C) 1999  Rob Crittenden (rcrit@greyoak.com)
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License
  7.  * as published by the Free Software Foundation; either version 2
  8.  * of the License, or (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  */
  19. #ifdef INCLUDED_SETUP_AFTER_H
  20. # error "This file must be included before all other header files"
  21. #endif
  22. #ifndef INCLUDED_SETUP_BEFORE_H
  23. #define INCLUDED_SETUP_BEFORE_H
  24. /* get autoconf defines */
  25. #ifdef HAVE_CONFIG_H
  26. # include "config.h"
  27. #endif
  28. #ifdef WIN32
  29. #ifndef __BORLANDC__ /* Borland uses config.h.win32borland instead */
  30. # include "configwin.h"
  31. #endif
  32. #endif
  33. /* This file contains compile-time configuration parameters including
  34.  * debugging options, default configuration values, and format strings.
  35.  */
  36. #include "version.h"
  37. /***************************************************************/
  38. /* Debugging options */
  39. /* print bad calling locations of account functions */
  40. #define DEBUG_ACCOUNT
  41. /* make bnchat, etc. print debug messages */
  42. #define CLIENTDEBUG
  43. /* make the routines call xxx_check() and notice
  44.    xxx_purge() calls during list traversal */
  45. #undef LIST_DEBUG
  46. #undef HASHTABLE_DEBUG
  47. /* do we want to track malloc() and free()? */
  48. #undef USE_CHECK_ALLOC
  49. /* this will use GCC evensions to verify that all module arguments to
  50.    eventlog() are correct. */
  51. #undef DEBUGMODSTRINGS
  52. /*
  53.    After you compile, use this script:
  54.    strings bnetd |
  55.    egrep '@([^@]*@@[a-z_]*)@' |
  56.    sed -e 's/@(([^:]*):([a-z_]*)@@([a-z_]*))@/1 2 3/g' |
  57.    awk '{ if ( $2 != $3 ) printf("%s: %s->%sn",$1,$2,$3); }'
  58. */
  59. /* this will test get/unget memory management in account.c */
  60. #undef TESTUNGET
  61. /* check ladders for impossible combinations when returning them */
  62. #define LADDER_DEBUG
  63. /***************************************************************/
  64. /* compile-time options */
  65. /* how long do we wait for the UDP test reply? */
  66. #define CLIENT_MAX_UDPTEST_WAIT 5
  67. /* length of listen socket queue */
  68. /* #define LISTEN_QUEUE SOMAXCONN */
  69. #define LISTEN_QUEUE 10
  70. /* the format for account numbers */
  71. #define UID_FORMAT "#%08u"
  72. #define UID_MAXLEN 8
  73. /* the format for game ids */
  74. #define GAMEID_FORMAT "#%06u"
  75. #define GAMEID_MAXLEN 8
  76. /* the format of timestamps in the logfile */
  77. #define EVENT_TIME_FORMAT "%b %d %H:%M:%S"
  78. #define EVENT_TIME_MAXLEN 32
  79. /* the format of the stat times in bnstat */
  80. #define STAT_TIME_FORMAT "%Y %b %d %H:%M:%S"
  81. #define STAT_TIME_MAXLEN 32
  82. /* the format of the file modification time in bnftp */
  83. #define FILE_TIME_FORMAT "%Y %b %d %H:%M:%S"
  84. #define FILE_TIME_MAXLEN 32
  85. /* the format of the dates in the game report and for /gameinfo */
  86. #define GAME_TIME_FORMAT "%a %b %d %H:%M:%S %Z"
  87. #define GAME_TIME_MAXLEN 32
  88. /* the format of the timestamps for the start/end of channel log files */
  89. #define CHANLOG_TIME_FORMAT "%Y %b %d %H:%M:%S %Z"
  90. #define CHANLOG_TIME_MAXLEN 32
  91. /* the format of the timestamps for lines in the channel log files */
  92. #define CHANLOGLINE_TIME_FORMAT "%b %d %H:%M:%S"
  93. #define CHANLOGLINE_TIME_MAXLEN 32
  94. /* adjustable constants */
  95. #define BNETD_LADDER_DEFAULT_TIME "19764578 0" /* 0:00 1 Jan 1970 GMT */
  96. /* for clients if ioctl(TIOCGWINSZ) fails and $LINES and $COLUMNS aren't set */
  97. #define DEF_SCREEN_WIDTH  80
  98. #define DEF_SCREEN_HEIGHT 24
  99. /***************************************************************/
  100. /* default values for bnetd.conf */
  101. /* default Boolean setup values */
  102. #define BNETD_CHANLOG           0
  103. /* default path configuration values */
  104. #ifndef BNETD_DEFAULT_CONF_FILE
  105. # define BNETD_DEFAULT_CONF_FILE "conf/bnetd.conf"
  106. #endif
  107. #define BNETD_FILE_DIR          "files"
  108. #define BNETD_STORAGE_PATH      ""
  109. #define BNETD_REPORT_DIR        "reports"
  110. #define BNETD_LOG_FILE          "logs/bnetd.log"
  111. #define BNETD_MOTD_FILE         "conf/bnmotd.txt"
  112. #define BNETD_NEWS_DIR          "news"
  113. #define BNETD_AD_FILE           "conf/ad.conf"
  114. #define BNETD_CHANNEL_FILE      "conf/channel.list"
  115. #define BNETD_PID_FILE          ""  /* this means "none" */
  116. #define BNETD_ACCOUNT_TMP       ".bnetd_acct_temp"
  117. #define BNETD_IPBAN_FILE        "conf/bnban"
  118. #define BNETD_HELP_FILE         "conf/bnhelpfile"
  119. #define BNETD_FORTUNECMD        "/usr/games/fortune"
  120. #define BNETD_TRANS_FILE        "conf/gametrans"
  121. #define BNETD_CHANLOG_DIR       "chanlogs"
  122. #define BNETD_REALM_FILE        "conf/realm.list"
  123. #define BNETD_ISSUE_FILE        "conf/bnissue.txt"
  124. #define BNETD_MAIL_DIR          "var/bnmail"
  125. #define PVPGN_VERSIONCHECK      "conf/versioncheck"
  126. #define BNETD_LADDER_DIR        "var/ladders"
  127. #define BNETD_STATUS_DIR        "var/status"
  128. #define BNETD_TOPIC_FILE "var/topics"
  129. #define BNETD_DBLAYOUT_FILE     "conf/sql_DB_layout"
  130. #define BNETD_SUPPORT_FILE      "conf/supportfile"
  131. #define BNETD_COMMAND_GROUPS_FILE "conf/command_groups.txt"
  132. #define BNETD_TOURNAMENT_FILE "conf/tournament.conf"
  133. #define BNETD_ALIASFILE         "conf/bnalias.list"
  134. #define BNETD_W3TRANS_FILE "conf/w3trans"
  135. /* ADDED BY UNDYING SOULZZ 4/9/02 */
  136. /* default identify timeout value */
  137. #define W3_IDENTTIMEOUT 15 /* seconds */
  138. /* Added by Soar */
  139. /* time limit for new member as newer(whom cannot be promoted) in clan, (hrs) */
  140. #define CLAN_NEWER_TIME     168
  141. #define CLAN_MAX_MEMBERS    50
  142. /* moved from account.h */
  143. #define MAX_FRIENDS 20
  144. /* default files relative to FILE_DIR */
  145. #define BNETD_TOS_FILE     "tos.txt"
  146. #define BNETD_ICON_FILE    "icons.bni"
  147. #define BNETD_WAR3_ICON_FILE "icons-WAR3.bni"
  148. #define BNETD_STAR_ICON_FILE "icons_STAR.bni"
  149. #define BNETD_MPQ_FILE     "autoupdate"
  150. /* other default configuration values */
  151. #define BNETD_LOG_LEVELS      "warn,error"
  152. #define BNETD_SERV_ADDRS      ":" /* this means "all" */
  153. #define BNETD_SERV_PORT       6112
  154. #define BNETD_W3ROUTE_ADDR    "0.0.0.0"
  155. #define BNETD_W3ROUTE_PORT    6200
  156. #define BNETD_IRC_ADDRS       "" /* this means none */
  157. #define BNETD_IRC_PORT        6667 /* used if port not specified */
  158. #define BNETD_TRACK_ADDRS     "track.pvpgn.org"
  159. #define BNETD_TRACK_PORT      6114 /* use this port if not specified */
  160. #define BNETD_DEF_TEST_PORT   6112 /* default guess for UDP test port */
  161. #define BNETD_MIN_TEST_PORT   6112
  162. #define BNETD_MAX_TEST_PORT   6500
  163. #define BNETD_USERSYNC        300 /* s */
  164. #define BNETD_USERFLUSH       1000
  165. #define BNETD_USERSTEP        100 /* check 100 users per call in accountlist_save() */
  166. #define BNETD_LATENCY         10 /* s */
  167. #define BNETD_IRC_LATENCY     180 /* s */ /* Ping timeout for IRC connections */
  168. #define BNETD_DEF_NULLMSG     120 /* s */
  169. #define BNETD_TRACK_TIME      0
  170. #define BNETD_POLL_INTERVAL   20 /* 20 ms */
  171. #define BNETD_JIFFIES         50 /* 50 ms jiffies time quantum */
  172. #define BNETD_SHUTDELAY       300 /* s */
  173. #define BNETD_SHUTDECR        60 /* s */
  174. #define BNETD_DEFAULT_OWNER   "PvPGN"
  175. #define BNETD_DEFAULT_KEY     "3310541526205"
  176. #define BNETD_DEFAULT_HOST    "localhost"
  177. #define BNETD_QUOTA_DOBAE     7 /* lines */
  178. #define BNETD_QUOTA_LINES     5 /* lines */
  179. #define BNETD_QUOTA_TIME      5 /* s */
  180. #define BNETD_QUOTA_WLINE     40 /* chars */
  181. #define BNETD_QUOTA_MLINE     200 /* chars */
  182. #define BNETD_LADDER_INIT_RAT 1000
  183. #define BNETD_MAIL_SUPPORT    0
  184. #define BNETD_MAIL_QUOTA      5
  185. #define BNETD_LOG_NOTICE      "*** Please note this channel is logged! ***"
  186. #define BNETD_HASHTABLE_SIZE  61
  187. #define BNETD_REALM_PORT      6113  /* where D2CS listens */
  188. #define BNETD_TELNET_ADDRS    "" /* this means none */
  189. #define BNETD_TELNET_PORT     23 /* used if port not specified */
  190. #define BNETD_EXEINFO_MATCH   "exact"
  191. #define PVPGN_VERSION_TIMEDIV 0 /* no timediff check by default */
  192. #define PVPGN_CACHE_MEMLIMIT  5000000  /* bytes */
  193. #define PVPGN_DEFAULT_SYMB    "-_[]"
  194. /***************************************************************/
  195. /* default values for the tracking server */
  196. #define BNTRACKD_EXPIRE      600
  197. #define BNTRACKD_UPDATE      150
  198. #define BNTRACKD_GRANULARITY 5
  199. #define BNTRACKD_SERVER_PORT 6114
  200. #define BNTRACKD_PIDFILE     "" /* this means "none" */
  201. #define BNTRACKD_OUTFILE     "pvpgnlist.txt"
  202. #ifdef WIN32
  203. #define BNTRACKD_PROCESS     "process.pl"
  204. #define BNTRACKD_LOGFILE     "bntrackd.log"
  205. #else
  206. #define BNTRACKD_PROCESS     "scripts/process.pl"
  207. #define BNTRACKD_LOGFILE     "logs/bntrackd.log"
  208. #endif
  209. /***************************************************************/
  210. /* default values for W3XP anongameinfo packet */
  211. #define PVPGN_DEFAULT_URL    "www.pvpgn.org"
  212. #define PVPGN_PG_1V1_DESC      "Solo Games"
  213. #define PVPGN_AT_2V2_DESC       "2 player team"
  214. #define PVPGN_AT_3V3_DESC       "3 player team"
  215. #define PVPGN_AT_4V4_DESC       "4 player team"
  216. #define PVPGN_PG_TEAM_DESC      "Team Games"
  217. #define PVPGN_PG_FFA_DESC       "Free for All Games"
  218. #define PVPGN_1V1_GT_DESC   "One vs. One"
  219. #define PVPGN_1V1_GT_LONG   "Two players fight to the death"
  220. #define PVPGN_2V2_GT_DESC    "Two vs. Two"
  221. #define PVPGN_2V2_GT_LONG    "Two teams of two vie for dominance"
  222. #define PVPGN_3V3_GT_DESC    "Three vs. Three"
  223. #define PVPGN_3V3_GT_LONG    "Two teams of three face off on the battlefield"
  224. #define PVPGN_4V4_GT_DESC    "Four vs. Four"
  225. #define PVPGN_4V4_GT_LONG    "Two teams of four head to battle"
  226. #define PVPGN_5V5_GT_DESC    "Five vs. Five"
  227. #define PVPGN_5V5_GT_LONG    "Two teams of five - who will prevail?"
  228. #define PVPGN_6V6_GT_DESC    "Six vs. Six"
  229. #define PVPGN_6V6_GT_LONG    "Two teams of six - get ready to rumble!"
  230. #define PVPGN_SFFA_GT_DESC    "Small Free for All"
  231. #define PVPGN_SFFA_GT_LONG    "Can you defeat 3-5 opponents alone?"
  232. #define PVPGN_TFFA_GT_DESC    "Team Free for All"
  233. #define PVPGN_TFFA_GT_LONG    "Can your team defeat 1-2 others?"
  234. #define PVPGN_2V2V2_GT_DESC  "Two vs. Two vs. Two"
  235. #define PVPGN_2V2V2_GT_LONG  "Three teams of two, can you handle it?"
  236. #define PVPGN_3V3V3_GT_DESC  "Three vs. Three vs. Three"
  237. #define PVPGN_3V3V3_GT_LONG  "Three teams of three battle each other "
  238. #define PVPGN_4V4V4_GT_DESC  "Four vs. Four vs. Four"
  239. #define PVPGN_4V4V4_GT_LONG  "Three teams of four - things getting crowded?"
  240. #define PVPGN_2V2V2V2_GT_DESC  "Two vs. Two vs. Two vs. Two"
  241. #define PVPGN_2V2V2V2_GT_LONG  "Four teams of two, is this a challenge?"
  242. #define PVPGN_3V3V3V3_GT_DESC  "Three vs. Three vs. Three vs. Three"
  243. #define PVPGN_3V3V3V3_GT_LONG  "Four teams of three, the ultimate challenge!"
  244. #define PVPGN_AINFO_FILE     "conf/anongame_infos.conf"
  245. /* max number of players in an anongame match [Omega] */
  246. #define ANONGAME_MAX_GAMECOUNT  12
  247. /* max level of players*/
  248. #define ANONGAME_MAX_LEVEL 100
  249. /***************************************************************/
  250. /* platform dependent features */
  251. /* conditionally enabled features */
  252. #if defined(HAVE_SIGACTION) && defined(HAVE_SIGPROCMASK) && defined(HAVE_SIGADDSET)
  253. # define DO_POSIXSIG
  254. #endif
  255. #if defined(HAVE_FORK) && defined(HAVE_PIPE)
  256. # define DO_SUBPROC
  257. #endif
  258. #if defined(HAVE_FORK) && defined(HAVE_CHDIR) && (defined(HAVE_SETPGID) || defined(HAVE_SETPGRP))
  259. # define DO_DAEMONIZE
  260. #endif
  261. /* GCC attributes */
  262. /* enable format mismatch warnings from gcc */
  263. #if defined(__GNUC__) && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 5) || __GNUC__ > 2)
  264. # if __GNUC__ == 2 && __GNUC_MINOR__ < 7
  265. /* namespace clean versions were available starting in 2.6.4 */
  266. #  define __format__ format
  267. #  define __printf__ printf
  268. # endif
  269. # define PRINTF_ATTR(FMTARG,VARG) __attribute__((__format__(printf,FMTARG,VARG)))
  270. #else
  271. # define PRINTF_ATTR(FMTARG,VARG)
  272. #endif
  273. /* type attributes */
  274. /* set GCC machine storage mode */
  275. #if defined(__GNUC__) && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || __GNUC__ > 2)
  276. # define MODE_ATTR(M) __attribute__((__mode__(M)))
  277. # define HAVE_MODE_ATTR
  278. #else
  279. # define MODE_ATTR(M)
  280. #endif
  281. /* avoid using padding */
  282. #if defined(__GNUC__) /* FIXME: which gcc versions? */
  283. # define PACKED_ATTR() __attribute__((__packed__))
  284. #else
  285. # define PACKED_ATTR()
  286. #endif
  287. #define BNETD_MAX_SOCKETS 4096
  288. /* JEBs20020909
  289.  * To get rid of the nerved compiler warning about the
  290.  * redefined "FD_SETSIZE", and to be sure that optimum/right
  291.  * parameters are used i tried to fix it.
  292.  */
  293. #ifdef STDC_HEADERS
  294. # include <stdlib.h>
  295. #endif
  296. /*
  297.  * select() hackery... works most places, need to add autoconf checks
  298.  * because some systems may redefine FD_SETSIZE, have it as a variable,
  299.  * or not have the concept of such a value.
  300.  */
  301. /* Win32 defaults to 64, BSD and Linux default to 1024 */
  302. /* FIXME: how big can this be before things break? */
  303. #ifndef FD_SETSIZE
  304. # define FD_SETSIZE BNETD_MAX_SOCKETS
  305. #endif
  306. #ifdef HAVE_EPOLL_CREATE
  307. # define HAVE_EPOLL 1
  308. #endif
  309. #endif