fi
endmenu
+mainmenu_option next_comment
+comment 'Debugging (do not define this on production servers)'
+ bool 'Do you want to enable debugging output' DEBUGMODE
+ bool 'Do you want to enable asserts and memory allocation checking' CONFIG_NDEBUG
+ EXTRA_CPPFLAGS=""
+ if [ "$CONFIG_NDEBUG" = "n" ]; then
+ if [ -z "$EXTRA_CPPFLAGS" ]; then
+ EXTRA_CPPFLAGS="-DNDEBUG"
+ else
+ EXTRA_CPPFLAGS="-DNDEBUG $EXTRA_CPPFLAGS"
+ fi
+ fi
+endmenu
+
mainmenu_option next_comment
comment 'Compile stuff'
if [ "$prefix" = "NONE" ]; then
LIBS=none
fi
string 'Which extra libraries do you need [none]' IRCDLIBS "$LIBS"
+ bool 'Generate debug symbols?' DEBUGSYMBOLS "y"
+ bool 'Compile in profiling support (gcc and maybe SUNpro)?' IRCUPROFILE "n"
+ unset ZSTEMP
+ if [ "$DEBUGSYMBOLS" = "y" ] ; then
+ ZSTEMP="-g"
+ fi
+ if [ "$IRCUPROFILE" = "y" ] ; then
+ ZSTEMP="-pg $ZSTEMP"
+ fi
+ define_string DEBUGFLAGS "$ZSTEMP"
eval bindir="$bindir"
string 'In which directory should I install the ircd binary' BINDIR $bindir
if [ ! -d "$BINDIR" ]; then
if [ "$IRCDLIBS" = "none" ]; then
IRCDLIBS=""
fi
- EXTRA_CPPFLAGS=""
if [ -n "$EXTRA_INCLUDEDIRS" ]; then
for i in $EXTRA_INCLUDEDIRS; do
if [ -z "$EXTRA_CPPFLAGS" ]; then
done
fi
if [ -z "$EXTRA_CPPFLAGS" ]; then
- CPPFLAGS=-I../include
+ CPPFLAGS="-I../include -I../config"
else
- CPPFLAGS="-I../include $EXTRA_CPPFLAGS"
+ CPPFLAGS="-I../include -I../config $EXTRA_CPPFLAGS"
fi
echo "EXTRA_CPPFLAGS=\"$EXTRA_CPPFLAGS\"" >>$CONFIG
echo "CPPFLAGS=\"$CPPFLAGS\"" >>$CONFIG
mainmenu_option next_comment
comment 'Host specific defines'
if [ -f /etc/resolv.conf ]; then
- DOMAINNAME_DEFAULT="`awk '/^domain/ { print $2; exit }' /etc/resolv.conf`"
+ DOMAINNAME_DEFAULT="`awk '/^domain/ { print "*" $2; exit }' /etc/resolv.conf`"
fi
- string 'What is the domain name of your network' DOMAINNAME $DOMAINNAME_DEFAULT
- if [ -z "$DOMAINNAME" ]; then
- DOMAINNAME=none
+ if [ -z "$DOMAINNAME_DEFAULT" ]; then
+ DOMAINNAME_DEFAULT="`awk '/^search/ { print "*" $2; exit }' /etc/resolv.conf`"
fi
- string 'Please give a random seed of eight characters' RANDOM_SEED 12345678
- bool 'Does your host have a reliable clock' RELIABLE_CLOCK
+ if [ -z "$DOMAINNAME_DEFAULT" ]; then
+ DOMAINNAME_DEFAULT=none
+ fi
+ define_string DOMAINNAME $DOMAINNAME_DEFAULT
endmenu
mainmenu_option next_comment
comment 'General defines'
- bool 'Change root ('/') after start of daemon' CHROOTDIR
- bool 'Do you want the daemon set its own uid/gid' CONFIG_SETUGID
+ bool 'Do you want the daemon set its own uid/gid (say yes for chroot!)' CONFIG_SETUGID
if [ "$CONFIG_SETUGID" = "y" ]; then
int ' UID of irc daemon' IRC_UID
int ' GID of irc daemon' IRC_GID
+ bool ' Change root ('/') after start of daemon' CHROOTDIR
else
+ define_bool CHROOTDIR n
define_int IRC_UID $IRC_UID
define_int IRC_GID $IRC_GID
- bool 'Allow to specify configuration file on command line' CMDLINE_CONFIG
if [ "$CMDLINE_CONFIG" = "y" ]; then
echo " SECURITY: Then don't install the daemon SUID or SGID !"
fi
fi
- bool 'Set up a Unix domain socket to connect clients/servers' UNIXPORT
- bool 'Do you need virtual hosting' VIRTUAL_HOST
- PREV_HUB=$HUB
- bool 'Will you connect to more then one server at a time' HUB
- if [ "$PREV_HUB" != "$HUB" ]; then
- BUFFERPOOL=
- fi
endmenu
-mainmenu_option next_comment
-comment 'Debugging (do not define this on production servers)'
- bool 'Do you want to enable debugging output' DEBUGMODE
- bool 'Do you want memory- allocation and/or leak checking' DEBUGMALLOC
- if [ "$DEBUGMALLOC" = "y" ]; then
- bool 'Do you want to have boundary checking' MEMMAGICNUMS
- bool 'Do you want memory leak testing (stats M)' MEMLEAKSTATS y
- if [ "$MEMLEAKSTATS" = "y" ]; then
- if [ "$MEMMAGICNUMS" = "y" ]; then
- echo "You will have extra info on allocated sizes too (MEMSIZESTATS)"
- define_bool MEMSIZESTATS $MEMSIZESTATS
- else
- bool 'Do you want extra info on allocated sizes' MEMSIZESTATS y
- fi
- bool 'Do you want support for a time interval with /stats M' MEMTIMESTATS y
- fi
- else
- define_bool MEMMAGICNUMS $MEMMAGICNUMS
- define_bool MEMLEAKSTATS $MEMLEAKSTATS
- define_bool MEMSIZESTATS $MEMSIZESTATS
- define_bool MEMTIMESTATS $MEMTIMESTATS
- fi
- bool 'Are you testing on a host without DNS' NODNS
-endmenu
mainmenu_option next_comment
comment 'Paths and files'
eval DPATH_DEFAULT="${prefix}/lib/ircd"
string 'Directory where all ircd stuff resides' DPATH $DPATH_DEFAULT
- define_string SPATH "$BINDIR/ircd"
+ if [ "$CHROOTDIR" = "y" ] ; then
+ define_string SPATH "/$SYMLINK"
+ else
+ define_string SPATH "$BINDIR/$SYMLINK"
+ fi
echo "The following filenames are either full paths or files within DPATH"
string 'Server configuration file' CPATH 'ircd.conf'
- string 'Server MOTD file' MPATH 'ircd.motd'
- string 'Server remote MOTD file (3 lines max)' RPATH 'remote.motd'
if [ "$DEBUGMODE" = "y" ]; then
string 'Debug file if DEBUGMODE' LPATH '/tmp/ircd.log'
else
define_string LPATH "$LPATH"
fi
- string 'File for server pid' PPATH 'ircd.pid'
-endmenu
-
-mainmenu_option next_comment
-comment 'Logging (filenames are either full paths or files within DPATH)'
- bool 'Do you want to log the use of /WHO x% (recommended)' CONFIG_LOG_WHOX y
- if [ "$CONFIG_LOG_WHOX" = "y" ]; then
- string ' Give the path and(or) filename of this log file' WPATH 'whox.log'
- fi
-
- comment 'Bad Channel G-Lines allow operators to add channel masks to a list which prohibits local clients from being able joining channels which match the mask. Remote BadChan Glines allow Uworld to add or remove channels from the servers internal list of badchans'
- bool 'Do you want to enable Bad Channel G-lines' BADCHAN y
- if [ "$BADCHAN" = "y" ]; then
- echo " "
- echo " WARNING DO _NOT_ USE LOCAL BADCHANNEL GLINES ON UNDERNET"
- echo " Use of LOCAL BAD Channel G-Lines can be cause for REMOVAL"
- bool 'Allow LOCAL BAD Channel G-lines' LOCAL_BADCHAN
- fi
-
- bool 'Do you want to log G-lines to a separate file' CONFIG_LOG_GLINES
- if [ "$CONFIG_LOG_GLINES" = "y" ]; then
- string ' Give the path and(or) filename of this log file' GPATH 'gline.log'
- fi
- bool 'Do you want to log connecting users to a separate file' CONFIG_LOG_USERS
- if [ "$CONFIG_LOG_USERS" = "y" ]; then
- string ' Give the path and(or) filename of this log file' FNAME_USERLOG $DPATH/users
- fi
- bool 'Do you want to log Opers to a separate file' CONFIG_LOG_OPERS
- if [ "$CONFIG_LOG_OPERS" = "y" ]; then
- string ' Give the path and(or) filename of this log file' FNAME_OPERLOG $DPATH/opers
- fi
- if [ "$ac_cv_header_syslog_h" = "yes" ]; then
- bool 'Do you want to use syslog' USE_SYSLOG
- else
- USE_SYSLOG=n
- fi
- if [ "$USE_SYSLOG" = "y" ]; then
- bool ' Log all operator kills to syslog' SYSLOG_KILL
- bool ' Log all remote squits for all servers to syslog' SYSLOG_SQUIT
- bool ' Log remote connect messages for other all servs' SYSLOG_CONNECT
- bool ' Log all users who successfully become an Oper' SYSLOG_OPER
- bool ' Send userlog stuff to syslog' SYSLOG_USERS
- if [ "$SYSLOG_KILL" = "n" -a "$SYSLOG_SQUIT" = "n" -a \
- "$SYSLOG_CONNECT" = "n" -a "$SYSLOG_OPER" = "n" -a \
- "$SYSLOG_USERS" = "n" ]; then
- define_macro LOG_FACILITY $LOG_FACILITY
- define_bool USE_SYSLOG n
- else
- choice ' Log facility' \
- "daemon CONFIG_DAEMON \
- user CONFIG_USER \
- local0-7 CONFIG_LOCAL" daemon
- if [ "$CONFIG_DAEMON" = "y" ]; then
- define_macro LOG_FACILITY LOG_DAEMON
- else
- if [ "$CONFIG_USER" = "y" ]; then
- define_macro LOG_FACILITY LOG_USER
- else
- int ' Which local facility (0-7)' INT_LOCAL
- define_macro LOG_FACILITY LOG_LOCAL$INT_LOCAL
- fi
- fi
- echo " Using log facility $LOG_FACILITY"
- fi
- else
- define_bool SYSLOG_KILL $SYSLOG_KILL
- define_bool SYSLOG_SQUIT $SYSLOG_SQUIT
- define_bool SYSLOG_CONNECT $SYSLOG_CONNECT
- define_bool SYSLOG_OPER $SYSLOG_OPER
- define_bool SYSLOG_USERS $SYSLOG_USERS
- define_macro LOG_FACILITY $LOG_FACILITY
- fi
endmenu
mainmenu_option next_comment
comment 'Configuration'
- bool 'Use crypted passwords for N: lines' CRYPT_LINK_PASSWORD y
- bool 'Use crypted passwords for operators' CRYPT_OPER_PASSWORD y
- DUMMY=`echo "$BUFFERPOOL" | sed -e 's/[0-9]//g'`
- if [ "$DUMMY" != "" ]; then
- BUFFERPOOL=
- fi
- if [ "$HUB" = "y" ]; then
- int 'Max size of the total of of all sendqs (bytes)' BUFFERPOOL 27000000
- else
- int 'Max size of the total of of all sendqs (bytes)' BUFFERPOOL 9000000
- fi
- int 'Max receive queue for clients (bytes)' CLIENT_FLOOD 1024
int 'Maximum number of network connections (23 - (FD_SETSIZE-4))' MAXCONNECTIONS 252
- int 'Default client listen port' PORTNUM 6667
- int 'Nickname history length' NICKNAMEHISTORYLENGTH 800
- bool 'Allow Opers to see (dis)connects of local clients' ALLOW_SNO_CONNEXIT
- if [ "$ALLOW_SNO_CONNEXIT" = "y" ]; then
- bool 'Show IP address in client connection notices' SNO_CONNEXIT_IP
- fi
- bool 'Do you want to use R: lines in your configuration file' R_LINES
- if [ "$R_LINES" = "y" ]; then
- bool 'Process R: lines every rehash' R_LINES_REHASH y
- bool 'Process R: lines always' R_LINES_OFTEN
- else
- define_bool R_LINES_REHASH $R_LINES_REHASH
- define_bool R_LINES_OFTEN $R_LINES_OFTEN
- fi
- bool 'Do you want support for the old I:*:ONE:*:: construct (read help text!)' USEONE n
- bool 'Send a short message instead of the MOTD to connecting clients' NODEFAULTMOTD y
-endmenu
-
-mainmenu_option next_comment
-comment 'Oper commands'
- bool 'Allow (local) Opers to see all local invisible users' SHOW_INVISIBLE_USERS y
- if [ "$SHOW_INVISIBLE_USERS" = "y" ]; then
- bool 'Allow Opers to see all invisible users' SHOW_ALL_INVISIBLE_USERS y
- fi
- bool 'Allow global Opers (O:) to see inside secret channels' OPERS_SEE_IN_SECRET_CHANNELS y
- if [ "$OPERS_SEE_IN_SECRET_CHANNELS" = "y" ]; then
- bool 'Allow local Opers (o:) to see inside secret channels' LOCOP_SEE_IN_SECRET_CHANNELS n
- fi
- bool 'Do not truncate obnoxiously long /who output for opers' UNLIMIT_OPER_QUERY
- bool 'Allow Opers to use the KILL command' OPER_KILL y
- bool 'Allow Opers to use the REHASH command' OPER_REHASH y
- bool 'Allow Opers to use the RESTART command' OPER_RESTART y
- bool 'Allow Opers to use the DIE command' OPER_DIE y
- bool 'Allow Opers to add local G-lines' OPER_LGLINE y
- bool 'Allow Opers to connect from a remote site' OPER_REMOTE y
- bool 'Allow local opers to use the REHASH command' LOCOP_REHASH y
- bool 'Allow local opers to use the RESTART command' LOCOP_RESTART
- bool 'Allow local opers to use the DIE command' LOCOP_DIE
- bool 'Allow local opers to add local G-lines' LOCOP_LGLINE y
- bool 'Allow local/global opers to be on any number of channels' OPER_NO_CHAN_LIMIT y
- bool 'Allow local/global opers to set modes on local channels' OPER_MODE_LCHAN y
- bool 'Allow local/global opers to walk through local channels modes' OPER_WALK_THROUGH_LMODES n
- bool 'Prevent local/global opers from being kicked or deoped on local channels' NO_OPER_DEOP_LCHAN n
-endmenu
-
-mainmenu_option next_comment
-comment 'Server characteristics'
- bool 'Do you want to have a default LIST parameter' CONFIG_LIST y
- if [ "$CONFIG_LIST" = "y" ]; then
- string 'Give default LIST parameter' DEFAULT_LIST 'T<10'
- define_string DEFAULT_LIST_PARAM "$DEFAULT_LIST"
- else
- define_string DEFAULT_LIST "$DEFAULT_LIST"
- define_bool DEFAULT_LIST_PARAM n
- fi
- bool 'K: line comments treated as a file by default' COMMENT_IS_FILE y
- bool 'Only nullify idle-time on PRIVMSG' IDLE_FROM_MSG y
-endmenu
-
-mainmenu_option next_comment
-comment 'Mandatory defines (you should leave these untouched)'
- int 'Max auto connects per class (1!)' MAXIMUM_LINKS 1
- echo '* Never define this on a production server:'
- bool 'Enable message logging' MSGLOG_ENABLED
- if [ "$MSGLOG_ENABLED" = "y" ]; then
- int 'Message log size' MSGLOG_SIZE 128
- fi
- if [ "$OPER_KILL" = "y" ]; then
- bool 'Only allow KILLs of local clients' LOCAL_KILL_ONLY
- else
- define_bool LOCAL_KILL_ONLY $LOCAL_KILL_ONLY
- fi
- int 'KILL nick chase time limit (30)' KILLCHASETIMELIMIT 30
- int 'Max number of channels per user (recommended: 5)' MAXCHANNELSPERUSER 10
- int 'Max number of silence masks (15!)' MAXSILES 15
- int 'Expected average banmask length (40!)' AVBANLEN 40
- eval define_macro MAXSILELENGTH \'\($AVBANLEN * MAXSILES\)\'
- echo '* These are default values, used for class 0:'
- int 'Max server idle time (60)' TIMESEC 60
- int 'Class 0 ping frequency (120)' PINGFREQUENCY 120
- int 'Class 0 connect frequency (600)' CONNECTFREQUENCY 600
- int 'Min time before a link is good (300)' HANGONGOODLINK 300
- int 'Wait before reconnecting to good link (10!)' HANGONRETRYDELAY 10
- int 'connect(2) timeout (90!)' CONNECTTIMEOUT 90
- int 'Max send queue (40000)' DEFAULTMAXSENDQLENGTH 40000
endmenu
-