mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-21 17:56:37 +02:00
Compare commits
240 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 45d04d8940 | |||
| 2711cd2c86 | |||
| a212fe9347 | |||
| ea303f149d | |||
| ca86e3b898 | |||
| 83384cef2a | |||
| 38c54cf5fb | |||
| c5da05f68b | |||
| 5f7a7dc9b0 | |||
| f84c1da01d | |||
| dc69fdc2b7 | |||
| 81627d4e9e | |||
| b4f2619a64 | |||
| 2944546c1d | |||
| 64b46a7123 | |||
| cb7856a788 | |||
| 6f20433c8b | |||
| 002b4478ee | |||
| 920291f4ba | |||
| 05074adef2 | |||
| 2eda2e95ca | |||
| 925cf08021 | |||
| 112a576c9c | |||
| 7d14f833e6 | |||
| 36ba7623cf | |||
| 83a7cdd734 | |||
| 9b866fa123 | |||
| b7a5fdb989 | |||
| 7b2b77df4e | |||
| 4238193d07 | |||
| 7e96a1c9ee | |||
| 4458de5c5b | |||
| d03f91e9b4 | |||
| fc2fad2c92 | |||
| fcbb0fcd69 | |||
| f4850d25c0 | |||
| a0870fb76d | |||
| 77317ec9f7 | |||
| 943d5ad6d5 | |||
| ca2b4ddecc | |||
| 94d36995e5 | |||
| 5849092137 | |||
| f119a2cea0 | |||
| 6357fb1f07 | |||
| f880c03323 | |||
| 52743f1871 | |||
| 56ce16788f | |||
| 542fa2bcfc | |||
| ee77248055 | |||
| 50d7a4ecea | |||
| c643895de7 | |||
| 4b13535e28 | |||
| bcd5d4a339 | |||
| 832c612317 | |||
| c9d21d8ab0 | |||
| 0e87ac8aaf | |||
| 548cf88bce | |||
| e597f79e31 | |||
| 9ac0513c56 | |||
| 69095eb401 | |||
| 2c7a3f2e66 | |||
| ee3c5683db | |||
| daf4161e12 | |||
| 1a7c68a72b | |||
| 2c7a00d11f | |||
| ea630663f9 | |||
| 7e87518dda | |||
| b7492458bf | |||
| ae2abd4f50 | |||
| ea36514f06 | |||
| a59bd57d5b | |||
| 59e80b2535 | |||
| f8d18df440 | |||
| 97adf80062 | |||
| e73cb3e8f4 | |||
| 26eca67b82 | |||
| 0cd066d62d | |||
| 5545cc49b9 | |||
| 017c87cd4d | |||
| 22c17e5009 | |||
| 054a30e061 | |||
| 68ed7aee77 | |||
| c3d01a03de | |||
| 07c8d7604f | |||
| 3ca6c4d3bc | |||
| cf6965e9e2 | |||
| 7e6ca53e67 | |||
| 8481b9da1d | |||
| b6879d2b63 | |||
| 4db5289ea6 | |||
| 1e0c422213 | |||
| c9ea9a7251 | |||
| ad9c35029e | |||
| f21c338460 | |||
| d776eb39e2 | |||
| 49e4360cde | |||
| e136f05517 | |||
| 8650bb40f9 | |||
| e979619d0c | |||
| 353e366445 | |||
| 0f38bad303 | |||
| 3897fada86 | |||
| b61dee6561 | |||
| 9c23d3d80d | |||
| e62959f1fe | |||
| f332d8754a | |||
| a1e8de34f8 | |||
| ebab7885c8 | |||
| 2e993427c6 | |||
| 7778376e80 | |||
| 6efe4637a8 | |||
| d2fef70316 | |||
| e41424fdff | |||
| fbe0c28ec5 | |||
| cd298bd951 | |||
| 56958c9545 | |||
| 10bf77903f | |||
| ce5303499d | |||
| 49ec84f55e | |||
| 5c83aeb8cb | |||
| 852e074b8d | |||
| 50241b173a | |||
| 454aa172f6 | |||
| 29a78afbf8 | |||
| 46cfa34bd9 | |||
| 067416d76a | |||
| 8ffb35563d | |||
| 79b741feaf | |||
| b637e33d7e | |||
| 9004ddea06 | |||
| 133adeed90 | |||
| fd78f47031 | |||
| 5faee2f717 | |||
| 443149f01a | |||
| ff81c7e846 | |||
| 4aeb5b7df7 | |||
| 6687fc0c96 | |||
| 38088f0e79 | |||
| 4b1a0f9771 | |||
| 88ae0eb161 | |||
| 22265ef4b0 | |||
| f4d6a50004 | |||
| 3adea60d91 | |||
| 4d0bff1244 | |||
| e020a53a47 | |||
| 31944265d5 | |||
| 22c4007ee2 | |||
| 2043609896 | |||
| 893b1fb5b7 | |||
| fae0aeee4c | |||
| 95ba27b262 | |||
| 65ad12e105 | |||
| 39db232a0b | |||
| 7fa2109d8d | |||
| f007f038a3 | |||
| c99189bb09 | |||
| 614b53165e | |||
| 238a1c0c18 | |||
| e2f782743e | |||
| 547978596a | |||
| 6d2ae0e5c4 | |||
| 42ef5be6ac | |||
| 24ffc94440 | |||
| c9bb7e3e17 | |||
| df0588531f | |||
| 7bf4127108 | |||
| 21ab148d31 | |||
| 594644dd62 | |||
| 6930f843c3 | |||
| 8ef42da438 | |||
| 7f7e8496b2 | |||
| be0a8ab801 | |||
| d784acb0fd | |||
| 67a2c3aff8 | |||
| d172d7e490 | |||
| 4aa480a48e | |||
| b97df7b529 | |||
| 9d00e22db9 | |||
| 4a205703cc | |||
| 898d859b77 | |||
| 15eeec8d2b | |||
| cb6df4e455 | |||
| 1fe247500e | |||
| 66de87ec29 | |||
| 4b0796a091 | |||
| daf9ebb95f | |||
| 8ec4782859 | |||
| 8c3a44ced1 | |||
| e88a77d557 | |||
| 039e223df2 | |||
| 38701f718a | |||
| fa8fbc6a61 | |||
| 99b50af732 | |||
| c6fc8dfa28 | |||
| 47652fc22c | |||
| ba8e5cd7a0 | |||
| 158676655c | |||
| 0cc02e308c | |||
| f1b278e450 | |||
| 2b9476c923 | |||
| 2bdc12b8f8 | |||
| 8dd90cc2ed | |||
| 4f2480fff2 | |||
| acca35a057 | |||
| ebd5551d0f | |||
| 42b3540a3c | |||
| 597226b3a4 | |||
| 6a5b247542 | |||
| d988ffa7ab | |||
| 5f6816df57 | |||
| a7cdae2d81 | |||
| 2294fe88cc | |||
| ae84795a12 | |||
| 6f8d4f83f8 | |||
| dc63d47084 | |||
| 9ad0ad77d7 | |||
| 9ea0e07fff | |||
| f3acb92ca8 | |||
| dfa40c5367 | |||
| 11ab94eb6c | |||
| b27881f912 | |||
| 1ca4c73f43 | |||
| 81ae7da025 | |||
| 20e42e5bbe | |||
| b7d50aee12 | |||
| 10584456b4 | |||
| 95d9f969d8 | |||
| 32843244bd | |||
| e0c9b38269 | |||
| f71456670c | |||
| ef3afb8844 | |||
| e884446871 | |||
| 3d40229700 | |||
| 47a9211bf0 | |||
| 078fd039d4 | |||
| 0523a55aca | |||
| cbdd3138c8 | |||
| 361d1646e9 | |||
| 9894663a55 | |||
| 704b6260d2 |
+1
-1
@@ -7,7 +7,7 @@
|
||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||
|
||||
Configuration Program
|
||||
for Unreal3.2.3
|
||||
for Unreal3.2.5
|
||||
|
||||
This program will help you to compile your IRC server, and ask you
|
||||
questions regarding the compile-time settings of it during the process.
|
||||
|
||||
+3
-116
@@ -1,116 +1,3 @@
|
||||
|
||||
Unreal3.2.3 Release Notes
|
||||
==========================
|
||||
|
||||
==[ GENERAL INFORMATION ]==
|
||||
- If you are upgrading on *NIX, make sure you run 'make clean' and './Config'
|
||||
first before doing 'make'
|
||||
- The official UnrealIRCd documentation is doc/unreal32docs.html
|
||||
online version at: http://www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
FAQ: http://www.vulnscan.org/UnrealIrcd/faq/
|
||||
Read them before asking for help.
|
||||
- Report bugs at http://bugs.unrealircd.org/
|
||||
- When upgrading a network, we assume you are upgrading from the previous
|
||||
version (3.2.2). If you got a net running with servers that are several
|
||||
versions behind (eg: 3.2.1) then you might experience (desynch) problems.
|
||||
Also, if you try to use the new features, some might not work properly
|
||||
until all your servers are upgraded. It is therefore recommended to
|
||||
upgrade all servers in a 'short' time span (x day[s], not weeks).
|
||||
|
||||
==[ NEW ]==
|
||||
- Channel mode +I (invex, invite exceptions). Users on this list can join +i channels
|
||||
without needing an /invite.
|
||||
- Channel mode +j (jointhrottle). If you set +j X:Y you limit each user (individually)
|
||||
to X joins per Y seconds to the channel.
|
||||
- Nick Character System: this allows you to choose which additional characters to
|
||||
allow in nicknames by language (and codepage). Currently available are:
|
||||
catalan, dutch, french, german, swiss-german, icelandic, italian, spanish,
|
||||
swedish, hungarian, polish, romanian, slovak, czech, greek, turkish, russian,
|
||||
hebrew and chinese. There are also several 'groups' available, for more info see:
|
||||
http://www.vulnscan.org/UnrealIrcd/unreal32docs.html#feature_nickchars
|
||||
- *NIX: ./Config -advanced, allows you to choose more options
|
||||
- tld::botmotd and tld::opermotd
|
||||
- Using /INVITE with no parameters will a list of channels you are invited to
|
||||
but have not yet joined.
|
||||
- set::gline-address, works just like set::kline-address but then for glines.
|
||||
- Added a basic regex tutorial in unreal32docs.html
|
||||
- /SAJOIN now supports multiple channels (and '0') again.
|
||||
- Spamfilter topic support ('t' in spamfilter, 'topic' in conf).
|
||||
- Added a feature to +b/+e ~c: ~c:[prefix]<#channel>. This can be used if you for
|
||||
example trust all ops of #leet: mode #x +e ~c:@#leet.
|
||||
- Various translated documents in doc/: unreal32docs.gr.html (Greek), help.fr.conf
|
||||
and example.fr.conf (French), help.de.conf & example.de.conf (German), and
|
||||
example.hu.conf (Hungarian).
|
||||
|
||||
==[ CHANGED ]==
|
||||
- Updated auspice.conf
|
||||
- The usual doc updates, help.conf, spamfilter.conf, dccallow.conf, etc.
|
||||
- The config parser got (mostly) recoded. This makes it rehash much faster,
|
||||
additionally "duplicate item" checking is now available.
|
||||
- Added a 'B' flag to /who output for bots. Also normal users can now /who +m B.
|
||||
- Support in configfiles for \\ (= a \)
|
||||
- set::dns::bind::ip, hardly useful for anyone
|
||||
- If a user is +b on a channel, and set::allow-userhost-change force-rejoin is
|
||||
in use, then a part/join is not sent in order to prevent flooding.
|
||||
- OperOverride INVITE notices are now sent out globally to all +s +e users.
|
||||
- User mode 'g' is now operonly, it hardly did anything for non-opers.
|
||||
- Made CIDR no longer accept bitmasks with less than 16bits for /*line commands.
|
||||
- Modulized a lot of commands (~5000 lines of code).
|
||||
- Made channel modes +c/+S deal with RGB color codes.
|
||||
- If no log { } block is present, then a warning will be printed and we will log
|
||||
by default to ircd.log (errors only).
|
||||
- If an invalid character is found in a nick then the whole nick is rejected now.
|
||||
- Changed numeric&text of 'is a Secure Connection' to 'is using a Secure Connection',
|
||||
client coders are encouraged to add support for this new numeric 671. Until then,
|
||||
in-window-/whois's will probably be broken.
|
||||
- A locops with can_override/can_gkline/can_gzline is now automatically converted
|
||||
to a globop, just like we do with can_globalroute/can_gkline. These privileges
|
||||
are GLOBAL and therefore are not meant to be granted to locops.
|
||||
- A warning is now sent to an oper if (s)he tries to use /(G)ZLINE on a host.
|
||||
(G)ZLINES should be placed on *@ipmasks because they are processed before any
|
||||
ident and host lookups.
|
||||
- Made (fast) badwords work better with word boundaries, in practice this means
|
||||
blocking of words with accents/umlauts/es-zett/etc now works properly.
|
||||
- Made it so halfops can now -h themselves and chanadmins can -a themselves.
|
||||
- Made spamfilter 'u' also check nickchanges.
|
||||
|
||||
==[ MAJOR BUGS FIXED ]==
|
||||
- Serious crashbug [this is the same fix that was fixed by the hotfix/3.2.2b]
|
||||
- TRE mem corruption- & crash-bugs (eg: in backreferences).
|
||||
|
||||
==[ MINOR BUGS FIXED ]==
|
||||
- Made kline/shun/zline/gzline without parameters report the correct stats(flag).
|
||||
- Made a few more errors send out to all opers, such as link::bind-ip problems.
|
||||
- A few missing operflags in /STATS O (and SVSO)
|
||||
- DCC Spamfilter was not always working correctly
|
||||
- OperOverriding to, for example, a +zi channel did not print the special join notice.
|
||||
- Servers behind ulines were not properly ulined, one effect that had was causing
|
||||
an odd view in /MAP if you had flat-map + hide ulines + a juped server in services.
|
||||
- Made SVSMODE -b/-e remove bans/excepts placed on IPs
|
||||
- The set::htm::incoming-rate config item was not working correctly
|
||||
- If a user was +R then remote server notices were accidently also filtered.
|
||||
- A locop setting MODE #CHAN +O caused a desynch
|
||||
- Resolver sometimes incorrectly aliased names, causing incorect TTLs etc.
|
||||
- Fixed SVSNOOP not removing ALL oper status properly.
|
||||
- 'shun' target was not working for spamfilter and ban version { }
|
||||
- Removing of shuns placed on IP's did not take effect immediately (had to reconnect).
|
||||
- Fixed a bug in mode skipping (eg: '+qk a b' if not +q) and error msgs.
|
||||
- Chanmode +f #t (per-user text limit) now no longer affects halfops.
|
||||
- Opers w/can_override can now +qa/-qa if they are not netadmins, also affected +L/+u.
|
||||
Be sure you upgrade all servers to 3.2.3 if using these new abilities, or else you
|
||||
will get desynch issues.
|
||||
- Fixed several /SAMODE bugs as well, regarding non-netadmins, being halfop'ed, etc.
|
||||
- /GZLINE [nick] was placing a *line on *@host instead of *@IP, fixed.
|
||||
- alias::format in combination with ::type 'command' caused a crash
|
||||
- zlib upgraded to 1.2.2, curl upgraded to 7.13.1, both fix various issues.
|
||||
- Win32 installer now also installs doc\technical\*.*
|
||||
- Desynch issues regarding +s/+p and +c/+S
|
||||
- /SAMODE causing a 'fishy timestamp' if a cmode with a digit parameter was used.
|
||||
|
||||
==[ REMOVED ]==
|
||||
- NAZIISH_CHBAN_HANDLING (did not work at all)
|
||||
- The 'oldcloak' cloaking module is now removed, since this old algorithm got broken
|
||||
8 months ago, nobody should be using it anymore.
|
||||
|
||||
==[ ADDITIONAL INFO ]==
|
||||
* See Changelog for more details
|
||||
This is the Unreal3.3* development tree.
|
||||
We are currently in pre-alpha stage, which means this code should not be
|
||||
used by anyone but the developers or other people liking a broken ircd ;)
|
||||
|
||||
Vendored
+1
-1
@@ -13,7 +13,7 @@
|
||||
--braces-on-struct-decl-line
|
||||
--paren-indentation0
|
||||
--case-brace-indentation0
|
||||
--line-length80
|
||||
--line-length110
|
||||
--declaration-indentation5
|
||||
-T size_t
|
||||
-T aClass
|
||||
|
||||
@@ -41,6 +41,10 @@ fi
|
||||
if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then
|
||||
ARG="$ARG--with-operoverride-verify "
|
||||
fi
|
||||
if [ "$DISABLEEXTBANSTACKING" = "1" ]; then
|
||||
ARG="$ARG--with-disable-extendedban-stacking ";
|
||||
fi
|
||||
ARG="$ARG--with-moduleswhich=$MODULESWHICH "
|
||||
fi
|
||||
if [ "$NOSPOOF" = "1" ] ; then
|
||||
ARG="$ARG--enable-nospoof "
|
||||
@@ -77,14 +81,14 @@ ARG="$ARG--with-spath=$SPATH "
|
||||
ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH "
|
||||
ARG="$ARG--with-sendq=$MAXSENDQLENGTH "
|
||||
ARG="$ARG--with-bufferpool=$BUFFERPOOL "
|
||||
ARG="$ARG--with-hostname=$DOMAINNAME "
|
||||
ARG="$ARG--with-permissions=$DEFPERM "
|
||||
ARG="$ARG--with-fd-setsize=$MAXCONNECTIONS "
|
||||
ARG="$ARG--enable-dynamic-linking "
|
||||
ARG="$ARG $EXTRAPARA "
|
||||
CONF="./configure $ARG"
|
||||
echo $CONF
|
||||
$CONF
|
||||
$CONF || exit 1
|
||||
cd "$UNREALCWD"
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if [ ! -f server.req.pem ]; then
|
||||
export OPENSSLPATH
|
||||
@@ -274,14 +278,75 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$DISABLEEXTBANSTACKING" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to disable extended ban stacking (~q:~c:#test, etc) support?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
DISABLEEXTBANSTACKING="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
DISABLEEXTBANSTACKING="0"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ]; do
|
||||
if [ "$MODULESWHICH" = "onlycommands" ]; then
|
||||
TEST="commands"
|
||||
elif [ "$MODULESWHICH" = "onlymodules" ]; then
|
||||
TEST="modules"
|
||||
else
|
||||
TEST="both"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you wish to compile commands.so, the m_*.so modules, or both?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ]; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
commands|commands.so|onlycommands|commandsonly)
|
||||
MODULESWHICH="onlycommands"
|
||||
;;
|
||||
modules|m_\*.so|onlymodules|modulesonly)
|
||||
MODULESWHICH="onlymodules"
|
||||
;;
|
||||
both|commandsandmodules|modulesandcommands)
|
||||
MODULESWHICH="commandsandmodules"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "Unrecognized response"
|
||||
TEST=""
|
||||
esac
|
||||
done
|
||||
}
|
||||
c=""
|
||||
n=""
|
||||
UNREALCWD="`pwd`"
|
||||
NOSPOOF=""
|
||||
DPATH="`pwd`"
|
||||
SPATH="`pwd`/src/ircd"
|
||||
SPATH="`pwd`/src"
|
||||
HUB="1"
|
||||
DOMAINNAME=`hostname`
|
||||
DEFPERM="0600"
|
||||
CRYPTOIRCD=""
|
||||
SSLDIR=""
|
||||
@@ -295,13 +360,15 @@ MAXCONNECTIONS="1024"
|
||||
INET6=""
|
||||
REMOTEINC=""
|
||||
CURLDIR=""
|
||||
PREFIXAQ=""
|
||||
PREFIXAQ="1"
|
||||
SHOWLISTMODES="1"
|
||||
TOPICNICKISNUH=""
|
||||
SHUNNOTICES=""
|
||||
NOOPEROVERRIDE=""
|
||||
DISABLEUSERMOD=""
|
||||
OPEROVERRIDEVERIFY=""
|
||||
DISABLEEXTBANSTACKING=""
|
||||
MODULESWHICH=""
|
||||
EXTRAPARA=""
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||
c="\c"
|
||||
@@ -336,6 +403,7 @@ while [ $# -ge 1 ] ; do
|
||||
. ./config.settings
|
||||
fi
|
||||
RUN_CONFIGURE
|
||||
cd "$UNREALCWD"
|
||||
exit 0
|
||||
elif [ $1 = "-clean" -o $1 = "-C" ] ; then
|
||||
CLEAN="1"
|
||||
@@ -411,7 +479,7 @@ done
|
||||
|
||||
TEST="$DPATH"
|
||||
echo ""
|
||||
echo "What directory are all the server configuration files in?"
|
||||
echo "Where do you want to install the server configuration files?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
@@ -422,7 +490,7 @@ fi
|
||||
|
||||
TEST="$SPATH"
|
||||
echo ""
|
||||
echo "What is the path to the ircd binary including the name of the binary?"
|
||||
echo "Where do you want to install the server binary?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
@@ -461,17 +529,6 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
TEST="$DOMAINNAME"
|
||||
echo ""
|
||||
echo "What is the hostname of the server running your IRCd?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
DOMAINNAME=$TEST
|
||||
else
|
||||
DOMAINNAME=`eval echo $cc` # modified
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$DEFPERM"
|
||||
@@ -527,14 +584,14 @@ while [ -z "$TEST" ] ; do
|
||||
done
|
||||
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
TEST=""
|
||||
TEST="$SSLDIR"
|
||||
echo ""
|
||||
echo "If you know the path to OpenSSL on your system, enter it here. If not"
|
||||
echo "leave this blank"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
SSLDIR=""
|
||||
SSLDIR="$TEST"
|
||||
else
|
||||
SSLDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
@@ -599,14 +656,14 @@ while [ -z "$TEST" ] ; do
|
||||
done
|
||||
|
||||
if [ "$ZIPLINKS" = "1" ] ; then
|
||||
TEST=""
|
||||
TEST="$ZIPLINKSDIR"
|
||||
echo ""
|
||||
echo "If you know the path to zlib on your system, enter it here. If not"
|
||||
echo "leave this blank"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
ZIPLINKSDIR=""
|
||||
ZIPLINKSDIR="$TEST"
|
||||
else
|
||||
ZIPLINKSDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
@@ -670,8 +727,8 @@ while [ -z "$TEST" ] ; do
|
||||
echo ""
|
||||
echo "Do you want to enable prefixes for chanadmin and chanowner?"
|
||||
echo "This will give +a the & prefix and ~ for +q (just like +o is @)"
|
||||
echo "Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient, PJIRC, etc.)"
|
||||
echo "with the notable exceptions of irssi, KVIrc and CGI:IRC."
|
||||
echo "Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient,"
|
||||
echo "PJIRC, irssi, CGI:IRC, etc.)"
|
||||
echo "This feature should be enabled/disabled network-wide."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
@@ -835,7 +892,6 @@ BUFFERPOOL="$BUFFERPOOL"
|
||||
MAXCONNECTIONS="$MAXCONNECTIONS"
|
||||
NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
|
||||
HUB="$HUB"
|
||||
DOMAINNAME="$DOMAINNAME"
|
||||
DEFPERM="$DEFPERM"
|
||||
CRYPTOIRCD="$CRYPTOIRCD"
|
||||
SSLDIR="$SSLDIR"
|
||||
@@ -849,10 +905,13 @@ SHUNNOTICES="$SHUNNOTICES"
|
||||
NOOPEROVERRIDE="$NOOPEROVERRIDE"
|
||||
DISABLEUSERMOD="$DISABLEUSERMOD"
|
||||
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
|
||||
DISABLEEXTBANSTACKING="$DISABLEEXTBANSTACKING"
|
||||
MODULESWHICH="$MODULESWHICH"
|
||||
EXTRAPARA="$EXTRAPARA"
|
||||
ADVANCED="$ADVANCED"
|
||||
__EOF__
|
||||
RUN_CONFIGURE
|
||||
cd "$UNREALCWD"
|
||||
cat << __EOF__
|
||||
|
||||
_______________________________________________________________________
|
||||
|
||||
+28
-12
@@ -20,6 +20,7 @@
|
||||
#*/
|
||||
|
||||
CC=@CC@
|
||||
CXX=@CXX@
|
||||
INCLUDEDIR=../include
|
||||
NETWORKSDIR=
|
||||
FROMDOS=/home/cmunk/bin/4dos
|
||||
@@ -38,7 +39,7 @@ IRCDLIBS=@IRCDLIBS@ @TRELIBS@ @CARESLIBS@
|
||||
CRYPTOLIB=@CRYPTOLIB@
|
||||
OPENSSLINCLUDES=
|
||||
|
||||
XCFLAGS=-I@TREINCDIR@ -I@CARESINCDIR@ @CFLAGS@
|
||||
XCFLAGS=-I@TREINCDIR@ -I@CARESINCDIR@ @CARESLIBDIR@ @CFLAGS@
|
||||
#
|
||||
# use the following on MIPS:
|
||||
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
|
||||
@@ -131,11 +132,22 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
|
||||
'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
|
||||
'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
|
||||
'CRYPTOLIB=${CRYPTOLIB}' \
|
||||
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' 'URL=${URL}'
|
||||
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \
|
||||
'URL=${URL}' 'CXX=${CXX}'
|
||||
|
||||
INSTALL_CONFS = badwords.channel.conf badwords.message.conf \
|
||||
badwords.quit.conf dccallow.conf help.conf \
|
||||
spamfilters.conf.sample LICENSE Donation
|
||||
|
||||
INSTALL_DOCS = doc/Authors doc/example.conf doc/coding-guidelines \
|
||||
doc/tao.of.irc doc/unreal32docs.html
|
||||
|
||||
custommodule:
|
||||
cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
||||
|
||||
custommodulecpp:
|
||||
cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodulecpp
|
||||
|
||||
server:
|
||||
build:
|
||||
-@if [ ! -f include/setup.h ] ; then \
|
||||
@@ -202,22 +214,26 @@ depend:
|
||||
|
||||
install: all
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 src/ircd $(BINDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0600 networks/*.network $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0700 networks/makenet $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0600 networks/networks.ndx $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0700 -d $(BINDIR)
|
||||
$(INSTALL) -b -m 0700 src/ircd $(BINDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0600 doc/Authors doc/example.conf doc/coding-guidelines doc/tao.of.irc doc/unreal32docs.html $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0600 $(INSTALL_DOCS) $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/aliases
|
||||
$(INSTALL) -m 0600 aliases/*.conf $(IRCDDIR)/aliases
|
||||
$(TOUCH) $(IRCDDIR)/unrealircd.conf
|
||||
chmod 0600 $(IRCDDIR)/unrealircd.conf
|
||||
$(INSTALL) -m 0600 spamfilter.conf dccallow.conf $(IRCDDIR)
|
||||
$(INSTALL) -m 0600 badwords.*.conf help.conf LICENSE Donation $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 unreal $(IRCDDIR)
|
||||
$(INSTALL) -b -m 0600 $(INSTALL_CONFS) $(IRCDDIR)
|
||||
$(INSTALL) -b -m 0700 unreal $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/modules
|
||||
$(INSTALL) -m 0700 src/modules/*.so $(IRCDDIR)/modules
|
||||
$(INSTALL) -b -m 0700 src/modules/*.so $(IRCDDIR)/modules
|
||||
-@if [ ! -f "$(IRCDDIR)/curl-ca-bundle.crt" ] ; then \
|
||||
$(INSTALL) -b -m 0700 curl-ca-bundle.crt $(IRCDDIR) ; \
|
||||
fi
|
||||
-@if [ -f server.key.pem ] ; then \
|
||||
if [ ! -f "$(IRCDDIR)/server.key.pem" ] ; then \
|
||||
$(INSTALL) -b -m 0600 server.*.pem $(IRCDDIR) ; \
|
||||
fi ; \
|
||||
fi
|
||||
|
||||
pem: src/ssl.cnf
|
||||
@echo "Generating certificate request .. "
|
||||
|
||||
+29
-33
@@ -1,33 +1,32 @@
|
||||
===============================================
|
||||
= UnrealIRCd v3.2.3 =
|
||||
= UnrealIRCd v3.3* =
|
||||
===============================================
|
||||
|
||||
Was brought to you by:
|
||||
|
||||
The core team:
|
||||
==============
|
||||
* Stskeeps <stskeeps@tspre.org>
|
||||
* codemastr <codemastr@unrealircd.com>
|
||||
* Syzop <syzop@unrealircd.org>
|
||||
* Luke <luke@unrealircd.com>
|
||||
The head coders
|
||||
================
|
||||
* Stskeeps <stskeeps@tspre.org>
|
||||
* Syzop <syzop@unrealircd.com>
|
||||
* codemastr <codemastr@unrealircd.com>
|
||||
|
||||
Contributors
|
||||
============
|
||||
* McSkaf <mcskaf@unrealircd.org>
|
||||
* Zogg <zogg@unrealircd.org>
|
||||
* NiQuiL <niquil@unrealircd.org>
|
||||
* assyrian <assyrian@unrealircd.org>
|
||||
* nighthawk <nighthawk@unrealircd.com>
|
||||
* DrBin <drbin@unrealircd.com>
|
||||
* llthangel <llthangel@unrealircd.org>
|
||||
* Griever <griever@unrealircd.com>
|
||||
|
||||
Documentation:
|
||||
==============
|
||||
* CKnight^ <cknight@unrealircd.com>
|
||||
The coders
|
||||
===========
|
||||
* DarkElf <darkelf@unrealircd.com>
|
||||
* Trocotronic <trocotronic@unrealircd.com>
|
||||
* aquanight <aquanight@unrealircd.com>
|
||||
|
||||
Additional credits
|
||||
===================
|
||||
Credit also goes to past UnrealIRCd coders, including: McSkaf, Zogg,
|
||||
NiQuiL, assyrian, nighthawk, DrBin, llthangel and Griever.
|
||||
Credit also goes to everyone else who contributed, and those who coded
|
||||
or contributed to UnrealIRCd's ancestors.
|
||||
|
||||
WEBSITE
|
||||
========
|
||||
http://www.unrealircd.com/
|
||||
|
||||
Precenses on the Internet:
|
||||
* http://www.unrealircd.com
|
||||
|
||||
CVS
|
||||
====
|
||||
To get anonymous access: (read only)
|
||||
@@ -36,19 +35,17 @@
|
||||
press enter when asked for password
|
||||
Then, choose the appropiate branch you want:
|
||||
|
||||
latest 3.2 release ("stable"):
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r stable -d Unreal-stable unreal"
|
||||
|
||||
latest 3.2 fixes / development ("unreal3_2_fixes"):
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r unreal3_2_fixes -d Unreal-stable unreal"
|
||||
latest 3.3 release (unstable/development):
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r devel -d Unreal-stable unreal"
|
||||
|
||||
To get support
|
||||
================
|
||||
Before asking others for help you MUST:
|
||||
* read the docs (doc/unreal32docs.html or online: www.unrealircd.com/unreal32docs.html)
|
||||
* check the FAQ (www.vulnscan.org/UnrealIrcd/faq/)
|
||||
* check the FAQ (www.vulnscan.org/UnrealIRCd/faq/)
|
||||
|
||||
Means of support:
|
||||
* Forum: http://forums.unrealircd.com/
|
||||
* IRC: /server irc.ircsystems.net 6667 - /join #unreal-support
|
||||
[Note: Follow the bots instructions in order to get voice.
|
||||
Please be patient after asking questions, we may do other stuff
|
||||
@@ -56,15 +53,14 @@
|
||||
READ THE TOPIC before you ask anything. We do this on a free
|
||||
base so we are volunteeringly helping you, but we are humans
|
||||
like you, and we got to have peace at times as well.]
|
||||
* Forum: http://forums.unrealircd.com/
|
||||
* Mailing list: unreal-users@lists.sourceforge.net
|
||||
(http://lists.sourceforge.net/lists/listinfo/unreal-users also
|
||||
has links to the archive).
|
||||
|
||||
UnrealIRCd Bugtracker (Where to report bugs or make suggestions)
|
||||
==================================================================
|
||||
=================================================================
|
||||
http://bugs.unrealircd.org
|
||||
|
||||
Want to discuss, chat, etc?
|
||||
=============================
|
||||
* IRC: /server irc.ircsystems.net 6667 - /join #UnrealIRCd
|
||||
* IRC: /server irc.unrealircd.org 6667 - /join #UnrealIRCd
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
|
||||
@@ -21,8 +21,8 @@ alias helpserv { type services; };
|
||||
alias hs { target helpserv; type services; };
|
||||
alias hostserv { type services; };
|
||||
alias ho { target hostserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias operserv { type services; };
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias rootserv { type services; };
|
||||
alias rs { target rootserv; type services; };
|
||||
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
|
||||
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
|
||||
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
|
||||
Vendored
+39
-6
@@ -52,14 +52,29 @@ AC_DEFUN(CHECK_LIBCURL,
|
||||
[AC_HELP_STRING([--enable-libcurl=DIR],[enable libcurl (remote include) support])],
|
||||
[
|
||||
CURLCFLAG=`$enableval/bin/curl-config --cflags`
|
||||
CFLAGS="$CFLAGS $CURLCFLAG -DUSE_LIBCURL"
|
||||
CURLLIBS=`$enableval/bin/curl-config --libs`
|
||||
|
||||
dnl curl-7.11.0 and up will include the ares info, older versions do not
|
||||
if test "x`echo $CURLLIBS |grep .*ares.*`" = x ; then
|
||||
CURLLIBS="$CURLLIBS -lares"
|
||||
dnl Ok this is ugly, basically we need to strip the version of c-ares that curl uses
|
||||
dnl because we want to use our own version (which is hopefully fully binary
|
||||
dnl compatible with the curl one as well).
|
||||
dnl Therefore we need to strip the cares libs in a weird way...
|
||||
dnl If anyone can come up with something better and still portable (no awk!?)
|
||||
dnl then let us know.
|
||||
if test "x`echo $CURLLIBS |grep ares`" != x ; then
|
||||
dnl Attempt one: Linux sed
|
||||
XCURLLIBS="`echo "$CURLLIBS"|sed -r 's/(@<:@^ @:>@+ @<:@^ @:>@+ )(@<:@^ @:>@+ @<:@^ @:>@+ )(.+)/\1\3/g' 2>/dev/null`"
|
||||
if test x"$XCURLLIBS" = x; then
|
||||
dnl Attempt two: FreeBSD (and others?) sed
|
||||
XCURLLIBS="`echo "$CURLLIBS"|sed -E 's/(@<:@^ @:>@+ @<:@^ @:>@+ )(@<:@^ @:>@+ @<:@^ @:>@+ )(.+)/\1\3/g' 2>/dev/null`"
|
||||
if test x"$XCURLLIBS" = x; then
|
||||
AC_MSG_ERROR([sed appears to be broken. It is needed for a remote includes compile hack.])
|
||||
fi
|
||||
fi
|
||||
CURLLIBS="$XCURLLIBS"
|
||||
fi
|
||||
|
||||
IRCDLIBS="$IRCDLIBS $CURLLIBS"
|
||||
CFLAGS="$CFLAGS $CURLCFLAG -DUSE_LIBCURL"
|
||||
URL="url.o"
|
||||
AC_SUBST(URL)
|
||||
])
|
||||
@@ -94,7 +109,16 @@ AC_MSG_CHECKING(for openssl)
|
||||
done
|
||||
if test x_$found_ssl != x_yes; then
|
||||
AC_MSG_RESULT(not found)
|
||||
AC_WARN(disabling ssl support)
|
||||
echo ""
|
||||
echo "Apparently you do not have both the openssl binary and openssl development libraries installed."
|
||||
echo "You have two options:"
|
||||
echo "a) Install the needed binaries and libraries"
|
||||
echo " and run ./Config"
|
||||
echo "OR"
|
||||
echo "b) If you don't need SSL..."
|
||||
echo " Run ./Config and say 'no' when asked about SSL"
|
||||
echo ""
|
||||
exit 1
|
||||
else
|
||||
CRYPTOLIB="-lssl -lcrypto";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
@@ -127,7 +151,16 @@ AC_MSG_CHECKING(for zlib)
|
||||
done
|
||||
if test x_$found_zlib != x_yes; then
|
||||
AC_MSG_RESULT(not found)
|
||||
AC_WARN(disabling ziplink support)
|
||||
echo ""
|
||||
echo "Apparently you do not have the zlib development library installed."
|
||||
echo "You have two options:"
|
||||
echo "a) Install the zlib development library"
|
||||
echo " and run ./Config"
|
||||
echo "OR"
|
||||
echo "b) If you don't need compressed links..."
|
||||
echo " Run ./Config and say 'no' when asked about ziplinks support"
|
||||
echo ""
|
||||
exit 1
|
||||
else
|
||||
IRCDLIBS="$IRCDLIBS -lz";
|
||||
if test "$zlibdir" != "/usr" ; then
|
||||
|
||||
+46
-31
@@ -23,17 +23,17 @@ fi
|
||||
dnl (the gcc flag detection trick is taken from xemacs/Vin Shelton)
|
||||
|
||||
dnl UnrealIRCd might not be strict-aliasing safe at this time
|
||||
case "`gcc -v --help 2>&1`" in
|
||||
case "`$CC -v --help 2>&1`" in
|
||||
*-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
|
||||
esac
|
||||
|
||||
dnl Pointer signedness warnings are really a pain and 99.9% of the time
|
||||
dnl they are of absolutely no use whatsoever. IMO the person who decided
|
||||
dnl to enable this without -Wall should be shot on sight.
|
||||
case "`gcc -v --help 2>&1`" in
|
||||
case "`$CC -v --help 2>&1`" in
|
||||
*-Wpointer-sign* ) CFLAGS="$CFLAGS -Wno-pointer-sign" ;;
|
||||
esac
|
||||
|
||||
AC_PROG_CXX
|
||||
AC_PATH_PROG(RM,rm)
|
||||
AC_PATH_PROG(CP,cp)
|
||||
AC_PATH_PROG(TOUCH,touch)
|
||||
@@ -54,13 +54,13 @@ AC_SUBST(IRCDLIBS)
|
||||
AC_SUBST(MKPASSWDLIBS)
|
||||
|
||||
dnl module checking based on Hyb7's module checking code
|
||||
AC_DEFUN(AC_ENABLE_DYN,
|
||||
AC_DEFUN([AC_ENABLE_DYN],
|
||||
[
|
||||
AC_CHECK_FUNC(dlopen,, AC_CHECK_LIB(dl, dlopen,IRCDLIBS="$IRCDLIBS -ldl",
|
||||
AC_CHECK_FUNC(dlopen,, [AC_CHECK_LIB(dl, dlopen,IRCDLIBS="$IRCDLIBS -ldl",
|
||||
[
|
||||
AC_MSG_WARN(Dynamic linking is not enabled because dlopen was not found)
|
||||
AC_DEFINE(STATIC_LINKING)
|
||||
]))
|
||||
])])
|
||||
|
||||
hold_cflags=$CFLAGS
|
||||
CFLAGS="$CFLAGS -export-dynamic"
|
||||
@@ -110,7 +110,7 @@ fi
|
||||
MODULEFLAGS=$ac_cv_pic
|
||||
AC_DEFINE(DYNAMIC_LINKING)
|
||||
])
|
||||
AC_DEFUN(AC_ENABLE_INET6,[
|
||||
AC_DEFUN([AC_ENABLE_INET6],[
|
||||
AC_CACHE_CHECK(if your system has IPv6 support, ac_cv_ip6, [
|
||||
save_libs="$LIBS"
|
||||
LIBS="$LIBS $SOCKLIB"
|
||||
@@ -367,8 +367,6 @@ AC_ARG_WITH(sendq, [AC_HELP_STRING([--with-sendq=maxsendq],[Specify the max send
|
||||
AC_DEFINE_UNQUOTED(MAXSENDQLENGTH,$withval),AC_DEFINE(MAXSENDQLENGTH,3000000))
|
||||
AC_ARG_WITH(bufferpool, [AC_HELP_STRING([--with-bufferpool=size],[Specify the size of the buffer pool])],
|
||||
AC_DEFINE_UNQUOTED(BUFFERPOOL,[($withval * MAXSENDQLENGTH)]),AC_DEFINE(BUFFERPOOL,[(18 * MAXSENDQLENGTH)]))
|
||||
AC_ARG_WITH(hostname, [AC_HELP_STRING([--with-hostname=host],[Specify the local hostname of the server])], AC_DEFINE_UNQUOTED(DOMAINNAME,"$withval"),AC_DEFINE_UNQUOTED(DOMAINNAME,"`hostname`"))
|
||||
AC_DEFINE_UNQUOTED(MYOSNAME,"`uname -a`")
|
||||
AC_ARG_WITH(permissions, [AC_HELP_STRING([--with-permissions=permissions],[Specify the default permissions for
|
||||
configuration files])], AC_DEFINE_UNQUOTED(DEFAULT_PERMISSIONS,$withval), AC_DEFINE(DEFAULT_PERMISSIONS, 0600))
|
||||
AC_ARG_WITH(dpath, [AC_HELP_STRING([--with-dpath=path],[Specify the path where configuration files are stored])],
|
||||
@@ -377,7 +375,7 @@ AC_ARG_WITH(fd-setsize, [AC_HELP_STRING([--with-fd-setsize=size],[Specify the ma
|
||||
ac_fd=$withval, ac_fd=1024)
|
||||
AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $ac_fd)
|
||||
AC_ARG_WITH(spath, [AC_HELP_STRING([--with-spath],[Specify the location of the executable])],
|
||||
AC_DEFINE_UNQUOTED(SPATH,"$withval") BINDIR="$withval",AC_DEFINE_UNQUOTED(SPATH,"`pwd`/src/ircd") BINDIR="`pwd`/src/ircd")
|
||||
AC_DEFINE_UNQUOTED(SPATH,"$withval/ircd") BINDIR="$withval",AC_DEFINE_UNQUOTED(SPATH,"`pwd`/src/ircd") BINDIR="`pwd`/src/ircd")
|
||||
AC_ARG_ENABLE(nospoof, [AC_HELP_STRING([--enable-nospoof],[Enable spoofing protection])], AC_DEFINE(NOSPOOF))
|
||||
AC_ARG_ENABLE(prefixaq, [AC_HELP_STRING([--enable-prefixaq],[Enable chanadmin and chanowner prefixes])], AC_DEFINE(PREFIX_AQ))
|
||||
AC_ARG_ENABLE(hub, [AC_HELP_STRING([--enable-hub],[Compile as a hub server])], AC_DEFINE(HUB))
|
||||
@@ -393,11 +391,26 @@ AC_ARG_WITH(disableusermod, [AC_HELP_STRING([--with-disableusermod], [Disable /s
|
||||
AC_DEFINE(DISABLE_USERMOD))
|
||||
AC_ARG_WITH(operoverride-verify, [AC_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])],
|
||||
AC_DEFINE(OPEROVERRIDE_VERIFY))
|
||||
AC_ARG_WITH(disable-extendedban-stacking, [AC_HELP_STRING([--with-disable-extendedban-stacking], [Disable extended ban stacking])],
|
||||
AC_DEFINE(DISABLE_STACKED_EXTBANS))
|
||||
MODULES_WHICH=commandsandmodules
|
||||
AC_MSG_CHECKING(for how much module building work we need to do)
|
||||
AC_ARG_WITH(moduleswhich,
|
||||
[ --with-moduleswhich=onlycommands|onlymodules|commandsandmodules What modules to build],
|
||||
[ case "$withval" in
|
||||
yes|no)
|
||||
;;
|
||||
* )
|
||||
MODULES_WHICH="$withval"
|
||||
;;
|
||||
esac])
|
||||
AC_SUBST(MODULES_WHICH)
|
||||
AC_MSG_RESULT($MODULES_WHICH)
|
||||
CHECK_SSL
|
||||
CHECK_ZLIB
|
||||
CHECK_LIBCURL
|
||||
AC_ARG_ENABLE(dynamic-linking, [AC_HELP_STRING([--enable-dynamic-linking],[Make the IRCd dynamically link shared objects rather than statically])], AC_ENABLE_DYN, AC_DEFINE(STATIC_LINKING))
|
||||
AC_ARG_ENABLE(inet6, [AC_HELP_STRING([--enable-inet6],[Make the IRCd support IPv6])], AC_ENABLE_INET6)
|
||||
AC_ARG_ENABLE(dynamic-linking, [AC_HELP_STRING([--enable-dynamic-linking],[Make the IRCd dynamically link shared objects rather than statically])], [AC_ENABLE_DYN], [AC_DEFINE(STATIC_LINKING)])
|
||||
AC_ARG_ENABLE(inet6, [AC_HELP_STRING([--enable-inet6],[Make the IRCd support IPv6])], [AC_ENABLE_INET6])
|
||||
AC_SUBST(IRCDDIR)
|
||||
AC_SUBST(BINDIR)
|
||||
AC_MSG_CHECKING(if FD_SETSIZE is large enough to allow $ac_fd file descriptors)
|
||||
@@ -425,41 +438,41 @@ IRCDLIBS="$IRCDLIBS -lresolv "
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl REMEMBER TO CHANGE WITH A NEW TRE RELEASE!
|
||||
tre_version="0.7.2"
|
||||
AC_MSG_RESULT(extracting TRE regex library)
|
||||
dnl REMEMBER TO CHANGE WITH A NEW PCRE RELEASE!
|
||||
tre_version="7.2"
|
||||
AC_MSG_RESULT(extracting PCRE regex library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
dnl remove old tre directory to force a recompile...
|
||||
rm -rf tre-$tre_version
|
||||
rm -rf pcre-$tre_version
|
||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
||||
tar xfz tre.tar.gz
|
||||
tar xfz pcre.tar.gz
|
||||
else
|
||||
cp tre.tar.gz tre.tar.gz.bak
|
||||
gunzip -f tre.tar.gz
|
||||
cp tre.tar.gz.bak tre.tar.gz
|
||||
tar xf tre.tar
|
||||
cp pcre.tar.gz pcre.tar.gz.bak
|
||||
gunzip -f pcre.tar.gz
|
||||
cp pcre.tar.gz.bak pcre.tar.gz
|
||||
tar xf pcre.tar
|
||||
fi
|
||||
AC_MSG_RESULT(configuring TRE regex library)
|
||||
cd tre-$tre_version
|
||||
./configure --disable-agrep --disable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp || exit 1
|
||||
AC_MSG_RESULT(compiling TRE regex library)
|
||||
AC_MSG_RESULT(configuring PCRE regex library)
|
||||
cd pcre-$tre_version
|
||||
./configure --disable-shared --disable-system-abi --disable-utf8 --prefix=$cur_dir/extras/regexp || exit 1
|
||||
AC_MSG_RESULT(compiling PCRE regex library)
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing TRE regex library)
|
||||
AC_MSG_RESULT(installing PCRE regex library)
|
||||
$ac_cv_prog_MAKER install || exit 1
|
||||
TREINCDIR="$cur_dir/extras/regexp/include"
|
||||
AC_SUBST(TREINCDIR)
|
||||
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
|
||||
TRELIBS="-L../extras/regexp/lib -ltre"
|
||||
TRELIBS="-L../extras/regexp/lib -lpcreposix -lpcre"
|
||||
else
|
||||
TRELIBS=`$ac_cv_path_PKGCONFIG --libs tre.pc`
|
||||
TRELIBS="`$ac_cv_path_PKGCONFIG --libs libpcre.pc` -lpcreposix -lpcre"
|
||||
fi
|
||||
AC_SUBST(TRELIBS)
|
||||
cd $cur_dir
|
||||
|
||||
|
||||
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
|
||||
cares_version="1.3.0"
|
||||
cares_version="1.4.0"
|
||||
AC_MSG_RESULT(extracting c-ares resolver library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
@@ -482,11 +495,13 @@ AC_MSG_RESULT(installing c-ares resolver library)
|
||||
$ac_cv_prog_MAKER install || exit 1
|
||||
CARESINCDIR="$cur_dir/extras/c-ares/include"
|
||||
AC_SUBST(CARESINCDIR)
|
||||
CARESLIBS="-L../extras/c-ares/lib -lcares"
|
||||
CARESLIBDIR="-L../extras/c-ares/lib"
|
||||
AC_SUBST(CARESLIBDIR)
|
||||
CARESLIBS="-lcares"
|
||||
AC_SUBST(CARESLIBS)
|
||||
cd $cur_dir
|
||||
|
||||
|
||||
AC_OUTPUT(Makefile src/modules/Makefile unreal ircdcron/ircdchk)
|
||||
AC_OUTPUT(Makefile src/modules/Makefile src/modules/chanmodes/Makefile unreal ircdcron/ircdchk)
|
||||
chmod 0700 unreal
|
||||
chmod 0700 ircdcron/ircdchk
|
||||
|
||||
+4453
File diff suppressed because it is too large
Load Diff
+57
-1
@@ -2,7 +2,12 @@
|
||||
Some minor rules about patches & modifications to UnrealIRCd
|
||||
|
||||
1. When making a change, always add a small description in Changes, in the
|
||||
BOTTOM
|
||||
BOTTOM. Be sure to mention the bugid# (or muliple id's) if you are fixing
|
||||
a bug from a bugtracker, and be sure to credit the reporter. Use:
|
||||
'Fixed blahblahblah, reported by Blah (#0001234).'
|
||||
Or, for example, for features:
|
||||
'Added support for blahbalbvdshd, suggested by Blah (#0001235).'
|
||||
Or something similar ;)
|
||||
|
||||
2. If new files are made, it must contain proper copyright headers,
|
||||
and a $Id$ somewhere.
|
||||
@@ -39,3 +44,54 @@ Some minor rules about patches & modifications to UnrealIRCd
|
||||
8. We do NOT rip people off. If we use other people's code, it MUST be
|
||||
properly credited.
|
||||
|
||||
9. We generally use tabsize 4 and 8. In any case, use tabs and NOT spaces.
|
||||
Some code is old and horrible and has a mix of tabs and spaces used for
|
||||
spacing, that's something we do not want to have ;)
|
||||
|
||||
10. Be careful about overflows. As you know a line from a user can never be longer
|
||||
than 511 (510?) characters, sometimes you can use this knowledge to your
|
||||
advantage. Whenever it's not safe or when you don't know what input size you
|
||||
can expect, use strlcpy instead of strcpy. Do not ever use strncpy, this is
|
||||
older, slower, and does not add proper zero termination.
|
||||
For the same reason, use snprintf if really needed. Note though, that using
|
||||
ircsprintf with a bigger buffer (eg: 1024 bytes) is MUCH faster, so preferably
|
||||
use that instead of snprintf. The same can be true for strcpy vs strlcpy in
|
||||
some circumstances as well.
|
||||
|
||||
11. Speed. When optimizing or writing code, keep in mind that readability and
|
||||
stability comes first, and after that comes speed. So we'd rather prefer some
|
||||
readable code (even if difficult) over some odd highly optimized routine which
|
||||
nobody understands, is difficult to extend, and might have several bugs.
|
||||
As mentioned earlier: use ircsprintf, not sprintf (this is because ircsprintf
|
||||
is optimized for simple strings like the ones we use).
|
||||
Prefer ircsprintf with a bigger buffer over the use of snprintf, since
|
||||
ircsprintf is much faster.
|
||||
|
||||
12. Initialize your structs and use the proper memory calls.
|
||||
In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free).
|
||||
MyMalloc usually maps to malloc, and MyMallocEx is a malloc plus filling
|
||||
the memory area (eg: the struct) with zero's (a la calloc).
|
||||
Use of MyMallocEx is suggested. In general you should not be using MyMalloc.
|
||||
"But MyMalloc is faster!" you might say. This is true, but using MyMallocEx
|
||||
has very little speed impact and enourmous benefits: people tend to forget
|
||||
to set certain fields in the struct to NULL, or much more common: when
|
||||
someone later on (eg: 1 year later) adds a field to a struct, there could
|
||||
be several places he/she needs to update to make sure x->something is NULL
|
||||
after allocating a new struct. Bad idea.
|
||||
Little speed impact, huge stability benefits, easy decision ;).
|
||||
|
||||
13. Comment your code! This should speak for itself...
|
||||
Put comments wherever you think they are needed, to aid any further coders
|
||||
with reading your code.. and, in fact, it will aid yourself as well if you
|
||||
would look back at your code 2 years later.
|
||||
If there's some obscure pitfall, do mention it! Don't just "hope" a next
|
||||
author will see it like you did.
|
||||
|
||||
14. Use enums whenever possible, rather than #define constants. Besides making
|
||||
things more clean, it also aids debugging.
|
||||
|
||||
15. Whenever you add a new directive or setting, be sure to add documentation
|
||||
for it in unreal32docs, and for new commands in help.conf as well.
|
||||
|
||||
16. Whenever you add a new set:: item, be sure to add it to /stats S
|
||||
|
||||
|
||||
+53
-97
@@ -2,30 +2,43 @@
|
||||
Disabling NOSPOOF at windows (w9x, nt, w2k, xp) is NOT recommended since this
|
||||
WILL allow users to use "spoofed hosts" (like the IP of someone you trust).
|
||||
|
||||
If you got problems with NOSPOOF fix your client (bot?) instead (you should
|
||||
PONG back to the initial PING at connect).
|
||||
If you have problems with NOSPOOF, fix your client (bot?) instead (you should PONG
|
||||
back to the initial PING at connect).
|
||||
|
||||
==[ GENERAL GUIDELINES ]==
|
||||
First of all you need Microsoft Visual C++, compiling with cygwin
|
||||
is not supported.
|
||||
First of all you need Microsoft Visual C++ (see below), compiling with
|
||||
cygwin is not supported (nor is there any good reason to do so).
|
||||
|
||||
VC++ 7.x (.NET) is highly recommended. VC 6 might work but it requires
|
||||
the Platform SDK (PSDK), it also has quite some bugs (there are 5 servicepacks!).
|
||||
Basically VC7 is just much easier and known to work, therefore we'll assume
|
||||
in this text that you are using it.
|
||||
Compatible compilers:
|
||||
cygwin NOT supported. Will not work. Should be no reason to use this anyway.
|
||||
msvc 6.x Microsoft Visual Studio 6 does not work, this compiler is too old.
|
||||
msvc 7.x Microsoft Visual Studio 7.x (.NET) will work just fine
|
||||
msvc 8.x Microsoft Visual Studio 8.x (.NET 2005), including the free kit,
|
||||
should work fine (since Unreal3.2.5).
|
||||
|
||||
If you don't have the paid version of Microsoft Visual Studio 7.x, then you can
|
||||
use the FREE development kit and PSDK as explained below:
|
||||
1. Download the MS Visual Studio Development kit at:
|
||||
http://msdn.microsoft.com/visualc/vctoolkit2003/
|
||||
2. Install the Platform Software Development Kit (PSDK) from:
|
||||
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
||||
3. NOTE: Whenever you need to compile something we say 'Start the Visual Studio
|
||||
.NET Command Prompt' below, but you - a person using the free version - will
|
||||
actually have to start the Platform SDK Prompt instead (check out the
|
||||
Start Menu).
|
||||
|
||||
== Simple compile (no SSL/ZIP/Remote includes) ==
|
||||
1. Start the Visual Studio .NET Command Prompt
|
||||
2. Go to your UnrealIrcd dir (like: cd \dev\unreal3.2) and then compile with:
|
||||
2. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2) and then compile with:
|
||||
nmake -f makefile.win32
|
||||
This will generate a wircd.exe and unreal.exe
|
||||
3. Copy the src\win32\tre.dll to your UnrealIrcd main dir.
|
||||
3. Copy the src\win32\tre.dll to your UnrealIRCd main dir.
|
||||
4. Done!
|
||||
|
||||
== Compiling modules ==
|
||||
1. Put your module (the .c file) in src\modules (eg: c:\dev\unreal3.2\src\modules).
|
||||
2. Start the Visual Studio .NET Command Prompt
|
||||
3. Go to your UnrealIrcd dir (like: cd \dev\unreal3.2).
|
||||
3. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2).
|
||||
4. Compile the module with:
|
||||
nmake -f makefile.win32 custommodule MODULEFILE=<name>
|
||||
<name> is the name of the module WITHOUT the .c suffix, so if your
|
||||
@@ -38,12 +51,14 @@ but for example 3.2.1 source) then the module should work on all these
|
||||
versions (binary compatible) and you could for example put them on
|
||||
your website so users can download them.
|
||||
Such a module will work on both SSL and non-SSL, there should be no need
|
||||
for separate versions... unless, of course, you use SSL-specific code in your mod.
|
||||
for separate versions... unless, of course, you use SSL-specific code in your
|
||||
mod.
|
||||
DO NOT download a CVS version & compile your mod and then start
|
||||
distributing the .dll for use at another (non-CVS) version!!
|
||||
Every time we change a struct (and in some other cases) it makes the
|
||||
binary/module binary incompatible which practically means your module
|
||||
will CRASH or cause memory corruption and other subtle errors.
|
||||
binary/module binary incompatible which practically means that your module
|
||||
might seem to work fine at first (or not..) but will CRASH or cause memory
|
||||
corruption and other subtle errors.
|
||||
|
||||
== COMPILING WITH ZIP LINKS / SSL / REMOTE INCLUDES SUPPORT ==
|
||||
First of all, DO NOT use any precompiled libs from the official
|
||||
@@ -67,87 +82,28 @@ nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" ZLIB_LIB_DIR="
|
||||
USE_SSL=1 OPENSSL_INC_DIR="c:\dev\openssl\include" OPENSSL_LIB_DIR="c:\dev\openssl\lib" USE_REMOTEINC=1
|
||||
LIBCURL_INC_DIR="c:\dev\curl\include" LIBCURL_LIB_DIR="c:\dev\curl\lib"
|
||||
|
||||
== SYMBOL FILES ==
|
||||
If you get something like this:
|
||||
|
||||
Creating library L_COMMANDS.lib and object L_COMMANDS.exp
|
||||
M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global re
|
||||
ferenced in function _m_oper
|
||||
|
||||
(note: the exact name of the symbol will vary)
|
||||
|
||||
Then you will have to rebuild the wircd.def symbol file. You do this by
|
||||
downloading http://www.vulnscan.org/tmp/dlltool.exe and putting the file somewhere
|
||||
in your path (eg: c:\winnt\system32).
|
||||
Then, to compile you do this:
|
||||
nmake -f makefile.win32 [your other options here]
|
||||
nmake -f makefile.win32 SYMBOLFILE
|
||||
nmake -f makefile.win32 [your other options here]
|
||||
|
||||
So basically you just run 'nmake -f makefile.win32 SYMBOLFILE' and then restart
|
||||
compiling again.
|
||||
|
||||
== COMPILING ZLIB/SSL/CURL YOURSELF ==
|
||||
This is quite some work.. With the precomiled method shown above it
|
||||
just takes like 5-10 minutes to have a zlib+ssl+curl Unreal version.
|
||||
But if you want to compile each of these libs manually then it will
|
||||
probably take an hour or so.
|
||||
|
||||
** THE INFORMATION BELOW IS OUTDATED, WE GOT RID OF MDd, USE MD INSTEAD
|
||||
AND DONT COMPILE OPENSSL W/DEBUG ***
|
||||
|
||||
== ZIP LINKS (zlib) ==
|
||||
[NOTE: precompiled dlls should NOT be used because they will cause a crash
|
||||
(this is due to different compile parameters / api call systems]
|
||||
To compile with ziplinks support you need to do the following:
|
||||
Download the SOURCE from http://www.winimage.com/zLibDll/
|
||||
(at the time of writing, http://www.winimage.com/zLibDll/zlib121.zip)
|
||||
and extract it to somewhere, for example c:\dev\zlib-1.2.1
|
||||
|
||||
Then, edit win32\makefile.msc:
|
||||
- Change -MD to -MDd
|
||||
- Add -D ZLIB_WINAPI to CFLAGS
|
||||
- so the result will be like:
|
||||
CFLAGS = -nologo -MDd -O2 $(LOC) -D ZLIB_WINAPI
|
||||
- Then compile: nmake -f win32\Makefile.msc
|
||||
- Assuming the above step went fine, your zlib is now ready.
|
||||
- Now, to compile UnrealIRCd with ziplinks you do something like this:
|
||||
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib-1.2.1" ZLIB_LIB_DIR="c:\dev\zlib-1.2.1"
|
||||
Obviously, change the paths if needed [1st = *.h files, 2nd=*.dll/*.lib]
|
||||
|
||||
== SSL (OpenSSL) ==
|
||||
[note: openssl requires perl to configure/compile!]
|
||||
- Download latest openssl (eg: openssl-0.9.7d.tar.gz) and extract it somewhere
|
||||
(we'll use c:\dev\openssl-0.9.7d in this example)
|
||||
- Open util\do_masm.bat, add 'debug' to the lines with 'mk1mf.pl' BUT be careful
|
||||
since it should NOT be the last word, so add it somewhere before that.
|
||||
For example: perl util\mk1mf.pl dll debug VC-W31-32 >ms\w31dll.mak
|
||||
- Start the
|
||||
- Now we go build openssl, run:
|
||||
ms\do_masm
|
||||
nmake -f ms\ntdll.mak
|
||||
- Assuming the above step went fine, your OpenSSL is now ready.
|
||||
- Now, to compile UnrealIRCd with ziplinks you do something like this:
|
||||
nmake -f makefile.win32 USE_SSL=1 OPENSSL_INC_DIR="c:\openssl\inc32\openssl" OPENSSL_LIB_DIR="C:\Dev\openssl\out32dll.dbg"
|
||||
Obviously, change the paths if needed [1st=*.h files, 2nd=*.dll/*.lib]
|
||||
|
||||
== REMOTE INCLUDES (curl, c-ares) ==
|
||||
- Download latest c-ares source from http://daniel.haxx.se/projects/c-ares/
|
||||
Download latest curl source from http://curl.haxx.se/download.html
|
||||
Extract both somewhere (eg: c:\dev\c-ares-1.2.0 and c:\dev\curl-7.12.0)
|
||||
- Open vc\vc.dsw from your ares directory. Assuming you have VC7 it will ask
|
||||
whether it should convert the project, choose 'Yes to all'.
|
||||
- (solution explorer) areslib -> properties
|
||||
C/C++ -> code generation -> runtime library: Change to
|
||||
'Multi-threaded Debug DLL (/MDd)'
|
||||
- at the time of writing 'ares_free_errmem.c' should be removed from the
|
||||
project file (solution explorer -> source files -> find the file + press
|
||||
delete). Also 'ares_version.c' and 'ares_cancel.c' should be added
|
||||
(solution explorer -> source files -> rightclick -> add -> add existing ->
|
||||
go down a few directories if needed and choose the file).
|
||||
- right click at 'areslib' in the solution explorer and select 'Build'.
|
||||
Assuming it compiled fine, we are done with c-ares.
|
||||
- Now go to the curl directory and open lib\curllib.dsw. Choose 'Yes to all'
|
||||
again when asked about converting.
|
||||
- Open config-win32.h (@header files in solution explorer) and add:
|
||||
#define USE_ARES 1
|
||||
- Open include\curl\multi.h and change the line with:
|
||||
#include <winsock2.h>
|
||||
to:
|
||||
#include <winsock.h>
|
||||
- (solution explorer) curllib -> properties
|
||||
- C/C++ -> code generation -> runtime library: Change to
|
||||
'Multi-threaded Debug DLL (/MDd)'
|
||||
- C/C++ -> general -> additional include directories:
|
||||
add the path to your <c-ares-directory> (eg: C:\Dev\c-ares-1.2.0).
|
||||
- linker -> general -> additional library directories:
|
||||
add the path to your <c-ares-directory>\vc\areslib\Debug,
|
||||
for example C:\Dev\c-ares-1.2.0\vc\areslib\Debug.
|
||||
- linker -> input -> additional dependencies:
|
||||
add: areslib.lib
|
||||
- linker -> input -> Module defenition file:
|
||||
set to: libcurl.def
|
||||
Done with editting properties.
|
||||
- Now: Build -> rebuild solution, everything should compile fine.
|
||||
- Now, to compile UnrealIRCd with remote includes you do something like this:
|
||||
nmake -f makefile.win32 USE_REMOTEINC=1 LIBCURL_INC_DIR="C:\Dev\curl-7.12.0\include" LIBCURL_LIB_DIR="C:\Dev\curl-7.12.0\lib\Debug"
|
||||
This is off-topic and not explained here.
|
||||
Again, use the stuff from the win32 development pack unless you have a good
|
||||
reason to do otherwise (in which case we might not support your self-compiled version
|
||||
because we work with specific versions / compile options).
|
||||
|
||||
@@ -1,764 +0,0 @@
|
||||
/*
|
||||
* example.conf by Alexander Ganchev AKA Peace (unrealirc@gmail.com).
|
||||
* $Id$
|
||||
*
|
||||
* Prednaznachen e za Unreal3.2 i versii sled nego
|
||||
* Dobre priqteli. Tova e noviqt example.conf.Izglejda kato nqkoi fail C++ (shega).
|
||||
* Kakto i da e..vreme e da go configurirame. Trudnichko e kato za purvi put, no
|
||||
* sus malko praktikuvane i chetene shte mu sviknete.
|
||||
*
|
||||
* Kopiraite tozi fail vuv vashata glavna direktoriq i go prekrustete na 'unrealircd.conf'.
|
||||
* VAJNO: Vsichki linii (tova sa zavurshvashtite na vseki red),
|
||||
* {trqbwa da zavurshvat sus ; a kraq na samata liniqta slagate i } - demek nakraq stava };
|
||||
* MOLQ PROCHETETE doc/unreal32docs.html!Online versiqta shte namerite tuk -
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* Sudurja dosta informaciq za config faila: dava vi informaciq za vseki blok,stoinost, i taka natatuka..
|
||||
*/
|
||||
|
||||
/* Tipove Komentari */
|
||||
#Comment type 1 (Shell type)
|
||||
// Comment type 2(C++ style)
|
||||
/* Comment type 3 (C Style) */
|
||||
#tezi linii shte budat ignorirani ot ircd-to.
|
||||
|
||||
/*
|
||||
* UnrealIRCd poddurja modulite,clock.dll & commands.dll
|
||||
* zavisimost ot vashata operacionna sistema izberete za Windows ili za *NIX shte izpolzvate
|
||||
* Nezavisimo ot Operacionnata vi sistema trqbva da mahnete //- predi loadmodule i na 2-ta reda.
|
||||
*/
|
||||
|
||||
/* FOR *NIX, uncomment the following 2lines: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* FOR Windows, uncomment the following 2 lines: */
|
||||
loadmodule "modules/commands.dll";
|
||||
loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Sushto taka moje da vkliuchite i drugi configuracionni failove.
|
||||
* help.conf vi se qvqva komadata /helpop text. The badwords.*.conf
|
||||
* falovete sudurjat vsichki "badword kato slojite mod +G v kanal
|
||||
* spamfilter.conf sudurja nqkoi dobri pravila za zabrani za puskane na troianski kone.
|
||||
* Ako iskate mojete da gi vkliuchite tqh :
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/* NEW: me {}
|
||||
* OLD: M:Line
|
||||
* me {} opredelq imeto,opisanie i cifrata na vashiqt unrealircd server.
|
||||
* Sintaksisut e kakto sledva :
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Description";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Ako linkvate Servera si,Cifrata moje bi nqma da bude izpolzvaema ot drugite serveri vuv mrejata
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "Imeto Na Servera vi";
|
||||
info "Opisanie Na Servera";
|
||||
numeric Cifra po izbor(po malka e po dobre);
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: admin {}
|
||||
* OLD: A:Line
|
||||
* Admin dava informaciq za server admin-a na mrejata.
|
||||
* Mojete da slojite mnogo linii pod grafata 'admin {' ako iskate.
|
||||
* Sintaksisa kakto sledva:
|
||||
* admin {
|
||||
* "Purva liniq";
|
||||
* "Vtora liniq";
|
||||
* [drugi]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"TUk Slojete informaciq za admina";
|
||||
"Tuk mojete da slojite i ime ili email";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: class {}
|
||||
* OLD: Y:line (old was confusing)
|
||||
* Class e grupa nastroiki za vashata vruzka.Primer,Server connect-vane,max clienti i drugi.
|
||||
* delqt se na 2 Class-a. Class Cliends & Servers.
|
||||
* {
|
||||
* pingfreq ((kolko chesto da pignesh user/server v sekundi);
|
||||
* maxclients (vuzmojnite connekcii za opredelen 'Class');
|
||||
* sendq (maksimuma ot hora v edna opashka);
|
||||
* recvq (maximum receive queue from a connection [flood control]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Maksimum serveri koito moje da se link-nat */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Sekundite mejdu vseki opit za connect-vane */
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow {}
|
||||
* OLD: I:Line
|
||||
* Tazi Opciq opredelq koi shte ima pravo da vliza na servera vi...
|
||||
* Mojete da kontrolirate vashite klienti,da im slagate paroli i drugi.
|
||||
* control and/or set a password.
|
||||
* Syntax is as follows:
|
||||
* allow {
|
||||
* ip (razresheno ip za izpolzvane);
|
||||
* hostname (host mask);
|
||||
* class (class to send them to [see class {}]);
|
||||
* password "(parola)"; (po izbor)
|
||||
* maxperip (pozvoleni vruzki ot edno ip); (optional)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Passworded allow line */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "Test";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow channel {}
|
||||
* OLD: chrestrict
|
||||
* Razreshenie na userite da vlizat v opredelen kanal...
|
||||
* Syntax:
|
||||
* allow channel {
|
||||
* channel "imeto na kanala";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#Free";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: oper {}
|
||||
* OLD: O:Line
|
||||
* Opredelete koi da bude IRC Operator na servera vi
|
||||
* IRC operators tova sa tochno tezi hora koito da se grijat za servera,
|
||||
* da go poddurjat i da se connect-vat redovno.
|
||||
* Sinktaksisut e kakto sledva :
|
||||
* oper (login) {
|
||||
* class (class to put them in, if different from I, moves them to new
|
||||
* class);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (tuk shte slagate flagovete*);
|
||||
* };
|
||||
* OR
|
||||
* flags "old type flags, like OAaRD"; (sushto moje da slagate i samo bukvite)
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Za lista s oper flagovete, poglednete doc/unreal32docs.html#operblock
|
||||
*[Zaduljitelno da se prochete]
|
||||
*/
|
||||
|
||||
oper admin {
|
||||
class clients;
|
||||
from {
|
||||
userhost *@*;
|
||||
};
|
||||
password "Test";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
coadmin;
|
||||
can_globalkill;
|
||||
can_ungline;
|
||||
can_gline;
|
||||
can_kline;
|
||||
can_unkline;
|
||||
can_rehash;
|
||||
can_globops;
|
||||
can_localroute;
|
||||
can_wallops;
|
||||
can_localkill;
|
||||
can_localnotice;
|
||||
can_globalroute;
|
||||
can_globalnotice;
|
||||
can_dccdeny;
|
||||
can_setq;
|
||||
services-admin;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: listen {}
|
||||
* OLD: P:Line
|
||||
* Tuk shte opredelite porta na vasheto ircd prez koito
|
||||
* da vlizat useri/serveri.
|
||||
* Siktaksisut e kakto sledva :
|
||||
* listen (ip):(nomera na porta)
|
||||
* {
|
||||
* options {
|
||||
* (options here);
|
||||
* };
|
||||
* };
|
||||
* or for a plain
|
||||
* listen: listen (ip):(port);
|
||||
*
|
||||
* NOTICE: for ipv6 ips (3ffe:b80:2:51d::2 etc), use listen [ip]:port;
|
||||
*
|
||||
* That works also.
|
||||
*/
|
||||
|
||||
/* Options for listen:
|
||||
OLD | NEW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* BELEJKI ZA SSL PORTOVE : SSL portovete sa dosta nestandartni,
|
||||
* osven nomera na 'high-SSL portovete', nqkoi hora kazvat che mojej da gi startirash
|
||||
* na 994 port, zashtoto tova e oficialniqt SSL port..no tova izskva root!Osven tova port 194
|
||||
* e oficialniqt irc port i mojete nqkoi put da probvate da vidite dali ircd-to e startirano
|
||||
* na tozi port.
|
||||
* Nashiqt suvet e da izpolzvate port 6697 za SSL, toi se izpolzva vuv nqkoi mreji i
|
||||
* mojete da otvorite mnogo SSL portove ako iskate, no izpolzvaite i 6697 po standart.
|
||||
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/*
|
||||
* NEW: link {}
|
||||
* OLD: C/N:Lines
|
||||
* Tezi opcii sa za link-vane na serveri
|
||||
* BELEJKA: Dva servera se nujdaqt ot LINK {} za da budat linknati bez problemi!
|
||||
* Sintaksisut e kakto sledva:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, moshete da slojite sushto i * );
|
||||
* hostname (ip nomer/hostmask);
|
||||
* bind-ip (kum koe ip da bude svurzano sled kato se connect-ne, ili slojete * );
|
||||
* port (port za svurzvane (moje da slojite vseki);
|
||||
* hub (ako servera vi e hub,slojete * , ili servermask-a);
|
||||
* [ili leaf *;]
|
||||
* password-connect "(parola za svurzvane)";
|
||||
* password-receive "(povtorete parolata)";
|
||||
* class (class);
|
||||
* options {
|
||||
* (options here*);
|
||||
* };
|
||||
* /* Ako izpolzvate SSL,vie mojete da izberete shifur za da izpolzvate SSL mode
|
||||
* * Lista shte namerite vuv "openssl ciphers",samostoqtelen shifur sus :'s
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
OLD | NEW
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link services.Test.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Belejka: vie ne mojete da izpolzvate autoconnect kogato linkvate serveri
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEW: ulines {}
|
||||
* OLD: U:Line
|
||||
* U-liniite davat poveche komandi na serverut vi,Uliniite se slagat samo za services/stats
|
||||
* serveri i NIKOGA za normalnite UnrealIRCd serveri!
|
||||
* Sintaksisut e kakto sledva:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.Test.org;
|
||||
stats.Test.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: drpass {}
|
||||
* OLD: X:Line
|
||||
* Tuk shte slagate parolite za /die i /restart na servera.
|
||||
* Sintaksusut e kakto sledva:
|
||||
* drpass {
|
||||
* restart "(parola za restart na servera)";
|
||||
* die "(parola za die na servera)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "restart";
|
||||
die "die";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: log {} OLD: nishto ne se kazva otnosno tova kude i kakvo da logva.Mojete
|
||||
* gi slagate ako iskate
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Iztriite log faila i napravete nov koito da stiga do 2MB.
|
||||
*/
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* Chrez tezi nastroiki moje da napravite prehod ot /nickserv,/chanserv i drugi kum drugi nickove.
|
||||
* FLAGS: services,stats,normal
|
||||
*
|
||||
** Syntax:
|
||||
* alias "Ime" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
* [BELEJKA: Mojete da vkliuchite i opredeleniq,za celta poglednete doc/unreal32docs.html section 2.9]
|
||||
*/
|
||||
|
||||
// Tova posochva komandata /nickserv-a na user-a NickServ koito e svurzan s set::services-server server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Ako iskate komandite da sa na drug nick mojete da promenite nick-a
|
||||
//alias ChanServ {type services; };
|
||||
|
||||
// Posochva /StatServ na user-a StatServ koqto svurzva set::stats-server server
|
||||
//alias StatServ {type stats; };
|
||||
|
||||
// Posochva /superbot na user-a SuperBot
|
||||
//alias SuperBot {type normal; };
|
||||
|
||||
/* Standart Aliases */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* Tezi moje da posochite zamestiteli na /identify,/services, i drugi...
|
||||
* Syntax:
|
||||
* alias "Ime" {
|
||||
* format "format string" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* parameters "parameters to send";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Tova se pokazva otdelno, zashtoto vypreki che ima syshtoto ime kato predishnata direktiva
|
||||
*e dosta razlichno po otnoshenie na sintaksis, vypreki che osigurqva prosta funkciq i raz4ita na standartni alias-i za da raboti.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* alias::format ditektivata e obichaen izraz.Pyrviq format se svyrzva s
|
||||
* komandata /identify kogato pyrviq simvol e "#". Sled tova se izprashta do chanserv
|
||||
* alias-a s parametri identify. %1-. Togava vtoriq ormat se svyrzva s komandata /identify
|
||||
* kogato pyrviq simvol ne e "#".
|
||||
* Togava se izprashta do nickserv alias-a s parametri identify %1-.
|
||||
|
||||
/* Standard aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: tld {}
|
||||
* OLD: T:Line
|
||||
* Tezi nastroki sa za razlichni 'motd' i 'rules' failove
|
||||
* v zavisimost ot klientskata hostmask-a.
|
||||
* Sintaksisut e kakto sledva:
|
||||
* tld {
|
||||
* * mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*;
|
||||
motd "ircd.motd";
|
||||
rules "ircd.rules";
|
||||
};
|
||||
|
||||
/* BELEJKA: vzemete nqkoi fail primer - vzemete tao.of.irc.doc..sled tova go kopiraite v
|
||||
* glavnata direktoriq na Unrealircd-to vi.Prekrustete go na irc.motd..Napravete po sushtiq
|
||||
* nachin i ircd.rules (FAILOVETE SA ZADULJITELNI)
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEW: ban nick {}
|
||||
* OLD: Q:Line
|
||||
* Ako slojite ban na nickname to veche tozi nick stava neizpolzvaem.
|
||||
* Sintaksisut e kakto sledva :
|
||||
* ban nick {
|
||||
* mask "(nick koito jelaete da zabranite)";
|
||||
* reason "(prichina)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "Test";
|
||||
reason "Test Nickname";
|
||||
};
|
||||
/*
|
||||
* NEW: ban ip {}
|
||||
* OLD: Z:Line
|
||||
* Ban na ip.
|
||||
* Sintaksis:
|
||||
* ban ip { mask (ip nomer/hostmask); reason "(prichina)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 100.100.200.300;
|
||||
reason "Wrong Ip";
|
||||
};
|
||||
/*
|
||||
* NEW: ban server {}
|
||||
* OLD: Server Q:Line
|
||||
* Slagane na ban na server.Ako servera e link-nat kum otdalecheniq server
|
||||
* (toest tozi) localniqt server shte se diskonect-ne avtormatichno.
|
||||
* Syntax is as follows:
|
||||
* ban server {
|
||||
* mask "(Imeto na servera)";
|
||||
* reason "(Prichina)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask irc.microsoft.com;
|
||||
reason "Get out of here";
|
||||
};
|
||||
/*
|
||||
* NEW: ban user {}
|
||||
* OLD: K:Line
|
||||
* Tazi opciq pozvolqva da zabranite dostupa na user do vashiqt server
|
||||
* Sintaksis:
|
||||
* ban user { mask (hostmask/ip nomer); reason "(Prichina)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.microsoft.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
/*
|
||||
* NEW: ban realname {}
|
||||
* OLD: n:Line
|
||||
* Tazi opciq vi dava pravo da zabranite dostupa na user ot opredeleno 'realname'.
|
||||
* Sintaksis:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(prichina)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "test";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7";
|
||||
reason "virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* BELEJKA ZA VSICHKI BANOVE, mojete da povtarqte procedurata sus razlichni nickove!
|
||||
*
|
||||
* NEW: except ban {}
|
||||
* OLD: E:Line
|
||||
* Nick koito ne moje da bude bannat.
|
||||
* Sintaksis:
|
||||
* except ban { mask (ident@host); }
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
/*
|
||||
* NEW: deny dcc {}
|
||||
* OLD: dccdeny.conf
|
||||
* Izpolzvaite go za da zabranite dcc.Predpazva vi ot virusi
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "Fail koito shte blokirate (ie, *exe)";
|
||||
* reason "prichina";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "Sub7";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: deny channel {}
|
||||
* OLD: N/A (NEW)
|
||||
* Zabranqva kanali po vash izbor.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(kanal)";
|
||||
* reason "prichina";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "hackers";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: vhost {}
|
||||
* OLD: Vhost.conf file
|
||||
* Tazi nastroika vi slaga Falshivo ip.Slaga se za hora koito ne sa operatori
|
||||
* ili puk za operatori (za po murzelivite /sethost :P
|
||||
* Sintaksis:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host to allow to use it);
|
||||
* };
|
||||
* login (login name);
|
||||
* password (password);
|
||||
* };
|
||||
* then to use this vhost, do /vhost (login) (password) in IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Mojete da vkliuchite i drugi konfiguracionni failove */
|
||||
/* vkliuchete "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
set {
|
||||
network-name "Imeto na Mrejata vi";
|
||||
default-server "Imeto na Servera";
|
||||
services-server "Services.servera";
|
||||
stats-server "Stats.Servera";
|
||||
help-channel "#Kanal za pomosht";
|
||||
hiddenhost-prefix "skrithost";
|
||||
/* prefix-quit "quit na userite"; */
|
||||
/* Cloak Keys se slagat na vsichki serveri ot mrejata.
|
||||
* Te se izpolzvat za po golqma sigurnost.Trqbva da budat izbrani 3 reda
|
||||
* ot 5-100 simvola i da sudurjat SMESENI golemi,malki bukvi i cifri...
|
||||
* V primera e posocheno edin takuv 'Cloak Key'..napishete oshte 2
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"Slojete Tuk Vashi Razburkani";
|
||||
"Slojete Tuk Vashi Razburkani";
|
||||
};
|
||||
/* on-oper host */
|
||||
hosts {
|
||||
local "Host za localen operator";
|
||||
global "Host za globalen operator";
|
||||
coadmin "Host za coadmin";
|
||||
admin "Host za admin";
|
||||
servicesadmin "Host za services-admin";
|
||||
netadmin "Host za netadmin";
|
||||
host-on-oper-up "yes\no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server specific configuration */
|
||||
|
||||
set {
|
||||
kline-address "slojete adres za kline";
|
||||
auto-join "#kanal za auto-join";
|
||||
modes-on-connect "+iw";
|
||||
modes-on-oper "+wgs";
|
||||
oper-auto-join "#Kanal za auto-join na operatorite";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Ako jelaete da proverqva identa mahnete */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Tova e minimalnoto vreme v koeto user moje da se svurje sled kato izleze ot servera.
|
||||
* Tova shte pomogne da se spre spam-a */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Napravete statichen quit koito da zamestva drugite quit-ove na userite.
|
||||
custom quits are allowed on local server */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Mojete da blokirate 'Part-reason-ite' kato slojite nqkakuv text po vash izbor */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Mojete da slagate 'stats' ili inache kazano nqkoi flagove da budat razresheni i
|
||||
* izpolzvaemi samo ot operite. Primer za tova sa - klines,glines i shuns
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Dolniqt primer pokazva che mojete da slojite limit 3 svurzvaniq
|
||||
za 60 sec (na host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood protection */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 smenqniq na nicka za 60 seconds (po default) */
|
||||
};
|
||||
|
||||
/* Spam filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* vremetraeneto e po default *line ban set by spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* default prichina */
|
||||
virus-help-channel "#help"; /* Kanal za skanirane na virusi */
|
||||
/* s izkliuchenie "#help"; drugite kanali se osvobojdavat ot filtrirane */
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Ako imate problem ili nujda ot pomosht?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- sudurja 80% ot vuprosite vi!
|
||||
* 3) Ako imate problem moje da se oburnete i kum irc.ircsystems.net #unreal-support,
|
||||
* no purvo PROCHETETE HELP FAILA i 'FAQ'.
|
||||
*/
|
||||
+21
-12
@@ -14,9 +14,11 @@
|
||||
* closing } line. The IRCd will ignore commented lines.
|
||||
*
|
||||
* PLEASE READ doc/unreal32docs.html! The online version is also available at:
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* It contains a lot information about the configfile: gives information about
|
||||
* every block, variable, etc..
|
||||
* If you try to edit this file without reading the documentation properly
|
||||
* then you are pretty much guaranteed to fail!
|
||||
*/
|
||||
|
||||
/* Type of comments */
|
||||
@@ -288,9 +290,9 @@ listen *:6667;
|
||||
* options {
|
||||
* (options here*);
|
||||
* };
|
||||
* /* If we use SSL, we can choose what cipher to use in SSL mode
|
||||
* * Retrieve a list by "openssl ciphers", seperate ciphers with :'s
|
||||
* */
|
||||
* // If we use SSL, we can choose what cipher to use in SSL mode
|
||||
* // Retrieve a list by "openssl ciphers", separate ciphers with :'s
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
@@ -505,6 +507,18 @@ alias "identify" {
|
||||
type command;
|
||||
};
|
||||
|
||||
/* This is an example of a real command alias */
|
||||
/* This maps /GLINEBOT to /GLINE <parameter> 2d etc... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Bots are not allowed on this server, please read the faq at http://www.example.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NEW: tld {}
|
||||
@@ -723,11 +737,6 @@ set {
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* You can enable ident checking here if you want */
|
||||
@@ -754,7 +763,7 @@ set {
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: this example sets a limit of 3 connections per 60s (per host). */
|
||||
/* Throttling: this example sets a limit of 3 connection attempts per 60s (per host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
@@ -776,8 +785,8 @@ set {
|
||||
|
||||
/*
|
||||
* Problems or need more help?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- contains 80% of your questions!
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- contains 80% of your questions!
|
||||
* 3) If you still have problems you can go irc.ircsystems.net #unreal-support,
|
||||
* note that we require you to READ THE DOCUMENTATION and FAQ first!
|
||||
*/
|
||||
|
||||
@@ -1,789 +0,0 @@
|
||||
/*
|
||||
* example.conf von Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Arbeitet mit Unreal3.2 und darüber
|
||||
*
|
||||
* Dies hier ist die neue example.conf. Sie ähnelt irgendwie ein wenig C++ und sie
|
||||
* soll sie jedenfalls einmal erläutert werden. Es ist ein wenig schwer, erstmals
|
||||
* damit umzugehen, aber mit ein Wenig Übung und sorgfältigem Lesen sollte das zu
|
||||
* verstehen sein.
|
||||
*
|
||||
* Diese Datei ist einfach in das Hauptverzeichnis des UnrealIRCD zu kopieren und in
|
||||
* 'unrealircd.conf' umzubenennen.
|
||||
*
|
||||
* ZU BEACHTEN: Sämtliche Zeilen außer der mit einer '{' zu Beginn werden mit dem Zeichen
|
||||
* ';' beendet, auch die Zeile mit '}'. (Beliebter Syntaxfehler!)
|
||||
* Kommentar Zeilen werden vom IRCd ignoriert.
|
||||
*
|
||||
* BITTE LESE die doc/unreal32docs.html! Sie ist auch online erhältlich bei:
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* Diese Datei enthält zahlreiche ergänzende Informationen über jeden Block, Variablen usw.
|
||||
* Übersetzung durch stylus740@smart-irc.de (bei irc.smart-irc.net)/
|
||||
|
||||
/* Kommentar Typen */
|
||||
#Kommentar Typ 1 (Shell Typ)
|
||||
// Kommentar Typ 2(C++ Stil)
|
||||
/* Kommentar Typ 3 (C Stil) */
|
||||
#Solche Zeilen vom Typ 1, 2 oder 3 werden vom ircd ignoriert.
|
||||
|
||||
/*
|
||||
* UnrealIRCd arbeitet mit Modulen, die geladen werden, wenn sie benötigt werden.
|
||||
* Man benötigt mindestens das commands Modul und ein cloaking Modul.
|
||||
*/
|
||||
|
||||
/* FÜR *NIX (Unix, Linux, Xenix etc.), sind diese 2 Zeilen auszukommentieren: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* FÜR Windows sind diese 2 Zeilen auszukommentieren: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Man kann über eine 'include' Anweisung auch weitere Konfigurationsdateien einfügen.
|
||||
* help.conf enthält sämtliche /helpop Texte. Die badwords.*.conf filtert alle badword
|
||||
* Einträge für den Modus +G...
|
||||
* Die spamfilter.conf enthält einige wirksame Regeln für aktuelle Trojaner.
|
||||
* Falls man diese Dateien mit einfügen möchte:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NEU: me {}
|
||||
* ALT: M:Line
|
||||
* me {} legt Name, Beschreibung und eindeutige Nummer ('numeric') für diesen Server fest.
|
||||
* Syntax ist wie folgt:
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Beschreibung";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Falls der Server mit anderen gelinkt wird, darf muss die Nummer bei 'numeric' eindeutig
|
||||
* sein, darf also von keinem anderen Server im Netzwerk verwendet werden.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: admin {}
|
||||
* ALT: A:Line
|
||||
* Admin liefert Informationen über den Server Administrator. Man kann
|
||||
* so viele Zeilen unter 'admin {' angeben, wie man will.
|
||||
* Syntax ist wie folgt:
|
||||
* admin {
|
||||
* "erste Zeile";
|
||||
* "zweite Zeile";
|
||||
* [usw]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: class {}
|
||||
* ALT: Y:line (alte Form war verwirrend)
|
||||
* Hiermit werden Klassen und ihre Einstellungen festgelegt. Eine Klasse ist eine Gruppen
|
||||
* Einstellung für Verbindungen. So kann man beispielsweise Server Verbindungen in einer
|
||||
* eigenen Klasse behandeln, statt zusammen mit Clients.
|
||||
* Syntax ist wie folgt:
|
||||
* class (class name)
|
||||
* {
|
||||
* pingfreq (wie oft in Sekunden wird ein user/server angepingt);
|
||||
* maxclients (wie viele Verbindungen sind in dieser Klasse möglich);
|
||||
* sendq (maximale send Queue einer Verbindung);
|
||||
* recvq (maximale Empfangs Queue einer Verbindung [Flood Kontrolle!]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Wieviele Servers können gleichzeitig gelinkt sein */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Wieviele Sekunden zwischen jedem Verbindungsversuch */
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: allow {}
|
||||
* ALT: I:Line
|
||||
* Hier wird festgelegt, welche Verbindungen erlaubt sind...
|
||||
* Grundlegend kann man damit Clienten erlauben, zu verbinden und hat etwas Kontrolle
|
||||
* Syntax ist wie folgt:
|
||||
* allow {
|
||||
* ip (ip Maske für allow);
|
||||
* hostname (host Maske);
|
||||
* class (Klasse, die zugewiesen wird [siehe class {}]);
|
||||
* password "(password)"; (optional)
|
||||
* maxperip (wie viele Verbindungen je IP); (optional)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Passworded allow line */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: allow channel {}
|
||||
* ALT: chrestrict
|
||||
* Erlaubt es Usern, einen Channel zu betreten...
|
||||
* Ist wie eine Ausnahme von 'deny channel'.
|
||||
* Syntax ist wie folgt:
|
||||
* allow channel {
|
||||
* channel "channel name";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: oper {}
|
||||
* ALT: O:Line
|
||||
* Legt einen IRC Operator fest
|
||||
* IRC Operatoren halten den Server in Ordnung, warten ihn und halten die Verbindung
|
||||
* zum Netzwerk.
|
||||
* Syntax ist wie folgt:
|
||||
* oper (login) {
|
||||
* class (Klasse, die zugewiesen wird, falls anders als meine, wird eine neuee Klasse
|
||||
* zugewiesen);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (Flags hier*);
|
||||
* };
|
||||
* ODER
|
||||
* flags "alte Form von Flags, wie OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Die Liste möglicher Oper Flags kann in doc/unreal32docs.html#operblock nachgelesen werden
|
||||
* [WIRKLICH empfehlenswert, zu lesen!]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: listen {}
|
||||
* ALT: P:Line
|
||||
* Legt den Port fest, an dem der ircd 'lauscht', um Usern/Servern zu erlauben, eine
|
||||
* Verbindung zum Server aufzunehmen.
|
||||
* Syntax ist wie folgt:
|
||||
* listen (ip number):(port number)
|
||||
* {
|
||||
* options {
|
||||
* (options here);
|
||||
* };
|
||||
* };
|
||||
* oder für ein einfaches listen:
|
||||
* listen (ip):(port);
|
||||
*
|
||||
* ACHTUNG: für ipv6 ips (3ffe:b80:2:51d::2 etc), benutze listen [ip]:port;
|
||||
*
|
||||
* Das funktioniert ebenfalls.
|
||||
*/
|
||||
|
||||
/* Options for listen:
|
||||
OLD | NEW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* ZU BEACHTEN BEI SSL PORTS: SSL Ports sind nicht standardisiert.
|
||||
* Es wird oft gesagt, man solle den Port 994 benutzen, weil dies der
|
||||
* offizielle SSL Port sei. Aber das erfordert root Rechte! Andererseits
|
||||
* ist der Port 194 der offizielle Port und wann hat man je einen Ircd
|
||||
* auf diesem Port laufen gesehen?
|
||||
* Unsere Empfehlung ist, den Port 6697 für SSL zu benutzen, wie es auch
|
||||
* bei vielen anderen Netzwerken gemacht wird und für z.B. StunTour benutzt wird.
|
||||
* Man kann so viele SSL Ports öffnen, wie man will, aber wenn man (auch) den Port
|
||||
* 6697 benutzt, hilft man mit, die Welt ein klein wenig zu standardisieren ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* ACHTUNG: Wird der IRCd auf einer Shell mit verschiedenen IP's ausgeführt, kann
|
||||
* die Fehlermeldung 'Address already in use' ('Adresse wird schon benutzt')
|
||||
* in den Logfiles auftauchen und der IRCd startet nicht.
|
||||
* Das bedeutet, dass man eine spezifische Adresse anstelle von '*' definieren
|
||||
* MUSS, wie z.B.:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Es sollte klar sein, dass die IP durch die zu ersetzen ist, die einem
|
||||
* zugewiesen ist.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEU: link {}
|
||||
* ALT: C/N:Lines
|
||||
* Hiermit wird ein okay für eine Server Verbindung festgelegt.
|
||||
* ACHTUNG: BEIDE SERVER MÜSSEN EINE LINK {} EINSTELLUNG HABEN, UM KORREKT ZU VERBINDEN!
|
||||
* Syntax ist wie folgt:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, * funktioniert auch);
|
||||
* hostname (ip Nummer/Hostmaske);
|
||||
* bind-ip (Welche IP soll zum Verbinden benutzt werden, oder *);
|
||||
* port (Port, zu dem verbunden werden soll);
|
||||
* hub (Wenn dies ein Hub ist, funktioniert * , oder Servermasken);
|
||||
* [oder leaf *;]
|
||||
* password-connect "(Passwort zu senden)";
|
||||
* password-receive "(Passwort, welches wir emfangen sollten)";
|
||||
* class (Klasse, in die Server sollen);
|
||||
* options {
|
||||
* (options hier*);
|
||||
* };
|
||||
* /* Wird SSL benutzt, kann bestimmt werden, welche Verschlüsselung im SSL
|
||||
* * Modus zu benutzen ist
|
||||
* * Bei mehreren "openssl ciphers" sind die einzelnen Verschlüsselungen
|
||||
* * durch ':' zu trennen
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
OLD | NEW
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Achtung: autoconnect sollte nicht benutzt werden, wenn man Services linkt */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEU: ulines {}
|
||||
* ALT: U:Line
|
||||
* U-lines geben Servern mehr Möglichkeiten/Befehle, sie sollten NUR für Services/Stats
|
||||
* gesetzt werden und NIEMALS für normale UnrealIRCd Server!
|
||||
* Syntax ist wie folgt:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: drpass {}
|
||||
* ALT: X:Line
|
||||
* Hiermit werden die Passworte für /die und /restart festgelegt.
|
||||
* Syntax ist wie folgt:
|
||||
* drpass {
|
||||
* restart "(Passwort für Restart)";
|
||||
* die "(Passwort für die (die = 'sterben' = Abschaltung))";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: log {} ALT: N/A Festlegung von Namen und Speicherort der Logfiles. Man kann
|
||||
* beliebig viele festlegen.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Lösche das Logfile und starte ein neues, wenn 2MB erreicht wurden,
|
||||
nichts festlegen, wenn man immer das gleiche Log will */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: alias {}
|
||||
* ALT: N/A
|
||||
* Hier kann man Befels Aliasse festlegen, wie z.B. /nickserv, /chanserv usw.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [ACHTUNG: Mann kann hier auch eine Datei mit vordefinierten Aliassen per include
|
||||
* einfügen. Siehe auch: doc/unreal32docs.html Abschnitt 2.9]
|
||||
*/
|
||||
|
||||
// Hiermit wird der Befehl /nickserv an den User NickServ geleitet, welcher zur Einstellung set::services-server server verbunden ist
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Soll der Befehl auf denselben Nick wie das der Befehl leiten, kann man den Nick auslassen
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// leitet den /statserv Befehl an den User StatServ aus set::stats-server server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// leitet den /superbot Befehl an den User SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Standard Aliasse */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NEU: alias {}
|
||||
* ALT: N/A
|
||||
* Hier können Befehls Aliase, wie z.B.: /identify, /services, usw festgelegt werden.
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* format "format string" {
|
||||
* target "zeigt auf";
|
||||
* type aliastype;
|
||||
* parameters "zu sendende Parameter";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Die nachfolgenden Zeilen eigens deshalb, um zu zeigen, dass trotz gleichem Namens die vorherige Anweisung
|
||||
* völlig unterschiedlich in der Syntax ist, obwohl eine ähnliche Funktion unterstützt wird.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Die alias::format Anweisung ist ein regulärer Ausdruck. Das erste Format passt auf den /identify Befehl,
|
||||
* wenn das erste Zeichen ein # ist. Dann wird dies an den chanserv alias mit dem Parameters IDENTIFY
|
||||
* %1- übergeben. Das zweite Format passt auf den /identify Befehl, wenn das erste Zeichen kein # ist. Danach
|
||||
* wird der Befehl an den nickserv alias mit den Parameters IDENTIFY %1- geleitet.
|
||||
*/
|
||||
|
||||
/* Die alias::format::parameters Scripting Sprachen ähnlich. %N (wobei N einen Nummer ist) repräsentiert einen
|
||||
* Parameter, der an den Befehl (in diesem Fall /identify) zu senden ist. Wird %N- angegeben, bedeutet dies
|
||||
* alle Parameter vom N bis zum letzten Parameter des Strings. Man kann ebenso %n angeben, welches durch den
|
||||
* Nicknamen des users ersetzt wird.
|
||||
*/
|
||||
|
||||
/* Standard Aliasse */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* NEU: tld {}
|
||||
* ALT: T:Line
|
||||
* Hiermit werden unterschiedliche motd und rules Dateien in Abhängigkeit
|
||||
* von der Hostmaske des Clients eingestellt.
|
||||
* Syntax ist wie folgt:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* zu beachten: Will man nur die default motd/rules Dateien (ircd.motd, ircd.rules)
|
||||
* für jedermann benutzen, genügt es, den obigen Beispiel Block einfach zu löschen.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEU: ban nick {}
|
||||
* ALT: Q:Line
|
||||
* Bannt einen Nicknamen, so dass dieser nicht benutzt werden kann.
|
||||
* Syntax ist wie folgt:
|
||||
* ban nick {
|
||||
* mask "(nick to ban)";
|
||||
* reason "(reason)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserviert für Services";
|
||||
};
|
||||
/*
|
||||
* NEU: ban ip {}
|
||||
* ALT: Z:Line
|
||||
* Bannt eine IP, so dass diese nicht mehr zum Netzwerk verbinden kann.
|
||||
* Syntax:
|
||||
* ban ip { mask (ip Nummer/Hostmaske); reason "(Grund)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Server nicht mehr gelinkt";
|
||||
};
|
||||
/*
|
||||
* NEU: ban server {}
|
||||
* ALT: Server Q:Line
|
||||
* Nimmt einem Server die Möglichkeit, zum Neztwerk zu verbinden.
|
||||
* Wenn der Server zu einem anderen Server des Netzwerkes linkt, wird der
|
||||
* lokale server die Verbindung zum Netzwerk trennen.
|
||||
* Syntax ist wie folgt:
|
||||
* ban server {
|
||||
* mask "(Server Name)";
|
||||
* reason "(angegebener Grund)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Hau ab hier.";
|
||||
};
|
||||
/*
|
||||
* NEU: ban user {}
|
||||
* ALT: K:Line
|
||||
* Bewirkt, dass ein User mit einer bestimmten Maske nicht mehr zum Server verbinden kann.
|
||||
* Syntax:
|
||||
* ban user { mask (Hostmaske/ip Nummer); reason "(Grund)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: ban realname {}
|
||||
* ALT: n:Line
|
||||
* Verhindert, dass ein bestimmter Realname benutzt werden kann.
|
||||
* Syntax:
|
||||
* ban realname {
|
||||
* mask "(Realname)";
|
||||
* reason "(Grund)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* Sämtliche Banns dürfen durch zusätzliche Einträge wiederholt werden!
|
||||
*
|
||||
* NEU: except ban {}
|
||||
* ALT: E:Line
|
||||
* Diese Maske ist von Banns ausgenommen.
|
||||
* Syntax:
|
||||
* except ban { mask (ident@host); };
|
||||
* except ban {} kann so oft angegeben werden, wie man für verschiedene Hosts will.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: deny dcc {}
|
||||
* ALT: dccdeny.conf
|
||||
* Mit diesem Block können dcc send's geblockt werden... Gut, um Virten aufzuhalten.
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "zu sperrende Datei(ie, *exe)";
|
||||
* reason "Grund";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Möglicherweise Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: deny channel {}
|
||||
* ALT: N/A (NEW)
|
||||
* Verhindert, dass angegebene Channels benutzt werden können.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(channel)";
|
||||
* reason "Grund";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez sind illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: vhost {}
|
||||
* ALT: Vhost.conf file
|
||||
* Setzt eine Fake IP für Nicht-Opers, oder opers, die zu bequem für /sethost sind.... :P
|
||||
* Syntax:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host um die Nutzung zu gestatten);
|
||||
* };
|
||||
* login (Loginname);
|
||||
* password (Passwort);
|
||||
* };
|
||||
* um den vhost zu nutzen, mache /vhost (login) (password) im IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Man kann hier weitere Config Dateien einfügen */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Cloak keys müssen angegeben sein und sie müssen die selben auf allen Servern
|
||||
* im Netzwerk sein. Sie werden zur Generierung der maskierten Hosts verwendet
|
||||
* und sie sollten geheim gehalten werden.
|
||||
* Die Keys sollten 3 zufällige Strings von 5-100 Zeichen Länge sein (10-20 Zeichen
|
||||
* (sind ganz ok) und müssen aus Kleinbuchstaben(a-z), Großbuchstaben (A-Z) und
|
||||
* Ziffern (0-9) bestehen [wie im ersten Key Beispiel].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"und noch einer";
|
||||
"und noch einer";
|
||||
};
|
||||
/* on-oper Host */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server spezifische Configuration */
|
||||
|
||||
set {
|
||||
kline-address "setze.diese.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Man kann hier ident checking aktivieren, wenn man will */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Die Mindestzeit, die ein User verbunden sein muss, bevor er eine QUIT Meldung
|
||||
* senden darf (Das wird offentlich helfen, Spam zu verhindern */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Macht die Meldung statisch, die in allen Quit Meldungen angezeigt wird.
|
||||
Somit sind keine individuellen Quts auf dem lokalen Server mehr erlaubt */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Man kann auch sämtliche Part Meldungen blocken, indem man dies auskommentiert
|
||||
* und 'yes' sagt oder einen anderen Text angibt (z.B. "Bye bye!")
|
||||
/* static-part yes; */
|
||||
|
||||
/* Hiermit kann man bestimmte stats auf ausschliesslich Opers beschränken. Für
|
||||
* alle Stats kann man * benutzen. Wenn man es weglässt, können alle User alle
|
||||
* Stats abfragen. Eine vollständige Liste erhält man mit dem Befehl '/stats'.
|
||||
* Manche Admins entfernen 'kGs' und erlauben so normalen Usern die Anzeige von
|
||||
* klines, glines and shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Dieses Beispiel setzte ein Limit von 3 Verbindungen je 60s (pro Host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti Flood Schutz */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 Nickänderungen pro 60 Sekunden (Default) */
|
||||
};
|
||||
|
||||
/* Spam Filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* Default Dauer eines *line Banns durch Spamfilter */
|
||||
ban-reason "Spam/Belästigung"; /* default Grund */
|
||||
virus-help-channel "#help"; /* Channel, der für die 'viruschan' action benutzt wird*/
|
||||
/* except "#help"; Channel, der von Filtern ausgenommen wird */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Probleme? Weitere Hilfe nötig?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- enthält 80% deiner Fragen - Wetten Dass?
|
||||
* 3) Hat man dann noch Probleme, kann man den Chat bei irc.ircsystems.net
|
||||
* #unreal-support aufsuchen. Dabei ist zu beachten, dass wir voraussetzen,
|
||||
* dass zuvor DIE DOKU GELESEN WURDE (genauso, wie die FAQ!)!
|
||||
*/
|
||||
@@ -1,793 +0,0 @@
|
||||
/*
|
||||
* example.conf par Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
* Traduction française par babass (babass@unrealircd.org).
|
||||
*
|
||||
* Fonctionne pour Unreal3.2 et supérieur
|
||||
*
|
||||
* Okay les mecs. Voici la nouvelle version de l'example.conf. Cela ressemble plus à du C++.
|
||||
* Peu importe, il est temps de se lancer. Il est difficile de l'attaquer pour la première fois, mais
|
||||
* avec un peu d'expérience et en lisant vous comprendrez.
|
||||
*
|
||||
* Copiez juste ce fichier dans votre répertoire unrealircd principal et appellez le 'unrealircd.conf'.
|
||||
*
|
||||
* NOTE: Toutes les lignes, excepté la ligne d'ouverture { , les lignes finissant par un ;,
|
||||
* et celle de fermeture } incluses.
|
||||
* L'IRCd ignorera les lignes commentées.
|
||||
*
|
||||
* LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html! La version en ligne est aussi disponible à :
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.fr.html
|
||||
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournis des informations
|
||||
* à propos de chaque blocs, variable, etc..
|
||||
*/
|
||||
|
||||
/* Type de commentaires */
|
||||
#Commentaire type 1 (type Shell)
|
||||
// Commentaire type 2 (style C++)
|
||||
/* Commentaire type 3 (style C) */
|
||||
#Ces lignes sont ignorées par l'ircd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd supportes des modules, en charger certains est requis.
|
||||
* Vous aurez besoin au moins du module commands et du module cloaking.
|
||||
*/
|
||||
|
||||
/* POUR *NIX, décommentez les 2 lignes suivantes : */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* POUR Windows, décommentez les 2 lignes suivantes : */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Vous pouvez également inclure d'autres fichiers de configuration.
|
||||
* help.conf contient tous le texte de /helpop. Les fichiers badwords.*.conf
|
||||
* contiennent tous les badwords pour le mode +G...
|
||||
* spamfilter.conf contient quelques bonnes règles pour les trojans courrants.
|
||||
* Vous voudrez probablement les inclure:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ACTUEL : me {}
|
||||
* ANCIEN : M:Line
|
||||
* me {} definit le nom, la description et le numeric du serveur unreal
|
||||
* pour ce serveur. La syntaxe est la suivante :
|
||||
* me {
|
||||
* name "nom.du.serveur";
|
||||
* info "Description du Serveur";
|
||||
* numeric (numeric* serveur);
|
||||
* };
|
||||
* En cas de link, ce numeric ne peut être utilisé pour aucun autre serveur du réseau.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : admin {}
|
||||
* ANCIEN : A:Line
|
||||
* Admin donne des informations sur les server admins.
|
||||
* Vous pouvez mettre autant de lignes que vous voulez après admin {.
|
||||
* La syntaxe est la suivante :
|
||||
* admin {
|
||||
* "première ligne";
|
||||
* "deuxième ligne";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : class {}
|
||||
* ANCIEN : Y:line (l'ancien était déroutant)
|
||||
* Défini les réglages pour les classes. Une classe est un groupe de réglages pour
|
||||
* des connexions. Par exemple, les connexions serveurs, au lieu de passer par une classe
|
||||
* client, vous utilisez directement une classe serveur. La syntaxe est la suivante :
|
||||
* class (nom de la classe)
|
||||
* {
|
||||
* pingfreq (fréquence des pings utilisateurs/serveurs en secondes);
|
||||
* maxclients (combien de connexions pour cette classe);
|
||||
* sendq (file d'attente maximum pour l'envoie depuis une connexion);
|
||||
* recvq (file d'attente maximum pour la réception depuis une connexion [contrôle du flood]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Nombre maximum de serveurs pouvant être reliés en même temps */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Combien de secondes entre chaque tentatives de connexions */
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow {}
|
||||
* ANCIEN : I:Line
|
||||
* Défini les autorisations de connexions...
|
||||
* Principalement pour les clients, cela leur permet de se connecter, vous pouvez donc avoir un certain
|
||||
* contrôle et/ou mettre un mot de passe.
|
||||
* La syntaxe est la suivante :
|
||||
* allow {
|
||||
* ip (ip mask à autoriser);
|
||||
* hostname (host mask);
|
||||
* class (classe à laquelle les renvoyer [voir class {}]);
|
||||
* password "(mot de passe)"; (optionnel)
|
||||
* maxperip (nombre de connexions par ip); (optionnel)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* connexion autorisée avec mot de passe */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow channel {}
|
||||
* ANCIEN : chrestrict
|
||||
* Autorise un utilisateur à joindre un salon...
|
||||
* comme une exception au deny channel.
|
||||
* Syntaxe :
|
||||
* allow channel {
|
||||
* channel "nom du salon";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : oper {}
|
||||
* ANCIEN : O:Line
|
||||
* Défini un IRC Operateur
|
||||
* Les IRC operateurs sont là pour préserver la qualité du serveur mais aussi d'en assurer
|
||||
* la maintenance et sa connexion au réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* oper (login) {
|
||||
* class (classe à laquelle les associer, si différent de moi, déplacez les vers une
|
||||
* nouvelle classe);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flags ici*);
|
||||
* };
|
||||
* OU
|
||||
* flags "ancien type de flags, comme OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Pour avoir la liste des flags oper, voir doc/unreal32docs.fr.html#operblock
|
||||
* [lecture HAUTEMENT recommendée]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : listen {}
|
||||
* ANCIEN : P:Line
|
||||
* Défini un port à rattacher à l'ircd, pour autoriser
|
||||
* des utilisateurs/serveurs à se connecter au serveur.
|
||||
* La syntaxe est la suivante :
|
||||
* listen (ip):(port)
|
||||
* {
|
||||
* options {
|
||||
* (options ici);
|
||||
* };
|
||||
* };
|
||||
* ou pour une écoute
|
||||
* indifférente : listen (ip):(port);
|
||||
*
|
||||
* NOTICE : pour les ips ipv6 (3ffe:b80:2:51d::2 etc), utilisez listen [ip]:port;
|
||||
*
|
||||
* Cela fonctionne également.
|
||||
*/
|
||||
|
||||
/* Options de listen:
|
||||
ANCIEN | ACTUEL
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* NOTE SUR LES PORTS SSL: les ports SSL sont plutôt non standardisés,
|
||||
* A côté des nombreux ports high-SSL, certaines personnes disent que vous devez
|
||||
* l'utiliser sur le port 994 car c'est le port SSL officiel.. mais cela
|
||||
* requière d'être root! D'un autre coté, le port 194 est le port irc officiel et
|
||||
* avez vous déjà vu un ircd fonctionner sur celui-ci ?
|
||||
* Donc, notre suggestion est d'utiliser le port 6697 pour le SSL, ceci est utilisé par
|
||||
* assez bien de réseaux et est reconnu par exemple par StunTour.
|
||||
* Vous êtes libre d'ouvrir autant de ports SSL que vous le désirez mais
|
||||
* en utilisant (au moins) 6697 vous aidez le monde à standardiser un peu a bit ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOTE: Si vous êtes sur un shell shell avec de multiples IP's vous êtes
|
||||
* susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
|
||||
* dans vos logs et l'ircd refusera de démarer.
|
||||
* Cela signifie que vous devrez utiliser une IP spécifique au lieu de '*',
|
||||
* Donc par exemple :
|
||||
* listen 1.2.3.4:6667;
|
||||
* Evidemment, remplacez l'IP par celle qui vous a été assignée.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ACTUEL : link {}
|
||||
* ANCIEN : C/N:Lines
|
||||
* Défini un accord pour la connexion d'un serveur.
|
||||
* NOTE : CHACUN DES SERVEURS NECESSITE UN PARAMETRE LINK {} POUR SE CONNECTER CORRECTEMENT !
|
||||
* La syntaxe est la suivante :
|
||||
* link (nom du serveur)
|
||||
* {
|
||||
* username (username, * fonctionne aussi);
|
||||
* hostname (ip/hostmask);
|
||||
* bind-ip (Quelle IP à laquelle se relier lors de la connexion, ou *);
|
||||
* port (port auquel se connecter, si il y en a un);
|
||||
* hub (Si c'est un a hub, * fonctionne, ou les servermasks qu'il doit porter);
|
||||
* [ou leaf *;]
|
||||
* password-connect "(mot de passe à envoyer)";
|
||||
* password-receive "(mot de passe que l'on doit recevoir)";
|
||||
* class (classe à affecter aux serveurs);
|
||||
* options {
|
||||
* (options ici*);
|
||||
* };
|
||||
* /* Si vous utilisez le SSL, vous pouvez choisir quel cryptage (cipher) utiliser dans le mode SSL
|
||||
* * Retrouvez une liste "crytages openssl", séparez les cryptages par des :
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
ANCIEN | ACTUEL
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Note : Vous ne devriez pas utiliser autoconnect lorsque vous linkez des services */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* ACTUEL : ulines {}
|
||||
* ANCIEN : U:Line
|
||||
* Les U-lines donnent aux serveurs plus de pouvoir/commandes, ceci doit UNIQUEMENT être appliqué
|
||||
* aux serveurs de services/stats et JAMAIS pour des servuers UnrealIRCd normaux !
|
||||
* La syntaxe est la suivante :
|
||||
* ulines {
|
||||
* (serveur auquel appliquer la uline);
|
||||
* (serveur auquel appliquer la uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : drpass {}
|
||||
* ANCIEN : X:Line
|
||||
* Défini les mots de passe pour les commandes /die et /restart.
|
||||
* La syntaxe est la suivante :
|
||||
* drpass {
|
||||
* restart "(mot de passe pour relancer)";
|
||||
* die "(mot de passe pour arrêter)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : log {}
|
||||
* ANCIEN : N/A
|
||||
* Dit à l'ircd où et quoi loguer. Vous pouvez en avoir
|
||||
* autant que vous le souhaitez.
|
||||
*
|
||||
* FLAGS : errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntaxe :
|
||||
* log "fichier de log"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Efface le fichier de log et commence un nouveau lorsqu'il dépasse 2MB,
|
||||
retirez ceci pour toujour utiliser le même fichier de log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : alias {}
|
||||
* ANCIEN : N/A
|
||||
* Ceci vous permet de définir des alias pour les commandes telles que /nickserv, /chanserv etc
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntaxe :
|
||||
* alias "nom" {
|
||||
* target "pointe vers";
|
||||
* type typedalias;
|
||||
* };
|
||||
*
|
||||
* [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
|
||||
* doc/unreal32docs.fr.html section 2.9]
|
||||
*/
|
||||
|
||||
// Ceci fait pointer la commande /nickserv vers l'utilisateur NickServ qui est connecté au serveur set::services-server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Si vous voulez que la commande pointe vers le même nom que la commande, vous pouvez ignorez l'entré du nom
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Faire pointer la commande /statserv vers l'utilisateur StatServ sur le serveur set::stats-name
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Faire pointer la commande /superbot vers l'utilisateur SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Alias Standards */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ACTUEL : alias {}
|
||||
* ANCIEN : N/A
|
||||
* Ceci vous permet de définir des alias pour les commandes telles que /identify, /services, etc
|
||||
*
|
||||
* Syntaxe :
|
||||
* alias "nom" {
|
||||
* format "format string" {
|
||||
* target "pointer vers";
|
||||
* type typedalias;
|
||||
* parameters "paramètres à envoyer";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Ceci est expliqué séparément car même si elle a le même nom que la directive précédente, elle est très
|
||||
* différente dans sa syntaxe, bien que elle a une fonction similaire et dépend des alias standards pour
|
||||
* fonctionner.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* La direcitive alias::format est une expression régulière. Le premier format correspond à la commande
|
||||
* /identify command lorsque le premier caractère est un #. Cela renvois donc à l'alias chanserv avec
|
||||
* les paramètres IDENTIFY %1-. Le second format correspond à la commanden /identify lorsque le premier
|
||||
* caractère n'est pas un #. Cela envoies alors la commande à l'alias nickserv avec les paramètres
|
||||
* IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* L'alias::format::parameters est similaire aux languages de programmation. %N (où N est un nombre)
|
||||
* représente un paramètre envoyé à la commande (dans ce cas /identify). Si vous spécifiez %N- cela
|
||||
* signifie que tous les paramètres depuis N jusqu'au dernier paramètre dans la chaîne de caractères.
|
||||
* Vous pouvez également spécifier %n qui est remplacé par le pseudo de l'utilisateur.
|
||||
*/
|
||||
|
||||
/* Alias Standards */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* ACTUEL : tld {}
|
||||
* ANCIEN : T:Line
|
||||
* Ceci applique une motd et des fichiers de règles différents
|
||||
* en fonction de l'hostmask des clients.
|
||||
* La syntaxe est la suivante :
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* note : vous pouvez juste effacer le bloc d'exemple ci-dessus,
|
||||
* en quel cas les fichiers motd/règles par défaut (ircd.motd, ircd.rules)
|
||||
* seront utilisés pour tout le monde.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ACTUEL : ban nick {}
|
||||
* ANCIEN : Q:Line
|
||||
* Banni un pseudo, il ne peut donc être utilisé.
|
||||
* La syntaxe est la suivante :
|
||||
* ban nick {
|
||||
* mask "(pseudo à bannir)";
|
||||
* reason "(raison)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reservé aux Services";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban ip {}
|
||||
* ANCIEN : Z:Line
|
||||
* Empêche une ip de se connecter au réseau.
|
||||
* Syntaxe :
|
||||
* ban ip { mask (ip/hostmask); reason "(raison)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Serveur délinké";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban server {}
|
||||
* ANCIEN : Server Q:Line
|
||||
* Empêche un serveur de se connecter au réseau.
|
||||
* Si le serveur est linké à un serveur distant, le serveur local
|
||||
* sera déconnecté du réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* ban server {
|
||||
* mask "(nom du serveur)";
|
||||
* reason "(raison à donner)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Va-t-en d'ici.";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban user {}
|
||||
* ANCIEN : K:Line
|
||||
* Fait qu'un utilisateur avec un certain masque ne peut se connecter
|
||||
* à votre serveur.
|
||||
* Syntaxe :
|
||||
* ban user { mask (hostmask/ip); reason "(raison)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : ban realname {}
|
||||
* ANCIEN : n:Line
|
||||
* Ceci empêche un certain realname d'être utilisé.
|
||||
* Syntaxe :
|
||||
* ban realname {
|
||||
* mask "(realname)";
|
||||
* reason "(raison)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTE POUR TOUS LES BANS, ils peuvent être répetés pour ajouter des entrées !
|
||||
*
|
||||
* ACTUEL : except ban {}
|
||||
* ANCIEN : E:Line
|
||||
* Fait que vous ne pouvez être banni.
|
||||
* Syntaxe :
|
||||
* except ban { mask (ident@host); };
|
||||
* Répétez l'except ban {} autant de fois
|
||||
* que vous voulez pour différents hosts.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne banni pas stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny dcc {}
|
||||
* ANCIEN : dccdeny.conf
|
||||
* Utilisez ceci pour bloquer l'envoie de dcc... stope
|
||||
* mieux les virus.
|
||||
* Syntaxe :
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "fichier à bloquer (ex : *exe)";
|
||||
* reason "raison";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny channel {}
|
||||
* ANCIEN : N/A (NEW)
|
||||
* Ceci empêche des salons d'être joins.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(salon)";
|
||||
* reason "raison";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : vhost {}
|
||||
* ANCIEN : Vhost.conf file
|
||||
* Applique une ip factice aux non-opers, ou aux
|
||||
* opers trop flemmards pour utiliser /sethost :P
|
||||
* Syntaxe :
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host à autoriser à utiliser);
|
||||
* };
|
||||
* login (login);
|
||||
* password (mot de passe);
|
||||
* };
|
||||
* ensuite pour utiliser ce vhost, tapez /vhost (login) (mot de passe) sur l'IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Vous pouvez utiliser d'autres fichiers de configuration */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Configuration du réseau */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Les Cloak keys doivent être les mêmes sur tous les serveurs du réseau.
|
||||
* Ils sont utilisés pour générer des hosts masqués et doivent être gardés secrets.
|
||||
* Les clés doivent être 3 chaînes de 5-100 caractères melangés.
|
||||
* (10-20 caractères est parfait) et elles doivent être constituées de minuscules (a-z),
|
||||
* majuscules (A-Z) et chiffres (0-9) [voir le premier exemple de clé].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"et une autre";
|
||||
"et un autre";
|
||||
};
|
||||
/* host à l'identification oper */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Configuration spécifique d'un serveur */
|
||||
|
||||
set {
|
||||
kline-address "mettre.cet.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Vous pouvez enclencher la vérification des idents si vous voulez */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Durée maximum pendant laquelle un utilisateur doit rester connecté avant de pouvoir utiliser
|
||||
* un message de QUIT.
|
||||
* Ceci devrait aider à stoper le spam */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Applique le message de static-quit à tous les quits - cela signifie qu'aucun
|
||||
message de quit personalisé ne sera autorisé sur le serveur local */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Vous pouvez également bloquer toutes les raisons de part en décommentant ceci et en disant
|
||||
* 'yes', ou spécifiez un autre texte (ex: "Bye bye!") pour qu'il soit toujours utilisé.. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Vous permet de restreindre certaines stats aux opers, utilisez * pour toutes les stats,
|
||||
* enlevez le pour autoriser les utilisateurs à voir toutes les stats. Tapez '/stats' pour
|
||||
* une liste complète.
|
||||
* Certains admins pourront vouloir bloquer 'kGs' pour que les utilisateurs normaux ne puissent
|
||||
* lister les klines, glines et shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: cet exemple applique une limite de 3 connexions en 60s (par host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Protection Anti flood */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 changements de pseudo en 60 secondes (la valeur par défaut) */
|
||||
};
|
||||
|
||||
/* Filtre anti-spam */
|
||||
spamfilter {
|
||||
ban-time 1d; /* durée par défaut d'un ban *line appliqué par le spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* raison par défaut */
|
||||
virus-help-channel "#help"; /* salon à utiliser pour l'action 'viruschan' */
|
||||
/* excepté "#help"; salon à exempter de filtrage */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problèmes ou besoin de plus d'aide ?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.fr.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- contient 80% de vos questions !
|
||||
* 3) Si vous avez encore des problèmes vous pouvez aller sur irc.ircsystems.net #unreal-support,
|
||||
* notez que vous devez avoir LU LA DOCUMENTATION ET LA FAQ d'abord !
|
||||
*/
|
||||
@@ -1,812 +0,0 @@
|
||||
/*
|
||||
* example.conf Daniel Hawton avagy Osiris jóvoltából (osiris@unrealircd.org).
|
||||
* A magyar fordítást AngryWolf <angrywolf@flashmail.com> készítette.
|
||||
* $Id$
|
||||
*
|
||||
* Felhasználható Unreal3.2 és későbbi verziókhoz
|
||||
*
|
||||
* Oké, emberek! Ez az új példa konfiguráció. A kinézete nagyon hasonló
|
||||
* a C++-hoz, olyasformán. Mindenesetre itt az ideje végigmennünk rajta. Eleinte
|
||||
* nehéz nekilendülni, de kis gyakorlással és olvasgatással meg fogjuk érteni.
|
||||
*
|
||||
* Csak másoljuk be ezt a fájlt a fő unrealircd könyvtárunkba, és nevezzük
|
||||
* 'unrealircd.conf'-nak.
|
||||
*
|
||||
* MEGJEGYZÉS: Minden sor, kivéve a nyitó { sort, ;-vel végződik, beleértve
|
||||
* a záró } sort is. Az IRCd figyelmen kívül hagyja a megjegyzéssorokat.
|
||||
*
|
||||
* KÉRLEK, OLVASD EL A doc/unreal32docs.html-T! Az online verzió is elérhető
|
||||
* a www.vulnscan.org/UnrealIrcd/unreal32docs.html címen.
|
||||
* Rengeteg információt tartalmaz a konfigurációs fájlról: tájékoztatást ad
|
||||
* minden blokkról, változóról stb.
|
||||
*/
|
||||
|
||||
/* Megjegyzések típusai */
|
||||
#1. Megjegyzéstípus (Shell típusú)
|
||||
// 2. Megjegyzéstípus (C++ stílusú)
|
||||
/* 3. Megjegyzéstípus (C stílusú) */
|
||||
#ezeket a sorokat az ircd figyelmen kívül hagyja.
|
||||
|
||||
/*
|
||||
* Az UnrealIRCd támogat modulokat, néhányuk betöltése kötelező is.
|
||||
* Legalább a parancsokat biztosító és egy álcázó modulra lesz szükségünk.
|
||||
*/
|
||||
|
||||
/* *NIX-BAN vegyük ki a megjegyzésből a következő két sort: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* Windows-BAN vegyük ki a megjegyzésből a következő két sort: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Azt is megtehetjük, hogy befűzünk más konfigurációs fájlokat.
|
||||
* A help.conf tartalmazza az összes /helpop szöveget. A badwords.*.conf
|
||||
* fájlok tartalmazzák az összes csúnyaszó bejegyzést a +G módhoz...
|
||||
* A spamfilter.conf néhány jó szabályt a jelenlegi trójai vírusokra.
|
||||
* Valószínűleg be akarjuk tölteni őket:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ÚJ: me {}
|
||||
* RÉGI: M:Line
|
||||
* A me {} határozza meg ennek a szervernek a nevét, a leírását és az unrealbeli
|
||||
* szerverazonosító-számát. A szintaktikája a következő:
|
||||
* me {
|
||||
* name "szerver.név";
|
||||
* info "A szerver leírása";
|
||||
* numeric (szerverazonosító*);
|
||||
* };
|
||||
* Ha linkelünk, ezt az azonosítószámot nem használhatja semmilyen más szerver
|
||||
* a hálózaton.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.valaminet.com";
|
||||
info "ValamiNet Szerver";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: admin {}
|
||||
* RÉGI: A:Line
|
||||
* Ez a blokk információt ad a szerver adminisztrátorairól. Annyi sort tehetünk
|
||||
* az admin { alá, amennyit kívánunk.
|
||||
* A szintaktikája a következő:
|
||||
* admin {
|
||||
* "első sor";
|
||||
* "második sor";
|
||||
* [stb]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"szeleskorben@hasznalt.nev";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: class {}
|
||||
* RÉGI: Y:line (a régi zavarbaejtő volt)
|
||||
* Ezek az osztályokat állítják be. Az osztályok a kapcsolatok egy csoportjának
|
||||
* beállításai. Például a szerver kapcsolatokat, ahelyett, hogy egy kliens
|
||||
* osztályába kerülnének, beleirányítjuk a szerverek osztályába. Szintaktika:
|
||||
* class (osztálynév)
|
||||
* {
|
||||
* pingfreq (hány másodpercenként pingeljünk egy felhasználót/szervert);
|
||||
* maxclients (mennyi kapcsolat lehet ebben az osztályban);
|
||||
* sendq (egy kapcsolat küldési sorának maximális mérete);
|
||||
* recvq (egy kapcsolat fogadási sorának maximális mérete [árvízvédelem]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Legfeljebb ennyi szervert linkelhetünk egyszerre */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Ennyi másodpercet várjon, mielőtt újra kapcsolódik */
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: allow {}
|
||||
* RÉGI: I:Line
|
||||
* Ez a kapcsolatok engedélyezését határozza meg...
|
||||
* Alapvetően kliensekre használjuk; megengedi nekik, hogy kapcsolódjanak, így
|
||||
* némileg van lehetőség a szabályozásra, valamint jelszót is beállíthatunk.
|
||||
* A szintaktika a következő:
|
||||
* allow {
|
||||
* ip (ip maszk az engedélyezéshez);
|
||||
* hostname (gazdanév maszk);
|
||||
* class (osztály, ahová küldjük őket [lásd: class {}]);
|
||||
* password "(jelszó)"; (nem kötelező)
|
||||
* maxperip (mennyi kapcsolatot engedjünk ip címenként); (nem kötelező)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Jelszavas allow blokk */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.jelszavas.csunya.emberkek;
|
||||
class clients;
|
||||
password "V4lami";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: allow channel {}
|
||||
* RÉGI: chrestrict
|
||||
* Megengedi egy felhasználónak, hogy belépjen egy csatornára...
|
||||
* mint egy csatornáról letiltás alóli kivétel.
|
||||
* Szintaktika:
|
||||
* allow channel {
|
||||
* channel "csatornanév";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#AWarezSzívás";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: oper {}
|
||||
* RÉGI: O:Line
|
||||
* Definiál egy IRC operátort
|
||||
* Az IRC operátorok feladata, hogy épségben tartsák a szervert; rendszerint
|
||||
* ügyelnek a karbantartottságára és arra, hogy kapcsolatban maradjon
|
||||
* a hálózattal. A szintaktika a következő:
|
||||
* oper (bejelentkezőnév) {
|
||||
* class (osztály, ahová berakjuk őket; ha eddig más osztályban voltak,
|
||||
* átteszi őket ebbe az új osztályba);
|
||||
* from {
|
||||
* userhost (azonosító@gazdanév);
|
||||
* userhost (azonosító@gazdanév);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flagek ide*);
|
||||
* };
|
||||
* VAGY
|
||||
* flags "régi típusú flagek, mint pl. OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Az oper flagek listáját lásd a doc/unreal32docs.hu.html#operblock szekcióban
|
||||
* [ERŐSEN ajánlott elolvasni]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: listen {}
|
||||
* RÉGI: P:Line
|
||||
* Meghatároz egy olyan portot, amelyet az ircd megnyit, és engedélyt ad
|
||||
* a felhasználóknak/szervereknek, hogy kapcsolódjanak a szerverre.
|
||||
* A szintaktika a következő:
|
||||
* listen (ip cím):(portszám)
|
||||
* {
|
||||
* options {
|
||||
* (opciók ide);
|
||||
* };
|
||||
* };
|
||||
* vagy egy síma portnyitáshoz:
|
||||
* listen (ip):(port);
|
||||
*
|
||||
* MEGJEGYZÉS: ipv6-os ip-kre (3ffe:b80:2:51d::2 stb.) használjuk a
|
||||
* listen [ip]:port;
|
||||
* szintaktikát. Az is működik.
|
||||
*/
|
||||
|
||||
/* Opciók a listenhez:
|
||||
RÉGI | ÚJ
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* MEGJEGYZÉS SSL PORTOKRA: az SSL portok eléggé szabványosítatlanok, emellett
|
||||
* sok a magas SSL port. Néhányan azt mondják, a 994-en célszerű futtatni,
|
||||
* mert az a hivatalos SSL port... de a rendszergazdát igényel! Ezenkívül,
|
||||
* a 194 a hivatalos irc port, de láttunk valaha egy ircd-t azon futni?
|
||||
* Így mi a javaslatunk az, hogy használjuk a 6697-et SSL-hez, ezt használja
|
||||
* jónéhány hálózat, és ezt ismeri fel például a StunTour is.
|
||||
* Szabadon megnyithatunk annyi SSL portot, amennyit akarunk, de ha a 6697-et
|
||||
* (is) használjuk, kicsit segítjük a világot szabványosodni ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* MEGJEGYZÉS: Ha egy több IP címes IRCd shellen vagyunk, előfordulhat, hogy
|
||||
* "Address already in use" ("A cím már használatban van") hibaüzeneteket
|
||||
* találunk a naplóban, és az ircd nem indul el. Ez azt jelenti, hogy
|
||||
* az ircd-nek egy meghatározott IP címre KELL bindelnie a "*" helyett
|
||||
* vagyis például így:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Természetesen cseréljük ki az IP címet arra az IP-re, amelyet nekünk
|
||||
* osztottak ki.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ÚJ: link {}
|
||||
* RÉGI: C/N:Line-ok
|
||||
* Ez a blokk "igen"-t mond egy szerver kapcsolódására.
|
||||
* MEGJEGYZÉS: MINDKÉRT SZERVEREN KELL EGY LINK {} BEÁLLÍTÁS A HELYES
|
||||
* KAPCSOLÓDÁSHOZ!
|
||||
* A szintaktika a következő:
|
||||
* link (szervernév)
|
||||
* {
|
||||
* username (felhasználónév, * is működik);
|
||||
* hostname (ip cím/gazdanév maszk);
|
||||
* bind-ip (amilyen IP címre bindeljen kapcsolódáskor, vagy *);
|
||||
* port (port, ahová kapcsolódjon, ha van);
|
||||
* hub (Ha ez egy hub; * működik, vagy szervermaszkokat is beírhatunk);
|
||||
* [vagy leaf *;]
|
||||
* password-connect "(elküldendő jelszó)";
|
||||
* password-receive "(fogadandó jelszó)";
|
||||
* class (osztály, ahová betesszük a szervereket);
|
||||
* options {
|
||||
* (opciók ide*);
|
||||
* };
|
||||
* /* Ha SSL-t használunk, kiválaszthatjuk, milyen rejtjelező algoritmusok
|
||||
* * legyenek használatban SSL módban. Listát kapunk az "openssl ciphers"
|
||||
* * paranccsal. Az egyes rejtjeleket :-tal válasszuk el.
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
opciók:
|
||||
RÉGI | ÚJ
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.sajatnet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Megjegyzés: szolgáltatások linkelésekor célszerű nem
|
||||
* használni az autoconnect opciót.
|
||||
*/
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* ÚJ: ulines {}
|
||||
* RÉGI: U:Line
|
||||
* Az U-line-ok több hatalmat/parancsot adnak a szervereknek. CSAK
|
||||
* szolgáltatásokat és statisztikákat nyújtó szerverekre érdemes beállítani,
|
||||
* és SOHA rendes UnrealIRCd szerverekre!
|
||||
* A szintaktika a következő:
|
||||
* ulines {
|
||||
* (uline-ra teendő szerver);
|
||||
* (uline-ra teendő szerver);
|
||||
* [stb.]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: drpass {}
|
||||
* RÉGI: X:Line
|
||||
* Meghatározza a jelszavakat a /die és /restart parancsokhoz.
|
||||
* A szintaktika a következő:
|
||||
* drpass {
|
||||
* restart "(újraindítás jelszava)";
|
||||
* die "(leállítás jelszava)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "Imádok-újraindítani";
|
||||
die "Halj-te-buta";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: log {}
|
||||
* RÉGI: N/A
|
||||
* Megmondja az ircd-nek, hová és mit naplózzon. Annyi naplófájlunk lehet,
|
||||
* amennyit szeretnénk.
|
||||
*
|
||||
* FLAGEK: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Szintaktika:
|
||||
* log "naplófájl"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* (flag);
|
||||
* (flag);
|
||||
* [stb.]
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Törölje a naplófájlt, és kezdjen egy újat, ha eléri a 2 MB-ot;
|
||||
* hagyjuk ki ezt a beállításból, ha mindig ugyanazt a naplót
|
||||
* szeretnénk használni
|
||||
*/
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: alias {}
|
||||
* RÉGI: N/A
|
||||
* Ezzel olyan álparancsokat készíthetünk, mint a /nickserv, /chanserv stb.
|
||||
* FLAGEK: services (szolgáltatás), stats (statisztika), normal (közönséges
|
||||
* felhasználó)
|
||||
*
|
||||
* Szintaxis:
|
||||
* alias "név" {
|
||||
* target "ahová mutasson";
|
||||
* type álparancstípus;
|
||||
* };
|
||||
*
|
||||
* [MEGJEGYZÉS: Beilleszthetünk ide egy előre beállított álparancsfájlt is,
|
||||
* lásd: doc/unreal32docs.html, 2.9-es szekció]
|
||||
*/
|
||||
|
||||
// Ez a /nickserv parancsot a NickServ felhasználóra irányítja, aki a set::services-server szerverre kapcsolódott.
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Ha a parancsot ugyanarra a nicknévre szeretnénk irányítani, ami a parancs neve, kihagyhatjuk a nick bejegyzést.
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// A /statserv parancsot a set::stats-server szerveren lévő StatServ felhasználóra irányítja
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// A /superbot parancsot a SuperBot felhasználóra irányítja.
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Szabványos álparancsok */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ÚJ: alias {}
|
||||
* RÉGI: N/A
|
||||
* Ezzel olyan álparancsokat készíthetünk, mint az /identify, /services stb.
|
||||
*
|
||||
* Szintaktika:
|
||||
* alias "név" {
|
||||
* format "formátumsztring" {
|
||||
* target "ahova mutasson";
|
||||
* type álparancstípus;
|
||||
* parameters "küldendő paraméterek";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Ezt azért mutatjuk külön, mert még ha ugyanaz is a neve, mint az előző direktívának, a szintaktikája nagyon
|
||||
* más, habár hasonló feladatot lát el, és a szabványosok álparancsokra van szüksége, hogy működjön.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Az alias::format direktíva egy reguláris kifejezés. Az első formátum akkor illeszkedik az /identify parancsra,
|
||||
* ha az első karakter egy #. Azután elküldi ezt a chanserv álparancshoz az IDENTIFY %1- paraméterekkel.
|
||||
* A második formátum akkor illeszkedik az /identify parancsra, ha az első karakter nem egy #. Azután
|
||||
* elküldi a parancsot a nickserv álparancshoz az IDENTIFY %1- paraméterekkel.
|
||||
*/
|
||||
|
||||
/* Az alias::format::parameters hasonló a scriptnyelvekhez. Az %N (ahol N egy szám) a parancshoz küldött egyik
|
||||
* paramétert ábrázolja (ebben az esetben az /identify-ét). Ha azt írjuk, hogy %N-, a sztring N-edik
|
||||
* paraméterétől az utolsóig minden paramétert fog jelenteni. Megadhatunk egy %n-et is, amely ki lesz cserélve
|
||||
* a felhasználó nicknevével.
|
||||
*/
|
||||
|
||||
/* Szabványos álparancsok */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* ÚJ: tld {}
|
||||
* RÉGI: T:Line
|
||||
* Beállít más motd és rules fájlt
|
||||
* a kliens hostmaszkjára.
|
||||
* A szintaktikája a következő:
|
||||
* tld {
|
||||
* mask (azonosító@gazda);
|
||||
* motd "(motd fájl)";
|
||||
* rules "(rules fájl)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* megjegyzés: a fenti példa blokkot akár le is törölhetjük; ebben az esetben
|
||||
* mindenkire az alapértelmezett motd/rules fájlok (ircd.motd, ircd.rules)
|
||||
* lesznek használatban.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ÚJ: ban nick {}
|
||||
* RÉGI: Q:Line
|
||||
* Kitilt egy nicknevet, így az nem használható.
|
||||
* A szintaktikája a következő:
|
||||
* ban nick {
|
||||
* mask "(kitiltandó nick)";
|
||||
* reason "(indoklás)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Fenntartva a szolgáltatásoknak";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban ip {}
|
||||
* RÉGI: Z:Line
|
||||
* Megtiltja egy ip-nek, hogy a hálózatra kapcsolódjon.
|
||||
* Szintaktika:
|
||||
* ban ip { mask (ip cím/gazdanévmaszk); reason "(indoklás)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Lecsatolt szerver";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban server {}
|
||||
* RÉGI: Q:Line szerverekre
|
||||
* Megtiltja egy szervernek, hogy a hálózatra kapcsolódjon.
|
||||
* Ha egy szerver távoli szerverre linkel, a helyi szerver
|
||||
* szétkapcsolja a hálózatról.
|
||||
* A szintaktikája a következő:
|
||||
* ban server {
|
||||
* mask "(szervernév)";
|
||||
* reason "(indoklás)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Mars ki innen!";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban user {}
|
||||
* RÉGI: K:Line
|
||||
* Elintézi, hogy egy felhasználó egy bizonyos maszkról ne tudjon kapcsolódni
|
||||
* a szerverünkre.
|
||||
* Szintaktika:
|
||||
* ban user { mask (gazdanévmaszk/ip cím); reason "(indok)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idióta";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: ban realname {}
|
||||
* RÉGI: n:Line
|
||||
* Letiltja egy bizonyos valós név használatát.
|
||||
* Szintaktikája:
|
||||
* ban realname {
|
||||
* mask "(valós név)";
|
||||
* reason "(indok)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* MEGJEGYZÉS MINDEN BANRA: ezek ismételhetőek további bejegyzésekhez!
|
||||
*
|
||||
* ÚJ: except ban {}
|
||||
* RÉGI: E:Line
|
||||
* Elintézi, hogy ne lehessen minket kibannolni.
|
||||
* Szintaktika:
|
||||
* except ban { mask (azonosító@gazda); };
|
||||
* További gazdákhoz annyiszor ismételjük az except ban {}-t,
|
||||
* amennyiszer szükséges.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne tiltsuk ki stskeeps-t */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: deny dcc {}
|
||||
* RÉGI: dccdeny.conf
|
||||
* Használjuk dcc küldések blokkolására... Jobban
|
||||
* megállítja a vírusokat.
|
||||
* Szintaktika:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "blokkolandó fájl (pl. *exe)";
|
||||
* reason "indok";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Valószínűleg Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: deny channel {}
|
||||
* RÉGI: N/A (ÚJ)
|
||||
* Letiltja bizonyos csatornákon a belépést.
|
||||
* Szintaktika:
|
||||
* deny channel {
|
||||
* channel "(csatorna)";
|
||||
* reason "indok";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "A warez törvényellenes";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: vhost {}
|
||||
* RÉGI: Vhost.conf fájl
|
||||
* Beállít egy hamis ip címet közönséges felhasználókon, vagy
|
||||
* olyan operátorokon, akik lusták a /sethost-ot használni :P
|
||||
* Szintaktika:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (azonosító@gazda, aki használhatja);
|
||||
* };
|
||||
* login (bejelentkezőnév);
|
||||
* password (jelszó);
|
||||
* };
|
||||
* azután e vhost használatához adjuk ki
|
||||
* a /vhost (bejelentkezőnév) (jelszó) parancsot IRC-n
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Befűzhetünk más konfigurációs fájlokat */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Hálózati beállítások */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Az álcázó kulcsoknak a hálózat minden szerverén azonosnak kell
|
||||
* lenniük. Álcázott gazdanevek előállításában van szerepük, ezért
|
||||
* legyenek titokban tartva! Mind 3 kulcs legyen egy-egy véletlenszerű
|
||||
* sztring 5-100 karakterből (10-20 karakter kitűnő), valamint
|
||||
* tartalmazniuk kell kisbetűket (a-z), nagybetűket (A-Z) és számokat
|
||||
* (0-9) [ahogy az első kulcsos példában látható].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"írjunk hozzá még egyet";
|
||||
"írjunk hozzá még egyet";
|
||||
};
|
||||
/* gazdanevek opereléskor */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Szerverszintű beállítások */
|
||||
|
||||
set {
|
||||
kline-address "állítsuk.be.ezt.az.emailt";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#operek";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Itt engedélyezhetjük az ident ellenőrzést, ha szeretnénk */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Legkevesebb ennyi ideig kell a felhasználónak kapcsolatban lennie,
|
||||
* mielőtt engedélyt kap a QUIT üzenetek használatára. Remélhetőleg
|
||||
* ez leállítja a spamot. */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* A static-quit a neki megadott üzenetet megjeleníti minden
|
||||
* kilépésben - avagy egyéni kilépési szövegek nem engedélyezettek
|
||||
* a helyi szerveren */
|
||||
/* static-quit "Kliens kilépés"; */
|
||||
|
||||
/* Hasonlóan blokkolható minden lelépési indok, úgy, hogy kivesszük
|
||||
* a megjegyzésből ezt, és "yes"-t írunk vagy megadunk valamilyen
|
||||
* más szöveget (pl. "Bye bye!"), hogy mindig az legyen a lelépés
|
||||
* indoklószövege. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Ezzel megmondhatjuk, mely statisztikákat szeretnénk csak operátorok
|
||||
* számára engedélyezni. Használjunk *-ot, ha az összeset kívánjuk,
|
||||
* és hagyjuk el a direktívát, ha a felhasználók mindet láthatják. Írjuk
|
||||
* be a "/stats" parancsot a teljes listáért.
|
||||
* Lehet, hogy néhány adminisztrátor törölni fogja a "kGs"-t, hogy
|
||||
a közönséges felhasználók láthassák a kline-okat, gline-okat és
|
||||
* shunokat.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Elfojtás: ez a példa 60 másodpercenként (gazdánként) legfeljebb
|
||||
* 3 kapcsolatot engedélyező korlátozást állít be. */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Árasztásellenes védelem */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 nicknévváltás 60 másodpercenként
|
||||
(az alapértelmezés) */
|
||||
};
|
||||
|
||||
/* Spamszűrő */
|
||||
spamfilter {
|
||||
ban-time 1d; /* a spamszűrő által beállított *line-ok
|
||||
alapértelmezett kitiltási ideje */
|
||||
ban-reason "Spam/Reklámozás"; /* alapértelmezett indok */
|
||||
virus-help-channel "#help"; /* a "viruschan" tevékenységhez
|
||||
használt csatorna */
|
||||
/* except "#help"; kivesszük a szűrés alól ezt a csatornát */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problémák akadtak, vagy szükség van további segítségre?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- a kérdéseid 80%-át tartalmazza!
|
||||
* 3) Ha még mindig gondod van, felmehetsz az irc.ircsystems.net #unreal-support
|
||||
* csatornájára. Fontos: kérjük, hogy előbb OLVASD EL A DOKUMENTÁCIÓT és
|
||||
* a GYIK-ot!
|
||||
*/
|
||||
-1349
File diff suppressed because it is too large
Load Diff
-1333
File diff suppressed because it is too large
Load Diff
+16
-9
@@ -1,5 +1,4 @@
|
||||
Numeric 005 Documentation (c) 2002-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2.3)
|
||||
|
||||
Numeric 005 allows the server to inform the client of any protocol specific features in the
|
||||
IRCd. The numeric is sent at connection time immediately after numeric 004. Additionally
|
||||
@@ -107,7 +106,7 @@ CASEMAPPING string ascii Specifies what defini
|
||||
characters are upper/lowercase
|
||||
of eachother.
|
||||
|
||||
EXTBAN prefix,types ~,cqr Specifies what extbans are
|
||||
EXTBAN prefix,types ~,cqnr Specifies what extbans are
|
||||
supported by the server. The prefix
|
||||
defines which character indicates
|
||||
an extban and the types defines
|
||||
@@ -124,7 +123,7 @@ ELIST flags MNUCT Specifies the set of
|
||||
flag allows topic set time
|
||||
searching.
|
||||
|
||||
CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of commands that
|
||||
CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of commands that
|
||||
can be useful for the client to know
|
||||
exist as they may provide a more
|
||||
efficient means for the client to
|
||||
@@ -132,29 +131,37 @@ CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of
|
||||
token replaces the MAP and KNOCK
|
||||
tokens.
|
||||
|
||||
STATUSMSG flags ~&@%+ Specifies the mode flags that may
|
||||
STATUSMSG flags ~&@%+ Specifies the mode flags that may
|
||||
prefix a channel name in a PRIVMSG
|
||||
or NOTICE to limit who receives the
|
||||
message to only those with a certain
|
||||
level of access. This token will
|
||||
replace the WALLCHOPS token.
|
||||
|
||||
EXCEPTS none none Indicates that channel ban exceptions
|
||||
EXCEPTS none none Indicates that channel ban exceptions
|
||||
(+e) are supported by the server.
|
||||
|
||||
INVEX none none Indicates that channel invite
|
||||
INVEX none none Indicates that channel invite
|
||||
exceptions (+I) are supported by
|
||||
the server.
|
||||
|
||||
MAXLIST mode:num,... b:60,e:60,I:60 Specifies the maximum number of
|
||||
MAXLIST mode:num,... b:60,e:60,I:60 Specifies the maximum number of
|
||||
entries that may be added to a
|
||||
particular mode list (type A modes).
|
||||
This token replaces MAXBANS.
|
||||
|
||||
CHANLIMIT pfx:num,... #:10 Specifies the maximum number of
|
||||
CHANLIMIT pfx:num,... #:10 Specifies the maximum number of
|
||||
channels with the specified prefix
|
||||
that a user may join at one time.
|
||||
This token will replace MAXCHANNELS.
|
||||
|
||||
CHANNELLEN number 32 Provides the maximum length of a
|
||||
CHANNELLEN number 32 Provides the maximum length of a
|
||||
channel name that a user can create.
|
||||
|
||||
NAMESX none none Indicates that extended /NAMES info
|
||||
is available on this server. If the
|
||||
client sends "PROTOCTL NAMESX" then
|
||||
the server will, from then on, send
|
||||
all channel rights in a NAMES reply
|
||||
instead of only the highest right
|
||||
(eg: @+Person instead of @Person).
|
||||
|
||||
@@ -0,0 +1,465 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
|
||||
<title>Unreal 3.2 Protocol Documentation</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 style="text-align: center;">Unreal 3.2 Protocol Documentation</h1>
|
||||
<h3 style="text-align: center;">Last update: 29 November 2006</h3>
|
||||
<h1>Table of Contents</h1>
|
||||
<p><a href="#S1">1 Introduction</a></p>
|
||||
<p><a href="#S2">2 Server Negotiation</a></p>
|
||||
<blockquote><p><a href="#S2_1">2.1 PASS - Connection Password</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_2">2.2 PROTOCTL - Server Protocol Negotiation</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_3">2.3 SERVER - Server Negotiation</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_4">2.4 EOS - End Of Synch</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_5">2.5 NETINFO - Network Information</a></p></blockquote>
|
||||
<p><a href="#S3">3 User Operations</a></p>
|
||||
<blockquote><p><a href="#S3_1">3.1 NICK - User Introduction and Nick Change</a></p></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S3_1_1">3.1.1 Nick Collisions</a></p></blockquote></blockquote>
|
||||
<blockquote><p><a href="#S3_2">3.2 MODE, UMODE2 - User Mode Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_3">3.3 QUIT - User Disconnect</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_4">3.4 KILL - Force Disconnect</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_5">3.5 SETHOST/CHGHOST - Change virtual host</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_6">3.6 SETIDENT/CHGIDENT - Change a user's username</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_7">3.7 SETNAME/CHGNAME - Change a user's realname</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_8">3.8 WHOIS - User Information</a></p></blockquote>
|
||||
<p><a href="#S1">4 Server Operations</a></p>
|
||||
<blockquote><p><a href="#S4_1">4.1 SERVER - Server Introduction</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_2">4.2 SQUIT - Server Removal</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_3">4.3 SDESC - Server Description</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_4">4.4 PING - Live Connection Query</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_5">4.5 PONG - Live Connection Reply</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_6">4.6 STATS - Server Stats</a></p></blockquote>
|
||||
<p><a href="#S5">5 Channel Operations</a></p>
|
||||
<blockquote><p><a href="#S5_1">5.1 SJOIN - Channel Burst</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_2">5.2 JOIN - Channel Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_3">5.3 PART - Channel Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_4">5.4 KICK - Channel Kick</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_5">5.5 MODE - Channel Mode</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_6">5.6 INVITE - Invite a user to a channel</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_7">5.7 SAJOIN - Channel Force Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_8">5.8 SAPART - Channel Force Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_9">5.9 SAMODE - Channel Force Mode</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_10">5.10 TOPIC - Chanel Topic</a></p></blockquote>
|
||||
<p><a href="#S6">6 Services Commands</a></p>
|
||||
<blockquote><p><a href="#S6_1">6.1 SVSKILL - Force Disconnect by Service</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_2">6.2 SVSMODE, SVS2MODE - Force User Mode Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_3">6.3 SVSSNO, SVS2SNO - Forced SNomask Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_4">6.4 SVSNICK - Forced Nick Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_5">6.5 SVSJOIN - Forced Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_6">6.6 SVSPART - Forced Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_7">6.7 SVSO - Oper Permissions</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_8">6.8 SVSNOOP - Oper Lockdown</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_9">6.9 SVSNLINE - RealName Ban</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_10">6.10 SVSFLINE - File Ban</a></p></blockquote>
|
||||
<p><a href="#S7">7 Messaging</a></p>
|
||||
<blockquote><p><a href="#S7_1">7.1 PRIVMSG, NOTICE - Simple Message Transmission</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_2">7.2 SENDUMODE, SMO - Usermode-based Delivery</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_3">7.3 SENDSNO - SNomask-based Delivery</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_4">7.4 CHATOPS - IRCop Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_5">7.5 WALLOPS - Wallop Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_6">7.6 GLOBOPS - FailOp Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_7">7.7 ADCHAT - Admin Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_8">7.8 NACHAT - NetAdmin Chat</a></p></blockquote>
|
||||
<p><a href="#S8">8 Ban Control</a></p>
|
||||
<blockquote><p><a href="#S8_1">8.1 TKL - Master Ban Control</a></p></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_1">8.1.1 GLINE - Network-wide user@host ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_2">8.1.2 GZLINE - Network-wide IP ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_3">8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_4">8.1.4 SPAMFILTER - Message Spam Filtration System</a></p></blockquote></blockquote>
|
||||
<p><a href="#S9">9 Base64 Tables</a></p>
|
||||
<blockquote><p><a href="#S9_1">9.1 Table for SJB64 (NICK and SJOIN).</a></p></blockquote>
|
||||
<blockquote><p><a href="#S9_2">9.2 Table for NICKIP.</a></p></blockquote>
|
||||
<hr/>
|
||||
<h1><a name="S1"></a>1 Introduction</h1>
|
||||
<p>This document describes the UnrealIRCd server-to-server protocol as of protocol 2307 (Unreal 3.2.4).</p>
|
||||
<h2>A word about clocks.</h2>
|
||||
<p>Unreal is very time-dependant. Users and channels, for example, are timestamped, and if server clocks are not synchronized properly, things can go very wrong very fast. See <a href="http://vulnscan.org/UnrealIrcd/faq/#67">http://vulnscan.org/UnrealIrcd/faq/#67</a> for more information on this. Note that there is a slight difference between server time and what is actually reported by the UNIX date command or by the C time() function. Unreal can apply an offset to the real time to create the server time, allowing servers to be virtually synchronized when synchronizing the real clocks is not possible (such as on shell servers).
|
||||
I should make it quite clear that GMT time is used for everything. To be specific, timestamps in unreal are 32-bit integer values (actually, however many bits the time_t type is, which is 32 on 32-bit systems such as x86). This integer value is the number of seconds that have elapsed since Midnight January 1, 1970 GMT (can be referred to as Epoch time in the UNIX world). This means that timezones are no problem, nor is daylight savings time (or whatever your country of choice calls it).</p>
|
||||
<hr/>
|
||||
<h1><a name="S2"></a>2 Server Negotiation</h1>
|
||||
<p>The first step to establish a server-to-server communication is to negotiate the connection as a server. Negotiation is done using standard IRC commands - no PROTOCTL options are in force until the link is established. The first step is to open a TCP/IP connection to the target server. The target port must be one described by a listen {} block in the remote server's configuration, and that listen block must not have the clientsonly option. After the connection is open, you will be treated as any other connection and be greeted with the "Looking up your hostname..." and "Checking identd..." notices as you would for a client. As these are NOTICE messages and your session as a server isn't established, they should simply be ignored. Use the commands below to introduce a server connection.</p>
|
||||
<h2><a name="S2_1"></a>2.1 PASS - Connection Password</h2>
|
||||
<p><b>Syntax:</b> <tt>PASS :<i>link password</i></tt></p>
|
||||
<p>The PASS command is used to transmit the password required for a server link. It must match the password specified in the remote server's link::password-receive (which can be crypted), otherwise the link will be rejected. This should be the first message sent.</p>
|
||||
<h2><a name="S2_2"></a>2.2 PROTOCTL - Server Protocol Negotiation</h2>
|
||||
<p><b>Syntax:</b> <tt>PROTOCTL <i>protocol options</i></tt></p>
|
||||
<p>The PROTOCTL command sets several protocol options. The tokens supported are listed below.</p>
|
||||
<ul>
|
||||
<li>NOQUIT : When a netsplit occurs, only send a SQUIT message for each server lost. This server will assume that clients on these servers were also lost and will send the appropriate QUIT messages to local clients and to any non-NOQUIT servers.</li>
|
||||
<li>TOKEN : Use tokenized commands. Tokens are case-sensitive, shortened versions of command names. Tokens will be usually one or two characters.</li>
|
||||
<li>NICKv2 : Use extended NICK message for introducing users. See the NICK command for information about this.</li>
|
||||
<li>VHP : When introducing a user, send his cloaked host as if it were a vhost. Usually used for services to avoid having duplicate code.</li>
|
||||
<li>SJOIN : Supports SJOIN version 1 which is no longer in use. Use with SJ3.</li>
|
||||
<li>SJOIN2 : Supports SJOIN version 2 which is no longer in use. Use with SJ3.</li>
|
||||
<li>UMODE2 : Supports the UMODE2 command, which is a shortened version of MODE for usermode changes.</li>
|
||||
<li>VL : Supports V:Line information. Extends the SERVER message to include version information used in deny version{} blocks. Note that this is assumed - unreal will always send its own version information.</li>
|
||||
<li>SJ3 : Supports SJOIN version 3.</li>
|
||||
<li>NS : Supports server numerics which provides a shorthand for server names. In any circumstance where a :server.name is permitted (the server is the message's real source), @servernumeric may be used instead. In addition, the server.name parameter in the NICK message may be simply the server's numeric. Requires VL support.</li>
|
||||
<li>SJB64 : Timestamps in NICK and SJOIN are expressed in base64 rather than base10.</li>
|
||||
<li>TKLEXT : Supports exntended TKL messages for spamfilter support.</li>
|
||||
<li>NICKIP : Adds an IP parameter to the NICK message, which is the base64 encoding of the user's ip address (in network byte order). Requires NICKv2.</li>
|
||||
<li>NICKCHARS : Indicates the set of enabled nickchar options (see the regular documention for info about this).</li>
|
||||
<li>CHANMODES : (Not required to be sent) This is the same as the CHANMODES value in the 005 for client connections. Useful for autodetecting things like what modes are valid for ChanServ MLOCK, for example.</li>
|
||||
<li>CLK : Supports an extra field in NICK for sending the cloaked host (not vhost).</li>
|
||||
</ul>
|
||||
<p>The syntax examples here follow the conventions for TOKEN and also NS in cases of server-only messages.</p>
|
||||
<h2><a name="S2_3"></a>2.3 SERVER - Server Negotiation</h2>
|
||||
<p><b>Note:</b> This message is also used for introducing additional servers, the format of this message in those cases is described later.</p>
|
||||
<p><b>Syntax (normal):</b> <tt>SERVER <i>server.name</i> 1 :<i>server description</i></tt></p>
|
||||
<p><b>Syntax (with VL):</b> <tt>SERVER <i>server.name</i> 1 :U<i>protocolversion</i>-<i>protocolflags</i> <i>server description</i></tt></p>
|
||||
<p><b>Syntax (with VL and NS):</b> <tt>SERVER <i>server.name</i> 1 :U<i>protocolversion</i>-<i>protocolflags</i>-<i>servernumeric</i> <i>server description</i></tt></p>
|
||||
<p>The literal 1 in the parameter list is the hopcount parameter. Since you are a direct link, your own hopcount will be 1.</p>
|
||||
<p>The server.name is the same as that in the remote server's link:: block. When received from unreal servers, this will be the value of that server's me::name. The protocol version is the numeric protocol version (2306 for example), and the protocol flags are the server's compilation flags (described below). These two fields are checked against the deny version {} blocks in the remote server's configuration. A value of 0 for either field prevents deny version{} checking for that field. The server description can be anything. When received from unreal servers, it'll be the value of me::description.</p>
|
||||
<p>The following version numbers have been used previously:</p>
|
||||
<ul>
|
||||
<li>2309 - Unreal 3.2.6</li>
|
||||
<li>2308 - Unreal 3.2.5</li>
|
||||
<li>2307 - Unreal 3.2.4</li>
|
||||
<li>2306 - Unreal 3.2.3</li>
|
||||
<li>2305 - Unreal 3.2.2</li>
|
||||
<li>2304 - Unreal 3.2.1</li>
|
||||
<li>2303 - Unreal 3.2beta* through 3.2 Release</li>
|
||||
<li>2302 - Unreal 3.1.1 through 3.1.4</li>
|
||||
<li>2301 - Unreal 3.1 Release</li>
|
||||
<li>2300 - Unreal 3.0 Release</li>
|
||||
</ul>
|
||||
<p>The compile flags as specified in protocol flags are:</p>
|
||||
<ul>
|
||||
<li>c : Server is chrooted (#define CHROOTDIR).</li>
|
||||
<li>C : Server has command line config (-f option) enabled (#define CMDLINE_CONFIG).</li>
|
||||
<li>D : Server is in debugmode (#define DEBUGMODE).</li>
|
||||
<li>F : Using filedescriptor lists.</li>
|
||||
<li>h : Server is compiled with hub support (#define HUB or answer "Hub" to relevant ./Config prompt).</li>
|
||||
<li>i : Server shows invisible users in /TRACE.</li>
|
||||
<li>n : NOSPOOF (pingcookies) is enabled (#define NOSPOOF or answer "Yes" to relevant ./Config prompt).</li>
|
||||
<li>V : Server is using valloc().</li>
|
||||
<li>W : Windows IRCd.</li>
|
||||
<li>Y : Syslog logging enabled.</li>
|
||||
<li>6 : Server has IPv6 support (#define INET6 or answer "yes" to relevant ./Config prompt).</li>
|
||||
<li>X : Server has badword stripping (user and channel modes +G) (#define STRIPBADWORDS).</li>
|
||||
<li>P : Server is using poll().</li>
|
||||
<li>e : Server has SSL Support (#define USE_SSL or answer "yes" (and have ssl libraries installed) to relevant ./Config prompt).</li>
|
||||
<li>O : Server has OperOverride enabled (#undef NO_OPEROVERRIDE or answer "no" to relevant ./Config prompt).</li>
|
||||
<li>o : Server has disabled Oper verify (#undef OPEROVERRIDE_VERIFY or answer "no" to relevant ./Config prompt).</li>
|
||||
<li>Z : Server has ziplink support (#define ZIP_LINKS or answer "yes" to relevant ./Config prompt AND have the zlib dev libraries).</li>
|
||||
<li>E : Server has extended channel mode support.</li>
|
||||
<li>3 : 3rd party modules are loaded or some system libraries are wonky.</li>
|
||||
<li>m : Private message handling is 'tainted' (one or modules registered a USERMSG hook).</li>
|
||||
<li>M : Channel message handling is 'tainted' (one or modules registered a CHANMSG hook).</li>
|
||||
<li>Additional Version flags can be added by 3rd-party modules.</li>
|
||||
</ul>
|
||||
<h2><a name="S2_4"></a>2.4 EOS - End Of Synch (TOKEN: ES)</h2>
|
||||
<p><b>Syntax:</b> ES</p>
|
||||
<p>Marks the end of the synching process. This is really optional, but it might be a good idea to send it anyway when you really are done synching. Once you send this, unreal will announce "Client connecting" or "Client exiting" notices (to those with snomask +F) for users (unless your server is U:Lined), and joins will be counted toward channel flood controls (chanmode +f).</p>
|
||||
<p>Sending EOS only marks your server as synched, but does not do so for servers behind you. EOS would need to be sent on those servers' behalf as well.</p>
|
||||
<h2><a name="S2_5"></a>2.5 NETINFO - Network Information (TOKEN: AO)</h2>
|
||||
<p><b>Syntax:</b> AO <i>maxglobal</i> <i>currenttime</i> <i>protocolversion</i> <i>cloakhash</i> 0 0 0 :<i>networkname</i></p>
|
||||
<p>This tells the other server your current network configuration. The max global is the highest number of concurrent users network-wide that this server has seen. The current time is a timestamp value. Protocolversion is the same as that in the SERVER command. Cloakhash is a hash representing the configured cloak keys. It may be a * if you are implementing services. The network name is that specified in set::network-name. The cloak-prefix is currently not sent here (and thus unreal won't generate warning for mismatching cloak prefixes, but they should be the same anyway).</p>
|
||||
<p>It is NETINFO, not EOS, that triggers the "Link bla bla bla is now synched" notices, but NETINFO does not imply synching is actually complete (see EOS).</p>
|
||||
<hr/>
|
||||
<h1><a name="S3"></a>3 User Operations</h1>
|
||||
<p>One important function of servers is it must notify all other servers about all of the users behind it. These commands represent the operations that can result in the change of a user's global state.</p>
|
||||
<h2><a name="S3_1"></a>3.1 NICK - User Introduction and Nick Change (TOKEN: &)</h2>
|
||||
<p><b>Syntax (nick change):</b> <tt>:<i>oldnick</i> & <i>newnick</i> :<i>timestamp</i></tt></p>
|
||||
<p>This format of the NICK message indicates an existing user is changing his or her nickname. If a collision occurs, see the section on Nick Collisions below. The timestamp is the new nickname's timestamp.</p>
|
||||
<p><b>Syntax (normal):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> :<i>realname</i></tt>
|
||||
<p><b>Syntax (NICKv2+NICKIP):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>nickipaddr</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2+NICKIP+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> <i>nickipaddr</i> :<i>realname</i></tt>
|
||||
<p><b>Note:</b> Because each server normally does its own cloak generation, Unreal does not expect to receive NICK messages with the CLK info, so do not send it. It will send this info to a server it has received a PROTOCTL CLK from however.</p>
|
||||
<p>This format of the NICK message introduces a new user to the network. If PROTOCTL VHP is enabled, the user's cloaked host is put in the virtualhost field, otherwise it'll be * unless the user is +t. With the addition of CLK, VHP is no longer necessary for determining the cloak host.</p>
|
||||
<h3><a name="S3_1_1"></a>3.1.1 Nick Collisions</h3>
|
||||
<p>A nick collision occurs when a server receives a NICK message (or & token) introducing a user that the server already sees on the network. When a collision occurs, one or both of the colliding clients must be disconnected. The timestamp is examined to determine which client loses. The client with the earlier timestamp remains. If both clients have equal timestamps, both are removed. Currently, Unreal handles NICK collisions both passively and agressively:</p>
|
||||
<ul>
|
||||
<li><b>Aggressive Handling:</b> The server actively sends a KILL message back across the link to terminate that end's client.</li>
|
||||
<li><b>Passive Handling:</b> Upon receipt of a NICK message that should "win", the server simply silently exits it's own client.</li>
|
||||
</ul>
|
||||
<h2><a name="S3_2"></a>3.2 MODE, UMODE2 - User Mode Change (TOKEN: G or |)</h2>
|
||||
<p><b>Syntax (MODE):</b> <tt>:<i>user</i> G <i>user</i> <i>modechange</i></tt></p>
|
||||
<p><b>Syntax (UMODE2):</b> <tt>:<i>user</i> | <i>modechange</i></tt></p>
|
||||
<p>This indicates a usermode change. The modechange can consist of zero or more strings of characters, each prefixed with either a + or -; the only delimiter between them being said + or -. If no + or - is at the beginning of the mode string, a + should be implied.</p>
|
||||
<p>Some user modes are never sent between servers. Specifically, usermode +s and +O are not sent between servers. Modules can define additional usermodes that also might not be sent between servers. The UMODE2 saves bandwidth by not including the redundant target field for usermode changes, so use it when possible.</p>
|
||||
<h2><a name="S3_3"></a>3.3 QUIT - User Disconnect (TOKEN: ,)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>user</i> , :<i>reason</i></tt></p>
|
||||
<p>This command indicates that a user has disconnected. The reason field is filled in with the reason the user disconnected, which will be any of: quit message provided by the user in a /quit command, kill message for local operator kills, "Client exited" if the user does a brutal quit (clean (by TCP's definition) disconnect without sending a QUIT message), or a socket error message if present.</p>
|
||||
<p>The QUIT message must NOT be prefixed when passing on to other servers. Only local user quit messages are affected by set::prefix-quit.</p>
|
||||
<h2><a name="S3_4"></a>3.4 KILL - Force Disconnect (TOKEN: .)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> . <i>target</i> :<i>killpath</i>!<i>source</i> (<i>reason</i>)</tt></p>
|
||||
<p>Used to indicate that an operator has used KILL on a user not on the same server. Anything beyond the last ! in the kill path is used as the reason. The source (reason) part is simply a standard used by Unreal. As each server passes on a KILL message, it usually prepends the bottommost part (up to the first .) of it's name followed by a ! character. When unreal receives a KILL from a directly connected irc operator, it will usually add that oper's vhost (or realhost if -x) as the first hop in the kill path, then follow with it's own name as mentioned before if it is passing to another server.</p>
|
||||
<p>A server can also send KILLs on it's own. This is done in cases involving nickname collisions, fake senders, bad direction, and other cases of protocol errors. Usually, in these cases, the server puts it's own name as the source, and also prefixes with <i>bottompart</i>! like for any other ircop on that server. For example: @3 . someone :irc!irc.example.com (Nick collision)</p>
|
||||
<h2><a name="S3_5"></a>3.5 SETHOST/CHGHOST - Change virtual host (TOKEN: AA or AL)</h2>
|
||||
<p><b>Syntax (SETHOST):</b> <tt>:<i>source</i> AA <i>newvhost</i></tt></p>
|
||||
<p><b>Syntax (CHGHOST):</b> <tt>:<i>source</i> AL <i>target</i> <i>newvhost</i></tt></p>
|
||||
<p>Indicates the change of a user's virtual host. Currently, servers are expected to assume UMODE2 +xt on the target user in both commands. (In the case of SETHOST, the target is the sender.) Servers using PROTOCTL VHP will receive the cloaked host in a SETHOST message when a user activates his cloaked host. A server can also send CHGHOST (from one of it's opered clients) to change a user's hostname. This is generally used by HostServ implementations. To disable a cloaked host, use CHGHOST to set the user's virtual host equal to his real host, or use SVSMODE -xt, but the latter requires services.</p>
|
||||
<h2><a name="S3_6"></a>3.6 SETIDENT/CHGIDENT - Change a user's username (TOKEN: AD or AZ)</h2>
|
||||
<p><b>Syntax (SETIDENT):</b> <tt>:<i>source</i> AD <i>newusername</i></tt></p>
|
||||
<p><b>Syntax (CHGIDENT):</b> <tt>:<i>source</i> AZ <i>target</i> <i>newusername</i></tt></p>
|
||||
<p>Indicates the change of a user's username. No usermode change is associated with this. Unreal does not use a distinguished virtual username, so servers should only keep the original username (from the NICK message) if they intend to allow the user to reset the original username. Servers can use CHGIDENT to change a user's username.</p>
|
||||
<h2><a name="S3_7"></a>3.7 SETNAME/CHGNAME - Change a user's realname (TOKEN: AE or BK)</h2>
|
||||
<p><b>Syntax (SETNAME):</b> <tt>:<i>source</i> AE :<i>newrealname</i></tt></p>
|
||||
<p><b>Syntax (CHGNAME):</b> <tt>:<i>source</i> BK <i>target</i> :<i>newrealname</i></tt></p>
|
||||
<p>Indicates the change of a user's realname. No usermode change is associated with this. Unreal does not use a distinguished virtual realname, so servers should only keep the original realname (from the NICK message) if they intend to allow the user to reset the original realname. Servers can use CHGNAME to change a user's username. Note that servers must NOT check that the sender be an IRCop in SETNAME - normal users are permitted to use SETNAME.</p>
|
||||
<h2><a name="#S3_8"></a>3.8 WHOIS - User Information (TOKEN: #)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> # [<i>from-server</i> ]<i>nick</i></tt></p>
|
||||
<p>Requests the information on a user. This works exactly like the user /whois command - in fact, the source parameter must be a user, or the command will do nothing. <i>from-server</i> is the server to request the information from; if a server recives a WHOIS message without this parameter, it should return its own information on the user, otherwise it should pass the message to the given server. Note that <i>from-server</i> may name a user instead of a server (such as when a user uses /whois nick nick), in which case the the nick should be interpreted as naming the server that user is on. <i>nick</i> may be several users seperated by commas, but may not contain wildcards.</p>
|
||||
<p>The reply to a WHOIS message uses the same numeric replies as the user command.</p>
|
||||
<hr/>
|
||||
<h1><a name="S4"></a>4 Server Operations</h1>
|
||||
<p>This is different from server negotiation. Negotiation is when you are first connecting. Server introduction is used for introducing additional servers behind an existing server (aka hubbing). Hubbing is limited as specified by the hub, leaf, and leafdepth parameters in the link block and attempted violation of a hub restriction results in termination of the link. If no hub or leaf directive is given your server is a leaf by default, so any introduction of any server behind you would be an automatic drop. U:Lines don't matter here; services must be configured as a hub in the link block. The reason is U:Line is a permission rule, but hub privilege is a network structure rule.</p>
|
||||
<h2><a name="S4_1"></a>4.1 SERVER - Server Introduction (TOKEN: ')</h2>
|
||||
<p><b>Note: This command is also used for negotiation. Be warned that the token for this command is NOT VALID at that time! See section 2.3 for the syntax for negotiation.</b></p>
|
||||
<p><b>Syntax (without PROTOCTL NS):</b> <tt>:<i>source</i> SERVER <i>new.server</i> <i>hopcount</i> :<i>description</i></tt></p>
|
||||
<p><b>Syntax (with PROTOCTL NS):</b> <tt>@<i>sourcenumeric</i> SERVER <i>new.server</i> <i>hopcount</i> <i>numeric</i> :<i>description</i></tt></p>
|
||||
<p>The command indicates that the server named new.server is being introduced by the source (the source is the server which new.server is directly linked to). The hopcount will be the number of links the receiving server would have to cross to reach new.server. In other words, new.server introduced itself with a hopcount of 1, and as the SERVER message is passed along, hopcount is incremented.</p>
|
||||
<p>As an example, a services server faking a SERVER message for JUPE functionality would use a hopcount of 2.</p>
|
||||
<h2><a name="S4_2"></a>4.2 SQUIT - Server Removal (TOKEN: -)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> SQUIT <i>server.name</i> <i>:reason</i></tt></p>
|
||||
<p>From an IRCop or when server.name is not behind the source, this command requests the removal of the specified server.name. The command in this case is treated very much like KILL in the respect that the message is broadcasted to all servers, except server.name and any servers behind it. When the SQUIT reaches server.name's uplink, that server closes the link to server.name (which would then generate it's own SQUIT on behalf of it's uplink for the servers behind it).</p>
|
||||
<p>A server can also use SQUIT in the same manner as QUIT to note the removal of a server behind it, or that it itself is quitting. In the former case, server.name is behind source, and the message is forward on to all other servers. In the latter case, source and server.name are equal, the receiving server closes the link and forwards the SQUIT message.</p>
|
||||
<p>Unreal closes a direct link by simply sending an ERROR message and then closing the TCP connection. This typically causes the other end to generate an SQUIT bearing the message "Client exited" or similar, however, the ERROR will usually cause the server to send a message to all IRCops.</p>
|
||||
<h2><a name="S4_3"></a>4.3 SDESC - Server Description (TOKEN: AG)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AG :<i>newdesc</i></tt></p>
|
||||
<p>The server to which source is connected to should have it's description updated to newdesc. This does NOT include the VL inforamtion.</p>
|
||||
<h2><a name="S4_4">4.4 PING - Live Connection Query (TOKEN: 8)</a></h2>
|
||||
<p><b>Syntax:</b> <tt>8 <i>source</i>[ :<i>destination</i>]</tt></p>
|
||||
<p>Used to check if a connection is still live if it has been "quiet" for a certain amount of time. Typically, unreal will send PING requests at intervals determined by the class::pingfreq setting. PINGs originating from the direct uplink will use the token, but it seems PINGs originating from a distant server will not.</p>
|
||||
<p>The response to a PING is sent with the <a href="#S4_5">PONG</a> command.</p>
|
||||
<p>When receiving a two-parameter PING, the second parameter is the target. If the target isn't you, you can either reply on behalf of that target (using its name instead of yours), or if there is a real connection representing the target, forward the PING to the target.</p>
|
||||
<h2><a name="S4_5">4.5 PONG - Live Connection Reply (TOKEN: 9)</a></h2>
|
||||
<p><b>Syntax:</b> <tt>9 <i>source</i>[ :<i>destination</i>]</tt></p>
|
||||
<p>Used to respond to a <a href="#S4_4">PING</a> query.</p>
|
||||
<p><b>Responding to a ping:</b> Once a PING is received, you usually have an amount of time to respond equal to your class::pingfreq. The correct response will always have two parameters. If you received one parameter, then the received parameter becomes the second parameter of your response, and the first parameter is your server name. If you received two parameters, the response returns both parameters in reverse order.</p>
|
||||
<p>For example, the response to <tt>8 uplink.server</tt> is <tt>9 my.name uplink.server</tt>, while the response to <tt>PING distant.server your.server</tt> is <tt>9 your.server distant.server</tt>. Unreal typically includes a : prior to the last parameter. This isn't required if that parameter contains no spaces, but it is especially important to not include the colon when reversing the parameters, or else Unreal mistake it for a single-parameter PONG.
|
||||
<p>If a two-parameter PONG is received, the second parameter names the target. If the target is not you, and a real connection represents that target, you should forward the PONG message via that connection.</p>
|
||||
<h2><a name="#S4_6"></a>4.6 STATS - Server Stats (TOKEN: 2)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> 2 [<i>type</i> [<i>server</i>] [<i>extended-params</i>]]</tt></p>
|
||||
<p>Requests statistics or configuration information from a server. This command is used to transport cross-server STATS requests from users (eg: /stats o other.server), and should only be sent from a user (not a server). With no parameters, this will cause unreal to simply dump its help output. <i>type</i> is the type of stats to request, <i>server</i> names a server (or a user on that server) to request stats from, and <i>extended-params</i> is used to filter output from STATS G, etc. When received, it is up to the receiver to determine what stats to support and how to reply, but generally numeric replies are used. For the list of unreal's stats types, type /stats in a client for the helptext dump.</p>
|
||||
<p><b>Note:</b> Stats set as oper-only (see set::oper-only-stats) will be refused from a server. In this case, it will be necessary to send the stats request from a psuedo-oper (such as a services agent, etc) for services/stats/etc.</p>
|
||||
<hr/>
|
||||
<h1><a name="S5"></a>5 Channel Operations</h1>
|
||||
<p>These commands deal with the state of channels across the network. Unreal only supports Network Channels, where the first character is a # character.</p>
|
||||
<h2><a name="S5_1"></a>5.1 SJOIN - Channel Burst (TOKEN: ~)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> ~ <i>timestamp</i> <i>channel</i> +<i>modes</i>[ <i>modeparams</i>] :<i>memberlist</i> <i>&ban</i> <i>"exempt</i> <i>'invex</i></tt></p>
|
||||
<p>Timestamp is the channel timestamp and can be !b64 as defined by PROTOCTL SJB64. Modes should only include those in the last three mode sets listed in CHANMODES. Modeparams is one parameter for each mode character that requires one. Memberlist is a series of users (all of which must at least be behind the server sending the SJOIN), each user is prefixed with one or more characters indicating their status. Owners (+q) are prefixed with *, admins (+a) ~, ops (+o) @, halfops (+h) %, voices (+v) +. Normal users are not prefixed with anything. Ban, ban exception, and invite exception masks are also included, with bans prefixed with &, ban exceptions prefixed with ", and invite exceptions with '. Note that when a &, " or ' is encountered as the first character, further processing of ~, *, @, %, or + characters must not continue because ban, exempt, and invite masks can contain any of those characters. (Plus it's just not right for a ban mask to be marked as a channel admin...)</p>
|
||||
<p>If the channel didn't already exist it is created with the information given in the SJOIN. Otherwise the timestamp is used to determine how the SJOIN information is handled. As a given, all members are joined into the channel, regardless. The mode information (modes, modeparams, memberlist prefixes, bans, exempts, and invites) is subject to the timestamp rules:</p>
|
||||
<ul>
|
||||
<li>If the channel's current timestamp is equal to the timestamp in SJOIN, then the mode information is merged.</li>
|
||||
<li>If the channel's current timestamp is less than the SJOIN timestamp, then the mode information is ignored.</li>
|
||||
<li>If the channel's current timestamp is greater than the SJOIN timestamp, then the channel's existing mode information is cleared (for example, deop, etc all local clients), and the SJOIN mode information is added.</li>
|
||||
</ul>
|
||||
<p>When merging modes, conflicting modes (including +p vs +s, differing +l limits or +k keys, etc) are handled as follows:</p>
|
||||
<ul>
|
||||
<li><b>Private (+p) vs. Secret (+s):</b> Secret (+s) is preferred. Private (+p) is removed. (Note: there is a <a href="http://bugs.unrealircd.org/view.php?id=2391">bug</a> in Unreal versions prior to 3.2.3 in which a desynch will occur in which one side is +p and the other is +s. Update to Unreal 3.2.4 if you have problems with this.)</li>
|
||||
<li><b>Strip Color (+S) vs. Block Color (+c):</b> Block (+c) is preferred. Strip (+S) is removed. (Note: Bug for +p vs. +s in prior unreal versions apply here as well.)</li>
|
||||
<li><b>Channel Limit:</b> Numericly larger limit is preferred (for example, +l 30 versus +l 15 : +l 30 wins).</li>
|
||||
<li><b>Channel Key:</b> "Larger" key (as defined by strcmp) is preferred (for example, +k moo versus +k meow : +k moo wins).</li>
|
||||
<li><b>Channel Link:</b> "Larger" link name (as defined by stricmp - not case sensitive) is preferred (for example, +L #moo versus +L #meow : +L #moo wins, but +L #Meow versus +L #meow : values are equal).</li>
|
||||
<li><b>Flood String:</b> Not really sure on this. I think larger value in each component wins.</li>
|
||||
<li><b>Join-Throttle:</b> Highest of time period wins, if equal, highest of join amount wins (so +j 3:40 beats +j 5:20 but +j 5:20 beats +j 3:20).</li>
|
||||
<li>Parameterized modes in third party modules will define their own conflict resolution formula.</li>
|
||||
</ul>
|
||||
<h2><a name="S5_2"></a>5.2 JOIN - Channel Join (TOKEN: C)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> C <i>#channel</i></tt></p>
|
||||
<p>Indicates a user has joined a channel. Only one channel is sent this way, and the key is not sent even if the user gave one one joining. If the channel parameter is the special "0" case, the server must interpret the message as a PART for all channels the user is on.</p>
|
||||
<h2><a name="S5_3"></a>5.3 PART - Channel Part (TOKEN: D)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> D <i>#channel</i>[ :<i>reason</i></tt>]</p>
|
||||
<p>Indicates a user has left a channel. Only one channel is sent this way. The reason parameter may be left out if no reason was given.</p>
|
||||
<h2><a name="S5_4"></a>5.4 KICK - Channel Kick (TOKEN: H)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> H <i>#channel</i> <i>user</i> :<i>reason</i></tt></p>
|
||||
<p>Orders the forced removal of user from #channel with the given reason. When updating state for this command, it should be the same as if :user PART #channel had been received - the user is removed from #channel's memberlist.</p>
|
||||
<h2><a name="S5_5"></a>5.5 MODE - Channel Mode (TOKEN: G)</h2>
|
||||
<p><b>Note:</b> This is the same command as that used for usermode changes.</p>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> G <i>#channel</i> <i>modechange</i> <i>modeparams</i>[ <i>timestamp</i>]</tt></p>
|
||||
<p>Changes the specified modes on the given channel. If the source is a server and the last parameter is numeric, it is interpreted as timestamp (although it can also be consumed as a parameter for modes. For example: :server.name MODE #channel +l 4 <-- 4 will be a timestamp and the +l parameter). When a mode change is timestamped in this way, the mode is treated as it is with SJOIN: the MODE message is ignored if the timestamp is greater than the channel timestamp. (If the timestamp is equal, the mode is simply added replacing any conflicting modes already in place.)</p>
|
||||
<p>A services implementation can easily clear all entries in a list mode such as bans with SVSMODE (see below).</p>
|
||||
<h2><a name="S5_6"></a>5.6 INVITE - Invite a user to a channel (TOKEN: *)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> * <i>target</i> <i>#channel</i></tt></p>
|
||||
<p>Sends to target an invitation to join #channel. If the source is a channel operator on #channel, or a U:Lined server, the invitation grants the user the temporary ability to join the channel regardless of any bans or some restricting channel modes (not +O or +A).</p>
|
||||
<h2><a name="S5_7"></a>5.7 SAJOIN - Channel Force Join (TOKEN: AX)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AX <i>targetuser</i> <i>#channel</i></tt></p>
|
||||
<p>This requests the forced join of targetuser to #channel. This type of forced join overrides bans, and most modes. The server to which targetuser is connected to must actually acknowledge the join for it to occur. Service implementations may ignore this command, as they would only ever receive it if an SAJOIN was targeted at a service client, in which case it should be ignored...</p>
|
||||
<h2><a name="S5_8"></a>5.8 SAPART - Channel Force Part (TOKEN: AY)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AY <i>targetuser</i> <i>#channel</i>[ :<i>reason</i>]</tt></p>
|
||||
<p>This requests the forced part of targetuser from #channel. This is slightly different from a KICK in that the user's removal is announced with PART. The server to which targetuser is connected to must actually acknowledge the part for it to occur. Service implementations may ignore this command, as they would only ever receive it if an SAPART was targeted at a service client, in which case it should be ignored...</p>
|
||||
<p>The reason field is optional. If provided the acknowledging PART message should prefix the message with "SAPart:".</p>
|
||||
<h2><a name="S5_9"></a>5.9 SAMODE - Channel Force Mode (TOKEN: o)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> o <i>#channel</i> <i>modechange</i> <i>modeparams</i></tt></p>
|
||||
<p>This has the same parameters as for MODE. The only difference is that servers probably will never receive this (but is best to document just in case), and that absolutely NO permission checking is done on anything.</p>
|
||||
<h2><a name="S5_10"></a>5.10 TOPIC - Channel Topic (TOKEN: ) )</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> ) <i>#channel</i> <i>nick</i> <i>timestamp</i> :<i>topic</i></tt></p>
|
||||
<p>Changes the channel topic information. This format is used when synching, as well as when a topic is changed normally. Nick is the user who changed the topic (depending on compile options, it can be just nick or a full nick!user@host), timestamp is when the change occured, and topic is the new topic text. Normally, only a newer timestamp will actually change the topic, but a U:Lined server can use an older timestamp as well (such as for TOPICLOCK).
|
||||
<hr/>
|
||||
<h1><a name="S6"></a>6 Services Commands</h1>
|
||||
<p>These are commands typically employed by a service implementation, in addition to some of the normal commands. All of the commands listed here require the sender to be correctly U:Lined. This means that the services server name must appear within a ulines {} block in the unrealircd.conf configuration for ALL servers in the network. All servers and clients behind a U:Lined server are themselves U:Lined.</p>
|
||||
<h2><a name="S6_1"></a>6.1 SVSKILL - Force Disconnect by Service (TOKEN: h)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> h <i>target</i> :<i>reason</i></tt></p>
|
||||
<p>This command is similar to KILL but differs in several ways. First of all: there is no mutilation of the reason value. The reason given is the exact reason used to generate QUIT messages sent to users. Second, it is silent; no server notice is generated in response to this command. Third, it can only be used by a U:Lined server or client (such as services).</p>
|
||||
<p>Because this command can be dangerous in the hands of an abusive person, service implementations should avoid granting humans control over the reason parameter. In cases of commands where a person has control over such parameter, either use a regular KILL instead, or otherwise modify the reason so that operators can be held accountable if necessary.</p>
|
||||
<h2><a name="S6_2"></a>6.2 SVSMODE, SVS2MODE - Force User Mode Change (TOKEN: n or v)</h2>
|
||||
<p><b>Syntax (SVSMODE):</b> <tt>:<i>source</i> n <i>target</i> +<i>usermodes</i></tt></p>
|
||||
<p><b>Syntax (SVS2MODE):</b> <tt>:<i>source</i> v <i>target</i> +<i>usermodes</i></tt></p>
|
||||
<p>Judging by these commands alone, you'd think they are identical. Both commands force a usermode change to occur. This is typically used by services to set +r on a user who has successfully identified. They differ in that SVS2MODE also sends the mode change to the user, while SVSMODE does not (hidden mode change).</p>
|
||||
<p>SVSMODE and SVS2MODE also give special treatment to usermode +d. Rather than setting the deaf mode like you might expect, SVS(2)MODE +d allows services to change a user's services stamp (which is given in the NICK message). This could allow services to set the service stamp to an easily identifiable value that could then be used to say "hey, this person identified already". The syntax of this is: +d <i>newservicestamp</i> and can be combined with setting other usermodes as well. The deaf mode <b>can</b> be set by using +d without the service stamp parameter; however, in this case you <b>cannot</b> set the service stamp in the same SVS(2)MODE message.</p>
|
||||
<p><b>Note:</b> Do <b>NOT</b> use SVSMODE to remove IRCop status from a user. Use the SVSO command for that instead.</p>
|
||||
<p>Alternatively, target can name a channel. In this case, the mode change parameter can consist of a - character, followed by any or all of: b, e, I, q, a, o, h, or v. These characters cause the corresponding lists to be cleared of all entries. For example: SVSMODE #channel -b removes ALL bans from #channel, and SVSMODE #channel -qaohv turns ALL users on #channel into normal users (removes all owner, admin, op, halfop, and voice status). In this case, the uplink will acknowledge with a MODE listing the bans, etc that were removed.</p>
|
||||
<p>To completely clear a channel of all modes: MODE #channel -cfijklmnprstzACGMKLNOQRSTVu (plus any added by third-party module) followed by SVSMODE #channel -beIqaohv.</p>
|
||||
<h2><a name="S6_3"></a>6.3 SVSSNO, SVS2SNO - Forced SNomask Change (TOKEN: BV or BW)</h2>
|
||||
<p><b>Syntax (SVSSNO):</b> <tt>:<i>source</i> BV <i>target</i> +<i>snomasks</i></tt></p>
|
||||
<p><b>Syntax (SVS2SNO):</b> <tt>:<i>source</i> BW <i>target</i> +<i>snomask</i></tt></p>
|
||||
<p>Changes a user's snomasks. The difference between SVSSNO and SVS2SNO is the same as with SVSMODE versus SVS2MODE. If the user is not +s, you must add it via SVSMODE +s. For example:</p>
|
||||
<pre>:OperServ v someuser +s
|
||||
:OperServ BW someuser +ks</pre>
|
||||
<h2><a name="S6_4"></a>6.4 SVSNICK - Forced Nick Change (TOKEN: e)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> e <i>target</i> <i>newnick</i> :<i>newtimestamp</i></tt></p>
|
||||
<p>Forces the specified user to change his nick to newnick and also sets the nick timestamp to newtimestamp (so, for example, services could protect identified users from a nick collision by simply setting the nick timestamp to something way less than "now" - though currently this requires actually changing the nick too). SVSNICK requires the server to which the target is connected to acknowledge the nick change. If the user specified by newnick already exists, then target will be disconnected (even if it's something like a case-change).</p>
|
||||
<h2><a name="S6_5"></a>6.5 SVSJOIN - Forced Join (TOKEN: BX)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BX <i>target</i> <i>#channel</i></tt></p>
|
||||
<p>This is identical to SAJOIN with a few exceptions: 1) It is U:Line-only. 2) No opernotice on use. 3) Bans and restricting modes are respected, a prior INVITE message must be sent to cause bans to be ignored.</p>
|
||||
<h2><a name="S6_6"></a>6.6 SVSPART - Forced Part (TOKEN: BT)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BT <i>target</i> <i>#channel</i> :<i>reason</i></tt></p>
|
||||
<p>Also identical to SAPART with a few exceptions: no static prefix on the optional part reason, and no global notice, and requires a U:Line. Usage recommendation of SVSPART versus KICK is the same as for SVSKILL versus KILL.</p>
|
||||
<h2><a name="S6_7"></a>6.7 SVSO - Oper Permissions (TOKEN: BB)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BB <i>target</i> <i>flagchanges</i></tt></p>
|
||||
<p>This allows a service to add or remove IRCop permission flags for a user. Flagchanges is formatted similar to that of MODE with the exception that operflags are used instead of usermodes. If the change string consists only of -, then all oper permissions, usermodes, and snomasks are removed (as if the user had himself typed MODE nick -Oo).</p>
|
||||
<p>If you are granting IRCop permissions to a user who is not currently an IRCop, you should follow up with an SVSMODE +o or SVSMODE +O as appropriate. For example:</p>
|
||||
<pre>:OperServ BB somenick +o
|
||||
:OperServ BW somenick +cefknoqsSv
|
||||
:OperServ AL somenick local.oper.somethinghere.net
|
||||
:OperServ v somenick +Ohs </pre>
|
||||
<h2><a name="S6_8"></a>6.8 SVSNOOP - Oper Lockdown (TOKEN: f)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> f <i>(op)</i><i>server.name</i></tt></p>
|
||||
<p>The (op) parameter is either a + or - indicating if NOOP mode should be activated (+) or deactivated (-). When NOOP mode is activated, all IRCops on the server are deopered (including local operators) and the /oper command is disabled. IRCop privileges can still be granted through use of SVSO. On UnrealIRCd, it is not necessary to masskill all IRCops on the nooped server, as they are deopered automatically.</p>
|
||||
<h2><a name="S6_9"></a>6.9 SVSNLINE - RealName Ban (TOKEN: BR)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BR <i>op</i> <i>reason</i> :<i>realname mask</i></tt></p>
|
||||
<p>Op is either + (add) or - (remove). In the case of +, reason is a space-escaped string (all space chars are encoded as _). If -, reason is ignored.</p>
|
||||
<h2><a name="S6_10"></a>6.10 SVSFLINE - File Ban (TOKEN: BC)</h2>
|
||||
<p><b>Syntax (add):</b> <tt>:<i>source</i> BC + <i>filemask</i> :<i>reason</i></tt></p>
|
||||
<p><b>Syntax (remove):</b> <tt>:<i>source</i> BC - <i>filemask</i></tt></p>
|
||||
<p><b>Syntax (clear):</b> <tt>:<i>source</i> BC *</tt></p>
|
||||
<p>Adds or removes a DCCDENY item for the specified filemask on all servers. These DCCDENYs are hard dccdenies - the /dccallow command cannot override it. The last form removes all dccdenies added via SVSFLINE.</p>
|
||||
<hr/>
|
||||
<h1><a name="S7"></a>7 Messaging</h1>
|
||||
<p>What good is Internet Relay <b>CHAT</b> if users cannot <b>CHAT</b>? This section addresses the commands through which arbitrary user messages are sent.</p>
|
||||
<h2><a name="S7_1"></a>7.1 PRIVMSG, NOTICE - Simple Message Transmission (Token: ! or B)</h2>
|
||||
<p><b>PRIVMSG Syntax:</b> <tt>:<i>source</i> ! <i>target</i> :<i>message</i></tt></p>
|
||||
<p><b>NOTICE Syntax:</b> <tt>:<i>source</i> B <i>target</i> :<i>message</i></tt></p>
|
||||
<p>Sends a messages to the given target. The target either names a single client, or identifies a list of clients in which the message is to be sent to. The available targets include:</p>
|
||||
<ul>
|
||||
<li><i>nickname</i>: Names a single user to whom the message is delivered.</li>
|
||||
<li><i>nickname</i>@<i>servermask</i>: Also names a single user, but the message will only be delivered if the user is connected to a server matching the specified servermask. This is typically used for sending messages to services. The target must not be changed at any point along the path it must travel for delivery, even up to the final receipt of the message by the target. This allows the target to know it has been sent a message in this way.</li>
|
||||
<li>#<i>channelname</i>: Sends a message to all users on the specified channel (except when channel is a moderated auditorium (+mu), in which case the wierd +mu sending behavior goes off).</li>
|
||||
<li><i>modeprefix</i>#<i>channelname</i>: Sends a message to all users on the given channel having the given status or higher. For example: + means all voices, halfops, etc.</li>
|
||||
<li>$<i>servermask</i>: Sends a message to ALL users on all servers matching the specified servermask (known as a server broadcast message). The RFC requirements of having a TLD with no wildcards is not applied to U:Lined clients.</li>
|
||||
</ul>
|
||||
<p>Unreal does not support the #hostmask format.</p>
|
||||
<h2><a name="S7_2"></a>7.2 SENDUMODE, SMO - Usermode-based Delivery (TOKEN: AP or AU)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> AU <i>umode</i> :<i>message</i></tt></p>
|
||||
<p>Sends the specified message to all users with the given mode. Only one usermode may be given. This is a server-only command if you can't tell from the sender prefix :) .</p>
|
||||
<p>The message will be displayed as coming from the receiving client's own server. It may be appropriate to add a "*** Notice (or other leader here) -- from blah:" if you wish to clarify where the message is from.</p>
|
||||
<h2><a name="S7_3"></a>7.3 SENDSNO - SNomask-based Delivery (TOKEN: Ss)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> Ss <i>snomask</i> :<i>message</i></tt></p>
|
||||
<p>Sends the specified message to all users with the given snomask. Only one snomask may be given. This is a server-only command if you can't tell from the sender prefix :) .</p>
|
||||
<p>The message will be displayed as coming from the receiving client's own server. It may be appropriate to add a "*** Notice (or other leader here) -- from blah:" if you wish to clarify where the message is from.</p>
|
||||
<h2><a name="S7_4"></a>7.4 CHATOPS - IRCop Chat (TOKEN: p)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> p :<i>message</i></tt></p>
|
||||
<p>Sends the message to all IRCops on all servers.</p>
|
||||
<h2><a name="S7_5"></a>7.5 WALLOPS - Wallop Chat (TOKEN: =)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> = :<i>message</i></tt></p>
|
||||
<p>Sends the message to all users with usermode +w, whether they are ircops or not.</p>
|
||||
<h2><a name="S7_6"></a>7.6 GLOBOPS - FailOp Chat (TOKEN: ])</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> ] :<i>message</i></tt></p>
|
||||
<p>Send the message to all IRCops with usermode +g.</p>
|
||||
<h2><a name="S7_7"></a>7.7 ADCHAT - Admin Chat (TOKEN: x)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> x :<i>message</i></tt></p>
|
||||
<p>Send the message to all Server and Network Admins (usermode +A).</p>
|
||||
<h2><a name="S7_8"></a>7.8 NACHAT - NetAdmin Chat (TOKEN: AC)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AC :<i>message</i></tt></p>
|
||||
<p>Send the message to all Network Admins (usermode +N).</p>
|
||||
<hr/>
|
||||
<h1><a name="S8"></a>8 Ban Control</h1>
|
||||
<p>Sometimes, you have the misfortune of encountering a user who has no purpose but to serve as an annoyance to your server or network. These commands transmit network-wide ban information amongst each other.</p>
|
||||
<h2><a name="S8_1"></a>8.1 TKL - Master Ban Control (TOKEN: BD)</h2>
|
||||
<p>The TKL command seems to have one oddity about it: the real ban source is included in the TKL command rather than in the sender prefix. Most likely this is done for synching reasons (so that the *line ban can be credited to the proper person even if he/she is offline). For this reason, the command syntax is given without any sender prefix at all. It is still permissible to use one, however.</p>
|
||||
<h3><a name="S8_1_1"></a>8.1.1 GLINE - Network-wide user@host ban</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + G <i>userpart</i> <i>hostpart</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - G <i>userpart</i> <i>hostpart</i> <i>source</i></tt></p>
|
||||
<p>Adds and Removes Network-wide user@host bans, known as G:Lines. The GLINE command itself must not be used. The userpart and hostpart are the user portion and hostname portion of the ban mask. The expiretimestamp is 0 if the G:Line should not expire, otherwise it will expire at the given time. It is an absolute time, not relative, thus it's imperitive to have reasonably synchrnoized clocks or bans may be removed too early or even immediately!</p>
|
||||
<h3><a name="S8_1_2"></a>8.1.2 GZLINE - Network-wide IP ban</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + Z * <i>ipmask</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - Z * <i>ipmask</i> <i>source</i></tt></p>
|
||||
<p>Adds and Removes Network-wide IP bans, known as Global Z:Lines. The GZLINE command itself must not be used. Ipmask permits CIDR notation as well as wildcard masks.</p>
|
||||
<h3><a name="S8_1_3"></a>8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban (TOKEN: c or d)</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + Q <i>hold</i> <i>nickmask</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Add Syntax (SQLINE):</b> <tt>:<i>source</i> c <i>nickmask</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - Q <i>hold</i> <i>nickmask</i> <i>source</i></tt></p>
|
||||
<p><b>Remove Syntax (UNSQLINE):</b> <tt>:<i>source</i> d <i>nickmask</i></tt></p>
|
||||
<p>In the TKL syntax, the hold parameter is either a * to mark the qline as a nick ban, or an H to mark it as a services hold. A services hold does not trigger qline rejection notice, and is typically used by NickServ to reserve registered nicks until they are released by the owner. The (UN)SQLINE syntax can only be used by a server, but any user can be used as the source for the TKL syntax. Unlike G and GZ lines, Q:Lines do not cause existing matching users to be disconnected or otherwise affected.</p>
|
||||
<p>The TKL syntax is preferred, since it is more flexible, but (UN)SQLINE is permitted for compatibility.</p>
|
||||
<h3><a name="S8_1_4"></a>8.1.4 SPAMFILTER - Message Spam Filtration System</h3>
|
||||
<p>Proper use of spamfilter in TKL commands requires use of PROTOCTL TKLEXT, which increases the number of parameters allowed in TKL.</p>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + F <i>target(s)</i> <i>action</i> <i>source</i> 0 <i>settimestamp</i> <i>tklduration</i> <i>tklreason</i> :<i>regex</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - F <i>target(s)</i> <i>action</i> <i>source</i> 0 <i>settimestap</i> :<i>regex</i></tt></p>
|
||||
<p>Adds and Removes network-wide spamfilters. The SPAMFILTER command itself must not be used. See <a href="http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter">http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter</a> for a list of valid targets. For actions, a single character is used to identify the action to be taken:</p>
|
||||
<ul>
|
||||
<li>K (kill) - The user is simply disconnected, with the reason given.</li>
|
||||
<li>S (tempshun) - A temporary shun is placed on the user. This shun is applied only to that user, and disappears if the user reconnects.</li>
|
||||
<li>s (shun) - A regular shun on the user's IP address is added. This causes all users with the same hostname to be shunned, but they will also stay shunned if they reconnect.</li>
|
||||
<li>k (kline) - A K:Line is added on the user's IP address.</li>
|
||||
<li>z (zline) - A Z:Line is added on the user's IP address.</li>
|
||||
<li>g (gline) - A G:Line is added on the user's IP address.</li>
|
||||
<li>Z (gzline) - A Global Z:Line is added on the user's IP address.</li>
|
||||
<li>b (block) - Messages (or users!) matching the filter are simply blocked.</li>
|
||||
<li>d (dccblock) - The user is prevented from sending files using DCC for the remainder of his session (in other words, until he quits).</li>
|
||||
<li>v (viruschan) - User is removed from all channels, joined to the viruschan as defined in conf, and cannot message anything but that channel.</li>
|
||||
<li>w (warn) - No action on the user is taken. Only the Spamfilter notice is sent to opers with snomask +S.</li>
|
||||
</ul>
|
||||
<h1><a name="S9">9 Base64 Tables</a></h1>
|
||||
<p>Unreal uses base64 encoding to allow saving bandwidth by encoding numbers in a more compact format. Unreal uses two different variations of base64, one used for the SJB64 PROTOCTL option (in NICK and SJOIN), and one used for NICKIP.</p>
|
||||
<h2><a name="S9_1">9.1 Table for SJB64 (NICK and SJOIN).</a></h2>
|
||||
<p>In NICK and SJOIN, remember that the timestamp will be prefixed with ! to signal a base64 timestamp.</p>
|
||||
<p>Just like in base10, the least significant "digit" is last.</p>
|
||||
<pre> 0 0 17 H 34 Y 51 p
|
||||
1 1 18 I 35 Z 52 q
|
||||
2 2 19 J 36 a 53 r
|
||||
3 3 20 K 37 b 54 s
|
||||
4 4 21 L 38 c 55 t
|
||||
5 5 22 M 39 d 56 u
|
||||
6 6 23 N 40 e 57 v
|
||||
7 7 24 O 41 f 58 w
|
||||
8 8 25 P 42 g 59 x
|
||||
9 9 26 Q 43 h 60 y
|
||||
10 A 27 R 44 i 61 z
|
||||
11 B 28 S 45 j 62 {
|
||||
12 C 29 T 46 k 63 }
|
||||
13 D 30 U 47 l
|
||||
14 E 31 V 48 m
|
||||
15 F 32 W 49 n
|
||||
16 G 33 X 50 o</pre>
|
||||
<h2><a name="S9_2">9.2 Table for NICKIP.</a></h2>
|
||||
<p>In this table, the IP is encoded in network byte order. In terms of IPs, this means the first byte of the address really is first. Each "digit" in the base64 encoded IP corresponds to 6 bits of the IP address.</p>
|
||||
<p>An IPv4 address is 32 bits, so 6 base64 "digits" are needed. Since base64 requires values to come in multiples of 4 "digits", padding characters (=) need to be added if a value comes up short. In the case of IPv4 addresses, two are needed.</p>
|
||||
<p>IPv6 addresses are 128-bit. They therefore need 22 base64 "digits" plus 2 pad characters.</p>
|
||||
<pre> 0 A 17 R 34 i 51 z
|
||||
1 B 18 S 35 j 52 0
|
||||
2 C 19 T 36 k 53 1
|
||||
3 D 20 U 37 l 54 2
|
||||
4 E 21 V 38 m 55 3
|
||||
5 F 22 W 39 n 56 4
|
||||
6 G 23 X 40 o 57 5
|
||||
7 H 24 Y 41 p 58 6
|
||||
8 I 25 Z 42 q 59 7
|
||||
9 J 26 a 43 r 60 8
|
||||
10 K 27 b 44 s 61 9
|
||||
11 L 28 c 45 t 62 +
|
||||
12 M 29 d 46 u 63 /
|
||||
13 N 30 e 47 v
|
||||
14 O 31 f 48 w (pad) =
|
||||
15 P 32 g 49 x
|
||||
16 Q 33 h 50 y</pre>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,9 +1,8 @@
|
||||
Token List (c) 2002-2004 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2.3)
|
||||
|
||||
Command Token
|
||||
------------------------------------------------------------------------------------------------
|
||||
PRIVATE !
|
||||
PRIVMSG !
|
||||
WHOIS #
|
||||
NICK &
|
||||
SERVER '
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2-beta11)
|
||||
|
||||
Protocol Version
|
||||
------------------------------------------------------------------------------------------------
|
||||
2308 3.2.5
|
||||
2307 3.2.4
|
||||
2306 3.2.3
|
||||
2305 3.2.2
|
||||
2304 3.2.1
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
NOTE: For 3.3* we are not maintaining translated documents until reaching alpha or
|
||||
beta1 status.
|
||||
|
||||
==[ Translations ]============================================================
|
||||
|
||||
Starting with the release of Unreal 3.2 we have begun accepting translated
|
||||
|
||||
+254
-97
@@ -12,7 +12,7 @@
|
||||
.block_old { font-size: 14; }
|
||||
.set { font-weight: bold; }
|
||||
.desc { margin-left: 15px; }
|
||||
pre { font: "times new roman"; font-style: normal;}
|
||||
pre { font: "times new roman"; font-style: normal; background-color: #eeeeee;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -21,23 +21,24 @@
|
||||
<a href="unreal32docs.es.html">Spanish</a> |
|
||||
<a href="unreal32docs.hu.html">Hungarian</a> |
|
||||
<a href="unreal32docs.fr.html">French</a> |
|
||||
<a href="unreal32docs.gr.html">Greek</a>
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<br><br>
|
||||
|
||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
|
||||
<font size="4">Version: 3.2.3 </font><br>
|
||||
<b>Letztes Dokumentation Update:</b> 2005-03-13</div>
|
||||
<font size="4">Version: 3.2.5 </font><br>
|
||||
<b>Letztes Update dieses Handbuchs:</b> 2006-06-15</div>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Dokumentation</b><b>:</b> CKnight^ / Syzop<br>
|
||||
<b>Deutsche Übersetzung:</b> Stylus740 (irc.smart-irc.net)<br>
|
||||
<p>Aufgrund des wachsenden Umfangs der Dokumentation von UnrealIRCd3.2 wurde das
|
||||
Dokument auf HTML umgestellt, um leichter navigieren und besser
|
||||
Querverweisen folgen zu können. Um diese Dokumentation zu lesen, wird einer der
|
||||
nachfolgenden Browser benötigt. Aktuelle Dokumentationen sind erhältlich @ <a href="http://www.vulnscan.org/UnrealIrcd/unreal32docs.html">http://www.vulnscan.org/UnrealIrcd/unreal32docs.html</a>
|
||||
und eine FAQ @
|
||||
<a href="http://www.vulnscan.org/UnrealIrcd/faq/.">http://www.vulnscan.org/UnrealIrcd/faq</a>/.</p>
|
||||
<p>Um diese Dokumentation zu lesen, ist einer der unten aufgeführten
|
||||
kompatiblen Browser erforderlich. Aktuelle Dokumentationen sind erhältlich @
|
||||
<a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
|
||||
und eine FAQ @ <a href="http://www.vulnscan.org/UnrealIRCd/faq/.">http://www.vulnscan.org/UnrealIRCd/faq</a>/.</p>
|
||||
<p><b>Kompatible Browser: </b><br>
|
||||
<ul>
|
||||
<li>Opera 6.02
|
||||
@@ -68,9 +69,11 @@ und eine FAQ @
|
||||
-- 3.14. <a href="#feature_spamfilter"> Spamfilter</a><br>
|
||||
-- 3.15. <a href="#feature_cidr">CIDR<br>
|
||||
</a>
|
||||
-- 3.16. <a href="#feature_nickchars">Nick Zeichensätze</a><a href="#feature_cidr"><br>
|
||||
-- 3.16. <a href="#feature_nickchars">Nick Zeichensätze<br>
|
||||
</a>-- 3.17 <a href="#feature_cgiirc">CGI:IRC Unterstützung<br>
|
||||
</a>-- 3.18 <a href="#feature_timesync">Zeitsynchronisation</a><a href="#feature_cidr"><br>
|
||||
</a>
|
||||
-- 3.17. <a href="#feature_other">Andere Features</a> <a href="#feature_other"><br>
|
||||
-- 3.19. <a href="#feature_other">Andere Features</a> <a href="#feature_other"><br>
|
||||
</a>
|
||||
4. <a href="#configuringyourunrealircdconf">Konfiguration der unrealircd.conf
|
||||
Datei</a><br>
|
||||
@@ -109,8 +112,9 @@ Konfigurationsdatei</a><br>
|
||||
---4.32. <a href="#aliasblock">Alias Block</a><br>
|
||||
---4.33. <a href="#helpblock">Help Block<br>
|
||||
</a>---4.34. <a href="#officialchannels"> Official Channels Block</a><br>
|
||||
---4.35. <a href="#spamfilter"> Spamfilter Block</a><br>
|
||||
---4.36. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
||||
---4.35. <a href="#spamfilter"> Spamfilter Block<br>
|
||||
</a>---4.36. <a href="#cgiirc">Cgiirc Block</a><br>
|
||||
---4.37. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
||||
5. <a href="#addtlfiles">Additional Files</a><br>
|
||||
6. <a href="#userchannelmodes">User & Channel Modi</a><br>
|
||||
7. <a href="#useropercommands">User & Oper Befehlsliste<br>
|
||||
@@ -148,15 +152,15 @@ Verwendung des Textes mit anderer Software oder das Anbieten zusammen mit
|
||||
anderer Software ohne schriftliche Genehmigung des UnrealIRCd Entwicklungsteams
|
||||
ist streng verboten. Solange es der Benutzung von UnrealIRCd dient, darf dieses
|
||||
Dokument beliebig kopiert/gedruckt/veröffentlicht, jedoch nicht verändert
|
||||
werden. – Copyright UnrealIRCd Development Team 2002-2005</p>
|
||||
werden. – Copyright UnrealIRCd Development Team 2002-2006</p>
|
||||
<p>Bitte lesen Sie diese Anleitung, bevor Sie um Hilfe bitten und schauen Sie
|
||||
WIRKLICH erst ein mal in die <a href="#faq">FAQ</a>, da rund 80% der Fragen dort
|
||||
WIRKLICH erst einmal in die <a href="#faq">FAQ</a>, da rund 80% der Fragen dort
|
||||
beantwortet sind. Hilft
|
||||
dies alles nicht, kann bzgl. Support bei irc.ircsystems.net
|
||||
(Port 6667) Channel #unreal-support
|
||||
nach Unterstützung gefragt werden (Wir erwarten UNBEDINGT, dass zuvor Dokumentation
|
||||
und
|
||||
FAQ gelesen wurden und wir helfen nur zu UnrealIRCd, nicht zu Services!). Im Falle eines echten Bugs (z.B. einem Crash) bitte Nachricht an
|
||||
und <a href="#faq">
|
||||
FAQ</a> gelesen wurden und wir helfen nur zu UnrealIRCd, nicht zu Services!). Im Falle eines echten Bugs (z.B. einem Crash) bitte Nachricht an
|
||||
<a href="http://bugs.unrealircd.org" TARGET="_blank">http://bugs.unrealircd.org</a>.</p></div>
|
||||
|
||||
<p><font size="+2"><b><a name="notesonolder">1.1 – Anmerkungen zu Upgrade/Mixing 3.1.x -> 3.2</a> </b></font><br>
|
||||
@@ -179,7 +183,7 @@ Upgrade von 3.2 Versionen</a></b></font><br>
|
||||
<p>Der empfohlene Weg für ein Upgrade ist:<br>
|
||||
Linux:<br>
|
||||
<ul>
|
||||
<li>Altes UnrealIRCd Verzeichnis umbenennen (oder es wird im nächsten Schritt
|
||||
<li>Altes UnrealIRCd Verzeichnis umbenennen (ansonsten wird es im nächsten Schritt
|
||||
überschrieben)
|
||||
<li>Neue UnrealIRCd Version entpacken und "./Config" und "make"
|
||||
laufen lassen (*NIX).
|
||||
@@ -205,6 +209,8 @@ Bug gemeldet wird!</p></div>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9,10)
|
||||
</ul>
|
||||
<li><b>Windows Versionen:</b>
|
||||
@@ -223,12 +229,12 @@ Bug gemeldet wird!</p></div>
|
||||
</ul>
|
||||
<br>
|
||||
Im Falle, dass Unreal3.2 korrekt unter anderen Betriebssystemen läuft, bitte
|
||||
Details an <a href="mailto:coders@lists.unrealircd.com">coders@lists.unrealircd.com
|
||||
Details an <a href="mailto:coders@lists.unrealircd.org">coders@lists.unrealircd.org
|
||||
</a> senden. <p><b>Installationsanleitungen</b><br>
|
||||
Linux:<br>
|
||||
<ol>
|
||||
<li>gunzip -d Unreal3.2.2.tar.gz
|
||||
<li>tar xvf Unreal3.2.2.tar
|
||||
<li>gunzip -d Unreal3.2.X.tar.gz
|
||||
<li>tar xvf Unreal3.2.X.tar
|
||||
<li>cd Unreal3.2
|
||||
<li>./Config
|
||||
<li>Die hierbei angezeigten Fragen nach bestem Wissen beantworten. Allgemein ist
|
||||
@@ -252,7 +258,8 @@ erl
|
||||
die .conf Datei bezogen wird (die Neuanfängern momentan noch unbekannt sein
|
||||
dürfte).</p>
|
||||
<p>Dieser Abschnitt kann auch übersprungen werden, obwohl es sinnvoll ist ihn
|
||||
vor oder nach der Installation zu lesen.</p></div>
|
||||
vor oder nach der Installation zu lesen, weil man ansonsten Konzepte wie
|
||||
cloaking, snowmask etc. nicht verstehen wird..</p></div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_cloaking">3.1 - Cloaking</a></b></font></p><div class="desc">
|
||||
<p>Das Cloaking ist eine Möglichkeit, den echten Hostnamen vor Usern zu verbergen.
|
||||
@@ -269,7 +276,7 @@ einstellen k
|
||||
Modul mitgeliefert:<br>
|
||||
<b>cloak:</b><br>
|
||||
Hierbei handelt es sich um das neue offizielle Cloaking Modul, welches viel
|
||||
sicherer, als der alte Algorithmis ist. Es verwendet intern md5 und erfordert, dass 3
|
||||
sicherer, als der alte Algorithmus ist. Es verwendet intern md5 und erfordert, dass 3
|
||||
<b>set::cloak-keys::</b>
|
||||
gesetzt sind, die gemischt Kleinbuchstaben (a-z), Großbuchstaben (A-Z) und
|
||||
Ziffern (0-9) enthalten [z.B. "AopAS6WQH2Os6hfosh4SFJHs"] . Siehe auch
|
||||
@@ -283,13 +290,13 @@ Host ermitteln (was dem Usermodus +x sinnlos macht).</p>
|
||||
<p>UnrealIRCd unterstützt Module, was sehr nützlich
|
||||
ist, weil:<br>
|
||||
- Module können bei laufendem ircd geladen/ersetzt/gelöscht werden (durch /rehash). Dadurch können verschiedene Bugs gefixt
|
||||
oder neue Module hinzugefügt werden, ohne dass ein Neustart erforderlich ist!<br>
|
||||
oder neue Module hinzugefügt werden, ohne dass ein Neustart erforderlich ist.<br>
|
||||
- Andere Entwickler können weitere Module mit neuen Befehlen oder anderen
|
||||
Usermodi erstellen.<br>
|
||||
UnrealIRCd selbst enthält nur wenige Module. Durch eine Suche auf <a href="http://www.unrealircd.com"> www.unrealircd.com</a>
|
||||
(modules) oder per Google können weitere 3rd party Module gefunden werden.</p>
|
||||
<p>Achtung: Minimal müssen zwei Module geladen sein, oder der ircd wird nicht
|
||||
starten!<br>
|
||||
starten:<br>
|
||||
- das commands Modul: commands.so (oder commands.dll bei Windows)<br>
|
||||
- das cloaking Modul: üblicherweise cloak.so (oder cloak.dll bei Windows)</p>
|
||||
</div>
|
||||
@@ -338,7 +345,7 @@ die beispielsweise den Befehl <font face="Courier New" size="2">/register</font>
|
||||
an Chanserv weiterleitet, wenn der erste Parameter mit einem # beginnt oder an
|
||||
Nickserv, wenn der erste Parameter nicht mit einem # beginnt. (Im ersten Fall
|
||||
soll ein Channel registriert werden, im zweiten Fall ein Nickname)</p>
|
||||
<p>Aliases werden in alias Blocks in der Konfigurationsdatei definiert oder in
|
||||
<p>Aliases werden in <a href="#aliasblock"> alias Blocks</a> in der Konfigurationsdatei definiert oder in
|
||||
einer Include Datei mit den häufigsten Default Aliassen. </p></div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_helpop">3.5 - Helpop</a></b></font></p><div class="desc">
|
||||
@@ -1002,45 +1009,51 @@ und fe80:0:0:123::/64 (passt auf fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:f
|
||||
Zeichensätze/Sprachen in Nicknamen gestattet sein sollen. Dies wird festgelegt
|
||||
in <b> set::allowed-nickchars</b>.<br>
|
||||
Hier eine Liste der möglichen Einstellungen:<br>
|
||||
<table border="1" width="868">
|
||||
<tr><td width="98"><b>Name:</b></td> <td width="494"><b>Beschreibung:</b></td> <td width="254"><b>Character set/encoding:</b></td></tr>
|
||||
<tr><td width="98">catalan</td> <td width="494">Katalanische Zeichen</td> <td width="254">iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">danish</td> <td width="494"> Dänische Zeichen</td> <td width="254"> iso8859-1
|
||||
<table border="1" width="868" height="902">
|
||||
<tr><td width="98" height="19"><b>Name:</b></td> <td width="494" height="19"><b>Beschreibung:</b></td> <td width="254" height="19"><b>Character set/encoding:</b></td></tr>
|
||||
<tr><td width="98" height="19">catalan</td> <td width="494" height="19">Katalanische Zeichen</td> <td width="254" height="19">iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">danish</td> <td width="494" height="19"> Dänische Zeichen</td> <td width="254" height="19"> iso8859-1
|
||||
(latin1)</td></tr>
|
||||
<tr><td width="98">dutch</td> <td width="494"> Niederländische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">french</td> <td width="494"> Französische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">german</td> <td width="494"> Deutsche Zeichen </td> <td width="254">iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">swiss-german</td> <td width="494"> Schweiz-Deutsche Zeichen
|
||||
(kein 'ß')</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">icelandic </td> <td width="494">Isländische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">italian</td> <td width="494"> Italienische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">spanish</td> <td width="494"> Spanische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">swedish</td> <td width="494"> Schwedische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98"><b>latin1</b></td> <td width="494"> katalanisch, dänisch, niederländisch, französisch, deutsch, schweizer deutsch, spanisch,
|
||||
isländisch, italienisch, schwedisch</td> <td width="254"> iso8859-1 (latin1)
|
||||
<tr><td width="98">hungarian</td> <td width="494"> Ungarische Zeichen </td> <td width="254"> iso8859-2 (latin2), windows-1250</td></tr>
|
||||
<tr><td width="98">polish</td> <td width="494"> Polnische Zeichen <td width="254"> iso8859-2 (latin2)</td></tr>
|
||||
<tr><td width="98">romanian</td> <td width="494"> Rumänische Zeichen <td width="254"> iso8859-2 (latin2), windows-1250, iso8859-16</td></tr>
|
||||
<tr><td width="98"><b>latin2</b></td> <td width="494"> ungarisch, polnisch,
|
||||
rumänisch <td width="254"> iso8859-2 (latin2)</td></tr>
|
||||
<tr><td width="98">polish-w1250</td> <td width="494"> Polnische Zeichen,
|
||||
Windows Variante (leider mehr allgemein, als iso)<td width="254"> windows-1250</td></tr>
|
||||
<tr><td width="98">slovak-w1250</td> <td width="494"> Slowakische Zeichen,
|
||||
Windows Variante<td width="254"> windows-1250</td></tr>
|
||||
<tr><td width="98">czech-w1250</td> <td width="494"> Tschechische Zeichen,
|
||||
Windows Variante <td width="254">windows-1250</td></tr>
|
||||
<tr><td width="98"><b>windows-1250</b></td> <td width="494"> polnisch-w1250,
|
||||
slowakisch-w1250, tschechisch-w1250, ungarisch, rumänisch <td width="254">windows-1250</td></tr>
|
||||
<tr><td width="98">greek</td> <td width="494"> Griechische Zeichen <td width="254">iso8859-7</td></tr>
|
||||
<tr><td width="98">turkish</td> <td width="494"> Türkische Zeichen <td width="254">iso8859-9</td></tr>
|
||||
<tr><td width="98">russian-w1251</td> <td width="494"> Russische Zeichen <td width="254">windows-1251</td></tr>
|
||||
<tr><td width="98">hebrew</td> <td width="494"> Hebräische Zeichen <td width="254">iso8859-8-I/windows-1255</td></tr>
|
||||
<tr><td width="98">chinese-simp</td> <td width="494"> Einfaches Chinesisch <td width="254">Multibyte: GBK/GB2312</td></tr>
|
||||
<tr><td width="98">chinese-trad</td> <td width="494"> Traditionelles
|
||||
Chinesisch <td width="254">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98">chinese-ja</td> <td width="494"> Japanisch Hiragana/Pinyin <td width="254">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98"><b>chinese</b></td> <td width="494"> chinese-* <td width="254">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98"><b>gbk</b></td> <td width="494"> chinese-* <td width="254">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98" height="19">dutch</td> <td width="494" height="19"> Niederländische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">french</td> <td width="494" height="19"> Französische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">german</td> <td width="494" height="19"> Deutsche Zeichen </td> <td width="254" height="19">iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">swiss-german</td> <td width="494" height="19"> Schweiz-Deutsche Zeichen
|
||||
(kein 'ß')</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">icelandic </td> <td width="494" height="19">Isländische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">italian</td> <td width="494" height="19"> Italienische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">spanish</td> <td width="494" height="19"> Spanische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">swedish</td> <td width="494" height="19"> Schwedische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="57"><b>latin1</b></td> <td width="494" height="57"> katalanisch, dänisch, niederländisch, französisch, deutsch, schweizer deutsch, spanisch,
|
||||
isländisch, italienisch, schwedisch</td> <td width="254" height="57"> iso8859-1 (latin1)
|
||||
<tr><td width="98" height="19">hungarian</td> <td width="494" height="19"> Ungarische Zeichen </td> <td width="254" height="19"> iso8859-2 (latin2), windows-1250</td></tr>
|
||||
<tr><td width="98" height="19">polish</td> <td width="494" height="19"> Polnische Zeichen <td width="254" height="19"> iso8859-2 (latin2)</td></tr>
|
||||
<tr><td width="98" height="38">romanian</td> <td width="494" height="38"> Rumänische Zeichen <td width="254" height="38"> iso8859-2 (latin2), windows-1250, iso8859-16</td></tr>
|
||||
<tr><td width="98" height="19"><b>latin2</b></td> <td width="494" height="19"> ungarisch, polnisch,
|
||||
rumänisch <td width="254" height="19"> iso8859-2 (latin2)</td></tr>
|
||||
<tr><td width="98" height="38">polish-w1250</td> <td width="494" height="38"> Polnische Zeichen,
|
||||
Windows Variante (leider mehr allgemein, als iso)<td width="254" height="38"> windows-1250</td></tr>
|
||||
<tr><td width="98" height="19">slovak-w1250</td> <td width="494" height="19"> Slowakische Zeichen,
|
||||
Windows Variante<td width="254" height="19"> windows-1250</td></tr>
|
||||
<tr><td width="98" height="19">czech-w1250</td> <td width="494" height="19"> Tschechische Zeichen,
|
||||
Windows Variante <td width="254" height="19">windows-1250</td></tr>
|
||||
<tr><td width="98" height="38"><b>windows-1250</b></td> <td width="494" height="38"> polnisch-w1250,
|
||||
slowakisch-w1250, tschechisch-w1250, ungarisch, rumänisch <td width="254" height="38">windows-1250</td></tr>
|
||||
<tr><td width="98" height="19">greek</td> <td width="494" height="19"> Griechische Zeichen <td width="254" height="19">iso8859-7</td></tr>
|
||||
<tr><td width="98" height="19">turkish</td> <td width="494" height="19"> Türkische Zeichen <td width="254" height="19">iso8859-9</td></tr>
|
||||
<tr><td width="98" height="19">russian-w1251</td> <td width="494" height="19"> Russische Zeichen <td width="254" height="19">windows-1251</td></tr>
|
||||
<tr><td width="98" height="19">belarussian-w1251</td> <td width="494" height="19"> Belarussische
|
||||
Zeichen <td width="254" height="19">windows-1251</td></tr>
|
||||
<tr><td width="98" height="19">ukrainian-w1251</td> <td width="494" height="19"> Ukrainische
|
||||
Zeichen <td width="254" height="19">windows-1251</td></tr>
|
||||
<tr><td width="98" height="1"><b>windows-1251</b></td> <td width="494" height="26"> russisch-w1251,
|
||||
belarussisch-w1251, ukrainisch-w1251 <td width="254" height="26">windows-1251</td></tr>
|
||||
<tr><td width="98" height="19">hebrew</td> <td width="494" height="19"> Hebräische Zeichen <td width="254" height="19">iso8859-8-I/windows-1255</td></tr>
|
||||
<tr><td width="98" height="19">chinese-simp</td> <td width="494" height="19"> Einfaches Chinesisch <td width="254" height="19">Multibyte: GBK/GB2312</td></tr>
|
||||
<tr><td width="98" height="19">chinese-trad</td> <td width="494" height="19"> Traditionelles
|
||||
Chinesisch <td width="254" height="19">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98" height="19">chinese-ja</td> <td width="494" height="19"> Japanisch Hiragana/Pinyin <td width="254" height="19">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98" height="19"><b>chinese</b></td> <td width="494" height="19"> chinese-* <td width="254" height="19">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98" height="19"><b>gbk</b></td> <td width="494" height="19"> chinese-* <td width="254" height="19">Multibyte: GBK</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Anmerkung 1: Zu beachten ist, dass einige Kombinationen Probleme verursachen können.
|
||||
@@ -1054,9 +1067,9 @@ Anmerkung 2: Die
|
||||
welchem Kleinbuchstaben gehört, erfolgt nach dem US-ASCII, was bedeutet, dass
|
||||
ö und Ö nicht als 'gleiches Zeichen' erkannt werden und deswegen jemand
|
||||
beispielsweise den Nick Bär haben kann, während jemand anderes gleichzeitig
|
||||
den Nick BÄr hat. Das ist eine Einschränkung durch das aktuelle SDystem und IRCd
|
||||
den Nick BÄr hat. Das ist eine Einschränkung durch das aktuelle System und IRCd
|
||||
Standards, die nicht binnen kurzer Zeit gelöst werden können. Den Usern sollte
|
||||
diese Enschränkung klar sein. Zu beachten dabei ist, dass es diese
|
||||
diese Einschränkung klar sein. Zu beachten dabei ist, dass es diese
|
||||
Einschränkung schon immer bei den Channelnamen gegeben hat, in denen ja fast
|
||||
alle Zeichen erlaubt sind und schon immer die US-ASCII Regeln der
|
||||
Zeichenübereinstimmung gegolten haben.<br>
|
||||
@@ -1064,6 +1077,7 @@ Zeichen
|
||||
Anmerkung 3: Die Basis Nick Zeichen (a-z A-Z 0-9 [ \ ] ^ _ - { | }) sind immer
|
||||
erlaubt/aktiviert.<br>
|
||||
<br>
|
||||
<br>
|
||||
Beispiel 1, für West-Europäer:<br>
|
||||
<br>
|
||||
<font face="Courier">
|
||||
@@ -1076,7 +1090,41 @@ Schriftzeichen gestatten will:<br>
|
||||
<font face="Courier">
|
||||
set { allowed-nickchars { chinese-simp; chinese-trad; }; };</font></div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_other">3.17 - Andere Features</a></b></font></p><div class="desc">
|
||||
<p><font size="+2"><b><a name="feature_cgiirc">3.17 - CGI:IRC Unterstützung</a></b></font></p><div class="desc">
|
||||
UnrealIRCD unterstützt eine CGI:IRC Host Manipulation. Das bedeutet: Man kann
|
||||
bestimmte CGI:IRC Gateways als "trusted" ("vertraut")
|
||||
festlegen, wodurch der IRCd veranlasst wird, statt Host/IP des CGI:IRC Gatewäys
|
||||
überall im IRC die reale Host/IP des Users anzuzeigen.
|
||||
<p>Nähere Informationen, wie dies konfiguriert wird, stehen im <a href="#cgiirc">cgiirc
|
||||
Block</a> </div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_timesync">3.18 - Zeitsynchronisation</a></b></font></p>
|
||||
<div class="desc">
|
||||
<p>Es ist für die IRC Server sehr wichtig, immer die korrekte Zeit
|
||||
eingestellt zu haben. Ohne korrekte - insbesondere unterschiedliche Zeit
|
||||
zwischen Servern - können Channel desynchronisieren (auf verschiedenen
|
||||
Servern wird etwas anderes im gleichen Channel angezeigt), ahnungslose User
|
||||
grundlos gekillt werden, Channels gar nicht oder falsch in der /List Anzeige
|
||||
eingetragen sein. Kurzum: es entstehen sehr große Probleme.´</p>
|
||||
<p>UnrealIRCd hat eine eine Unterstützung zur Zeitsybchronisation integriert.
|
||||
Obwohl sie nicht optimal ist (die Zeiten können weiterhin um wenige Sekunden
|
||||
differieren), sollten damit die meisten Zeitunterschiede beseitigt werden.
|
||||
Soweit möglich ist es weiterhin empfehlenswert, eine Zeitsynchronisations
|
||||
Software wie 'ntpd' auf *NIX Systemen oder den Zeit Synchonisations
|
||||
Service von Windosws laufen zu haben. In diesem Fall kann man die Unreal Zeitsynchronisation
|
||||
abschalten. (mehr dazu später)</p>
|
||||
<p>Per Default versucht UnrealIRCd beim Start einen Versuch der
|
||||
Zeitsynchronisation. Es werden hierzu einige Anforderungen an Zeitserver
|
||||
gesendet und sobald die erste (schnellste) Antwort empfangen wird die interne
|
||||
IRCD Uhr (NICHT die Systemuhr) danach eingestellt. Wenn aus irgendwelchen
|
||||
Gründen nicht binnen 3 Sekunden eine Zeitabfrage beantwortet wird, startet
|
||||
der IRCD ohne Zeitsynchronisation (sollte nur selten passieren).</p>
|
||||
<p>Zeitsynchronisation wird im <b>set::timesynch</b> Block konfiguriert (oder
|
||||
abgeschaltet). Siehe in der <a href="#setblock">Set-Block Beschreibung</a>
|
||||
für weitere Informationen.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_other">3.18 - Andere Features</a></b></font></p><div class="desc">
|
||||
<p>UnrealIRCd hat eine Reihe weiterer Features, die hier nicht alle einzeln
|
||||
aufgeführt sind. Man wird sie während der Konfiguration selbst herausfinden ;)</p></div>
|
||||
|
||||
@@ -1085,11 +1133,11 @@ aufgef
|
||||
der unrealircd.conf</a></b></font>
|
||||
<a name="configuringyourunrealircdconf"> </a></p><div class="desc">
|
||||
<p>Beim ersten Mal wird das Erstellen einer guten unrealircd.conf Datei eine
|
||||
gewisse Zeit in Anspruch nehmen - je nach Vorerfahrung etwa 10 - 60 Minuten. Man
|
||||
kann versuchen, so rasch wie möglich den ircd zu starten und später zu
|
||||
verfeinern oder man kann die Haupt Abschnitte Schritt für Schritt erlernen (was
|
||||
der empfohlene Weg ist ;P). Im Falle auftretender Probleme zuerst die Syntax
|
||||
überprüfen, diese Anleitung und auch die FAQ bevor man nach Hilfe fragt oder
|
||||
gewisse Zeit in Anspruch nehmen - je nach Vorerfahrung etwa 15 - 60 Minuten.
|
||||
Eine <u>gute</u> unrealircd.conf zu erstellen, wird bedeutend länger dauern.
|
||||
Man sollte nicht hetzen, um den IRCd rasch gestartet zu bekommen, sondern lieber
|
||||
Schritt für Schritt vorangehen. Im Falle auftretender Probleme zuerst die Syntax
|
||||
überprüfen, diese Anleitung und auch die <a href="#faq"> FAQ</a> bevor man nach Hilfe fragt oder
|
||||
einen Bug meldet.</p></div>
|
||||
<p><b><font size="+2"><a name="configurationfileexplained">4.1 Erklärung der
|
||||
Konfigurationsdatei<br>
|
||||
@@ -1122,7 +1170,7 @@ werden oder in mehreren Zeilen. Normalerweise wird das oben angegebene Format
|
||||
benutzt, welches leicht zu lesen ist und auch in der mitgelieferten
|
||||
unrealircd.conf benutzt wird. </p>
|
||||
<p>Achtung: Die Konfigurationsdatei ist derzeit "case sensitive",
|
||||
daher ist "BLOCK-NAME" nicht dasselbe wie "block-name". Es
|
||||
daher ist "<i>BLOCK-NAME</i>" nicht dasselbe wie "<i>block-name</i>". Es
|
||||
gibt eine spezielle Notation wie Einträge in der Konfigurationsdatei als
|
||||
Beschreibung angegeben werden. Spricht man z.B. über "<directive-name>"
|
||||
im obigen Beispiel, so wird angegeben "<block-name>::<block-directive>"
|
||||
@@ -1140,10 +1188,10 @@ einem Unterblock sein, der keinen Namen hat.</p>
|
||||
über mehrere<br>
|
||||
Zeilen */<br>
|
||||
</p>
|
||||
<p>Es sollte nun klar sein, wie das Block Format der .conf funktioniert und nun
|
||||
kann begonnen werden, eine eigene unrealircd.conf zu erstellen. Hierzu kann man
|
||||
auch dei Beispielsdatei oder Teile der Dokumentation verwenden und sich die
|
||||
entsprechenden Blöcke in die eigene Datei kopieren und editieren. Es ist
|
||||
<p>Nachdem nun klar ist, wie das funktioniert, sollte man die <i>doc/example.conf</i>
|
||||
in das UnrealIRCd Verzeichnis kopieren (z.B.: /home/user/Unreal3.2) und in <i>unrealircd.conf</i>
|
||||
umbenennen. (Oder man erstellt eine unrealircd.conf und kopiert sich die
|
||||
entsprechenden Blöcke und editieret sie). Es ist
|
||||
empfehlenswert, sich Schritt für Schritt durch alle Blöcke und diese Anleitung
|
||||
als Referenz durchzuarbeiten.</p>
|
||||
<p></p></div>
|
||||
@@ -2188,6 +2236,9 @@ angegeben, welcher Bann Typ ausgenommen werden soll. G
|
||||
gline, gzline, qline, gqline und shun, für Ausnahmen von Glines, Global Zlines,
|
||||
Qlines, Global Qlines und Shuns. Wenn das {} Format benutzt wird, können
|
||||
unterschiedliche Typen angegeben werden.</p>
|
||||
<p>Anm. des Übersetzers: Die Ausnahmen funktionieren wirklich nur bei gebanntem
|
||||
<b>breiteren </b>Host (123.123.* oder *@url). Man kann damit z.B. nicht einen
|
||||
versehentlichen Bann auf Localhost verhindern.</p>
|
||||
<p>Beispiel:
|
||||
<pre>except tkl {
|
||||
mask myident@my.isp.com;
|
||||
@@ -2290,7 +2341,7 @@ bekannt als D/d:Line)</font><div class="desc">
|
||||
Linken ausschliessen kann.<br>
|
||||
<b>deny::mask</b> definiert eine Wildcard Maske auf den Servernamen, für den
|
||||
die Regel gelten soll.<br>
|
||||
<b>deny::rule</b> ist ein sehr komplexer Ausdruck. Ein crule Ausdruck erlaubt
|
||||
<b>deny::rule</b> ist ein sehr komplexer Ausdruck. Ein rule Ausdruck erlaubt
|
||||
es, den Link sehr detailliert zu steuern und ist aufgebaut wie eine Programm
|
||||
Anweisung. Vier Operatoren werden unterstützt:<br>
|
||||
connected(<servermask>) ergibt 'wahr', wenn ein Server
|
||||
@@ -2439,7 +2490,7 @@ im Oper Block bei "oper::svhost".</p>
|
||||
</a>
|
||||
<font class="block_optional">OPTIONAL</font> <font class="block_old">(Früher
|
||||
bekannt als badwords.*.conf)</font>
|
||||
</p><div class="desc">
|
||||
</p><div class="desc" style="width: 1195; height: 374">
|
||||
<p>Syntax:
|
||||
<pre>badword <type> {
|
||||
word <text-to-match>;
|
||||
@@ -2447,14 +2498,15 @@ bekannt als badwords.*.conf)</font>
|
||||
action <replace|block>;
|
||||
};</pre>
|
||||
<p>Mit dem Badword Block kann die Liste für User- und Channelmodus +G
|
||||
bearbeitet werden, um bestimmte "badwords" zu beahandeln. <b>badword::</b>
|
||||
legt den Typ fest, wobei gültige Werte hier sind: channel, message und quit. channel
|
||||
gilt für Channel Modus +G list, message gilt für User Modus +G list, und quit
|
||||
bearbeitet werden, um bestimmte "badwords" zu behandeln. <b>badword::</b>
|
||||
legt den Typ fest, wobei hier gültige Werte sind: 'channel', 'message' und 'quit'.
|
||||
'channel'
|
||||
gilt für Channel Modus +G Liste, 'message' gilt für User Modus +G Liste, und 'quit'
|
||||
gilt für die quit Meldung. <b> badword::word</b> kann ein einfaches Wort sein
|
||||
oder ein Ausdruck, nach dem gesucht werden soll. <b>badword::replace</b> ist ein
|
||||
Ersetzungstext, der anstelle des gefundenen Badwords angezeigt wird. Wird hier
|
||||
nichts eingetragen, so wird ein gefundenes Badword durch <censored>
|
||||
erstezt. Bei <b> badword::action</b> wird angegeben, was im Falle eines
|
||||
ersezt. Bei <b> badword::action</b> wird angegeben, was im Falle eines
|
||||
gefundenen Badwords geschehen soll. Wird hier das Wort "replace"
|
||||
eingetragen, dann wird das Badword ersetzt. Falls hier "block"
|
||||
angegeben wird, wird die gesamte Nachricht gar nicht erst angezeigt. Falls
|
||||
@@ -2598,7 +2650,8 @@ nicht ben
|
||||
cache speichern, wird bei oft wechselndem Host benutzt (wie dyndns.org)</td></tr>
|
||||
<tr><td><b>nohostcheck</b></td><td> den entfernten Host nicht überprüfen (link::hostname),
|
||||
wird bei oft wechselndem Host benutzt (wie dyndns.org)</td></tr>
|
||||
<tr><td><b>quarantine</b></td><td> Opers auf diesem Server behalten locop Status bei</td></tr>
|
||||
<tr><td><b>quarantine</b></td><td> Opers auf diesem Server können keine GLOBAL
|
||||
Oper Privilegien erhalten (sie werden gekilled), dient zu Test Links etc.</td></tr>
|
||||
</table>
|
||||
<p>Beispiel:</p>
|
||||
<pre>link hub.mynet.com {
|
||||
@@ -2626,6 +2679,7 @@ nicht vorhanden)</font>
|
||||
<pre>alias <name> {
|
||||
target <nick-to-forward-to>;
|
||||
type <type-of-alias>;
|
||||
spamfilter <yes|no|>
|
||||
};</pre>
|
||||
<p>(Hinweis: siehe auch <a href="#includedirective">hier</a> , welche Standard
|
||||
Alias Dateien bei UnrealIRCd mitgeliefert werden.)</p>
|
||||
@@ -2637,20 +2691,32 @@ der Nickname, an den weitergeleitet wird. Wenn "alias::" identisch mit
|
||||
dem Nick ist, an den weitergeleitet wird, kann "alias::target"
|
||||
weggelassen werden. <b> alias::type</b> gibt den Typ des Alias an, gültige
|
||||
Typen sind hier "services" (der User ist auf dem Services Server),
|
||||
"stats" (der User ist auf dem Stats Server), und "normal" (der
|
||||
User ist normaler User auf irgendeinem Server). Der "alias block" hat
|
||||
auch einen weiteren Zweck, der nachfolgend erklärt ist.</p>
|
||||
"stats" (der User ist auf dem Stats Server) "normal" (der
|
||||
User ist normaler User auf irgendeinem Server) und "channel" (das Ziel
|
||||
ist ein Channel Name). Wenn <b>alias::spampfilter</b> (optional) auf 'yes'
|
||||
eingestellt ist, werden auch Spamfilter geprüft (Default ist 'no'). Der "alias block" hat
|
||||
auch einen weiteren nachfolgend erklärten Zweck.</p>
|
||||
<p>Syntax [Befehl alias]:
|
||||
<pre>alias <name> {
|
||||
</pre>
|
||||
<pre> /* Für Aliase, die an User/Channels gesendet werden */
|
||||
format <regex-expression> {
|
||||
target <nick-to-forward-to>;
|
||||
type <type-of-alias>;
|
||||
parameters <parameter-string>;
|
||||
};
|
||||
/* For 'echte Aliase' */
|
||||
format <regex-expression> {
|
||||
command <command>;
|
||||
type real;
|
||||
parameters <parameter-string>;
|
||||
};
|
||||
/* Etc... You can have as many format blocks as you wish.. */</pre>
|
||||
<pre> format <regex-expression> {
|
||||
...
|
||||
};
|
||||
type command;
|
||||
spamfilter <yes|no>
|
||||
};</pre>
|
||||
<p>Wird der "alias Block" in diesem Format benutzt, ermöglicht er
|
||||
eine breitere Anwendungsweise. Beispielsweise kann man einen Alias wie /identify
|
||||
@@ -2660,15 +2726,19 @@ einen regul
|
||||
Befehl gesandt wurde. Es können mehrere "alias::format" angegeben
|
||||
werden, um unterschiedliche Dinge in Abhängigkeit vom gesandten Text
|
||||
durchführen zu lassen. <b>alias::format::target</b> ist das Ziel (der Name), an den der
|
||||
Alias weitergeleitet wird. <b> alias::format::type</b> definiert den Typ des
|
||||
Alias, zu dem die Nachricht geleitet wird. <b> alias::format::parameters</b>
|
||||
Alias weitergeleitet wird, bei "realen Aliasen" wird allerdings <b>alias::format::command</b>
|
||||
benutzt. <b> alias::format::type</b> definiert den Typ des
|
||||
Alias, zu dem die Nachricht geleitet wird. Neben den zuvor erwähnten Typen in
|
||||
der Syntax bein Standard Alias, kann hier auch der Typ "Real" für
|
||||
reale Aliase angegeben werden. <b>alias::format::parameters</b>
|
||||
ist, was als Parameter an den Alias geschickt wird. Um Parameter für einen
|
||||
Befehl an den Alias anzugeben, wird ein "%" gefolgt von einer Nummer
|
||||
angegeben. So ist z.B. %1 der erste Parameter, %2 der zweite Parameter usw.
|
||||
Man kann auch festlegen, dass ab einem Parameter alle bis zum Ende gelten
|
||||
sollen, dann gibt man z.B. an: %1- (das Minuszeichen bedeutet: "alle
|
||||
weiteren") Zusätzlich kann man %n angeben, was durch den Nicknamen des
|
||||
Users ersetzt wird, der den befehl ausgeführt hat. Um Beispiele zum Alias Block
|
||||
Users ersetzt wird, der den Befehl ausgeführt hat. </p>
|
||||
<p> Um Beispiele zum Alias Block
|
||||
zu sehen, schaue man in doc/example.conf.</p>
|
||||
<p> </p>
|
||||
</div>
|
||||
@@ -2758,7 +2828,66 @@ spamfilter {<br>
|
||||
reason "Kein Spam erlaubt"<br>
|
||||
};<br>
|
||||
</font></div>
|
||||
<p><font class="block_section"><a name="setblock">4.36 - </a> </font><a name="setblock"><font class="block_name">Set Block</font>
|
||||
<p><font class="block_section"><a name="cgiirc">4.36 - </a></font><a name="cgiirc"><font class="block_name">Cgiirc
|
||||
Block</font></a> <font class="block_optional">OPTIONAL</font></p>
|
||||
<div class="desc">
|
||||
<p>Im Cgiirc Block können Host Manipulationen für vertraute CGI:IRC Gateways
|
||||
konfiguriert werden (<a href="#feature_cgiirc">weitere Informationen</a>).</p>
|
||||
<p>Syntax:<br>
|
||||
</p>
|
||||
<pre>cgiirc {
|
||||
type <webirc|old>;
|
||||
username <mask>; /* optional */
|
||||
hostname <mask>;
|
||||
password <password>; /* only for type webirc */
|
||||
};</pre>
|
||||
<p> </p>
|
||||
<p><b>type</b> ist entweder 'webirc' oder 'old'.<br>
|
||||
<b>username</b> wird auf die Ident geprüft (wenn angegeben). Falls nicht
|
||||
definiert, wird '*' angenommen.<br>
|
||||
<b>hostname</b> ist die Hostmaske, auf die geprüft wird.<br>
|
||||
<b>password</b> ist das webirc Passwort, wird nur beim Typ 'webirc' benutzt.<br>
|
||||
</p>
|
||||
<p><b>Konfiguration mit der 'webirc' Methode (empfohlene Methode)</b><br>
|
||||
In der CGI:IRC Konfigurationsdatei (cgiirc.conf) wird für "webirc_password"
|
||||
ein gutes Passwort festgelegt.<br>
|
||||
Danach wird in der unrealircd.conf ein cgiirc block eingetragen, um diesen
|
||||
Host mit diesem Passwort zu erlauben.<br>
|
||||
Dann wird für '<b>set cgiirc::type'</b> "webirc" eingetragen.<br>
|
||||
<br>
|
||||
Beispiel:<br>
|
||||
In die CGI:IRC Konfigurationsdatei (cgiirc.conf) wird eingetragen:</p>
|
||||
<pre>webirc_password = LpT4xqPI5</pre>
|
||||
Danach wird die unrealircd.conf um einen Cgiirc Block erweitert:
|
||||
<pre>cgiirc {
|
||||
type webirc;
|
||||
hostname "1.2.3.4";
|
||||
password "LpT4xqPI5";
|
||||
};</pre>
|
||||
<p> </p>
|
||||
<p><b>Konfiguration mit Methode 'old'</b><br>
|
||||
ACHTUNG: Dies ist nicht die empfohlene Methode, da sie zwei Nachteile hat:
|
||||
Diese Methode sendet den IP/Host, der zu verändern ist, als ein Server
|
||||
Passwort, was bedeutet, als CGI:IRC User kein Server Passwort
|
||||
angeben kann. Außerdem ist die Zugriffskontrolle nur IP-basiert und erfordert
|
||||
kein Extra Passwort, wie die 'webirc' Methode. Kurz gesagt sollten Sie nicht
|
||||
diese Methode nur verwenden, wenn es einen triftigen Grund dazu gibt.<br>
|
||||
<br>
|
||||
In der CGI:IRC Konfigurationsdatei (cgiirc.conf) wird 'realhost_as_password'
|
||||
auf 1 gesetzt.<br>
|
||||
Danach wird die unrealircd.conf um einen Cgiirc Block erweitert, um diesen
|
||||
Host zu erlauben.<br>
|
||||
<br>
|
||||
Beispiel:<br>
|
||||
In die CGI:IRC Konfigurationsdatei (cgiirc.conf) wird eingetragen:</p>
|
||||
<pre>realhost_as_password = 1</pre>
|
||||
Danach wird die unrealircd.conf um einen Cgiirc Block erweitert:
|
||||
<pre>cgiirc {
|
||||
type old;
|
||||
hostname "1.2.3.4";
|
||||
};</pre>
|
||||
</div>
|
||||
<p><font class="block_section"><a name="setblock">4.37 - </a> </font><a name="setblock"><font class="block_name">Set Block</font>
|
||||
</a> <font class="block_required">ERFORDERLICH</font> <font class="block_old">(Früher
|
||||
bekannt als unrealircd.conf/networks file)</font>
|
||||
</p><div class="desc">
|
||||
@@ -2883,6 +3012,17 @@ bel
|
||||
angezeigt werden sollen. Ohne Eintrag hier gibt es kein Limit.</p>
|
||||
<p><font class="set">set::silence-limit <limit>;<br>
|
||||
</font>Stellt den Maximalwert der anzeigbaren SILENCE Einträge ein. Ohne Eintrag ist hier ein Limit von 15 voreingestellt.</p>
|
||||
<b><font face="Helvetica,Arial" size="-1">set::maxbans <limit>;<br>
|
||||
</font></b>Stellt den Maximalwert der je Channel erlaubten Banns (+b) ein. Der
|
||||
Defaultwert beträgt 60. Wenn dieser Wert geändert wird, sollte man sich
|
||||
versichern, dass auch der Wert für 'maxbanlength' (siehe nächster Punkt)
|
||||
sinnvoll eingestellt ist.
|
||||
<p><b>set::maxbanlength <limit>;</b><br>
|
||||
Ähnliche Funktion wie im Punkt zuvor, aber legt den Maximalwert der Zeichen
|
||||
für alle Banns zusammen fest. Dadurch wird festgelegt, wie viel Speicherplatz
|
||||
für alle Banns in einem Channel zusammen benutzt wird. Der Default beträgt
|
||||
2048 (Bytes). Bei einem Default von 'set::maxbans 60' gestattet dies 2048:60=34
|
||||
Zeichen je Bann im Durchschnitt.</p>
|
||||
<p><font class="set">set::oper-only-stats <stats-list>;</font><br>
|
||||
Definiert eine Liste von Stats-Flags, die nur von Opers benutzt werden können.
|
||||
Die Flags sind ohne Trennungen (keine Kommata, keine Leerzeichen) anzugeben.
|
||||
@@ -2890,7 +3030,7 @@ Wird hier nichts angegeben, k
|
||||
Angabe von '*' keines. Es dürfen nur <b> kurze Operflags</b> angegeben werden.</p>
|
||||
<p><b>set::oper-only-stats {<stats-flag>; <stats-flag>;};</b><br>
|
||||
Definiert eine Liste von Stats Flags, die nur von Opers benutzt werden können.
|
||||
In dieser Syntax dürfen nur <b>lange Operflags</b> angegeben wwerden.</p>
|
||||
In dieser Syntax dürfen nur <b>lange Operflags</b> angegeben werden.</p>
|
||||
<p><font class="set">set::maxchannelsperuser <amount-of-channels>;</font><br>
|
||||
Einstellung, in wie vielen Channels ein User gleichzeitig sein darf.</p>
|
||||
<p><b>set::maxdccallow <amount-of-entries>;</b><br>
|
||||
@@ -2901,7 +3041,7 @@ Zeichens
|
||||
<p><font class="set">set::channel-command-prefix <command-prefixes>;<br>
|
||||
</font>Stellt das Vorzeichen für Services in "channel Befehlen" ein.
|
||||
Nachrichten, die mit einem dieser Zeichen beginnen, werden auch noch gesendet,
|
||||
wenn der Client +d ist. Die Voreinstellung lautet "`".</p>
|
||||
wenn der Client +d ist. Die Voreinstellung lautet "`!.".</p>
|
||||
<p><font class="set">set::allow-userhost-change [never|always|not-on-channels|force-rejoin]</font><br>
|
||||
Einstellung, was passiert, wenn sich der user@host ändert (+x/-x/chghost/chgident/setident/vhost/etc).<br>
|
||||
<i>never</i> schaltet sämtliche Befehle ab, <i>always</i> gestattet so
|
||||
@@ -3081,7 +3221,23 @@ joinen.</p>
|
||||
<b>set::spamfilter::except <target(s)></b><br>
|
||||
Diese Ziele werden vom Spamfilter ausgenommen (es wird also keine Aktion
|
||||
durchgeführt). Es sind einzelne Ziele oder eine durch Kommata getrennte Liste
|
||||
möglich. Beispiel: except "#help,#spamreport"</p> </div>
|
||||
möglich. Beispiel: except "#help,#spamreport"</p> <p><b>set::<font face="Helvetica,Arial" size="-1">check-target-nick-bans</font> <yes|no></b><br>
|
||||
Wann immer ein User seinen Nick ändert, wird überprüft, ob der NEUE Nick zu
|
||||
bannen wäre. Ist das der Fall, wird der Nickwechsel nicht erlaubt. Default ist
|
||||
'yes'.</p> <p><b>set::timesynch::enabled<yes|no></b><br>
|
||||
Aktiviert oder deaktiviert die Zeitsynchronisation beim Start des IRCd. Default
|
||||
ist 'yes'.</p>
|
||||
<p><font class="set">set::timesynch::server <IP></font><br>
|
||||
Server mit dem die Zeit synchronisiert werden soll. Hier können bis zu 4 IP's
|
||||
angegeben werden, die durch Komma zu trennen sind. Die Server müssen das NTP Protokoll
|
||||
Version 4 unterstützen. Default ist die Benutzung von 3 Zeitservern (US, EU,
|
||||
AU). Die Anforderungen an diese Server erfolgen zeitgleich, die schnellste
|
||||
Antwort gewinnt.</p>
|
||||
<p><font class="set">set::timesynch::timeout <time></font><br>
|
||||
Maximale Zeit, die auf eine Zeitserverantwort gewartet wird. Möglich ist ein
|
||||
Wert von 1 bis 5, mehr ist nicht möglich, weil das Ergebnis sonst zu ungenau
|
||||
wäre. Default Einstellung ist hier 3 und normalerweise sollte es keinen Grund
|
||||
geben, dies zu ändern. </div>
|
||||
<p><b><font size="+2"><a name="addtlfiles">5 – Additional Files</a></font></b></p><div class="desc">
|
||||
Zusätzlich zu den Konfigurationsdateien hat Unreal einige weitere Dateien,
|
||||
wie MOTD, OperMOTD, BotMOTD, und Rules. In der nachfolgenden Liste stehen die
|
||||
@@ -3299,7 +3455,8 @@ m
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="19"><div align="center">d</div></td>
|
||||
<td height="19">User kann keine Channel PRIVMSGs empfangen</td>
|
||||
<td height="19">User kann keine Channel PRIVMSGs empfangen (mit der Ausnahme
|
||||
von Text, dem bestimmte Zeichen vorangestellt sind. Siehe hierzu: 'set::channel-command-prefix'.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="19"><div align="center">G</div></td>
|
||||
@@ -4177,7 +4334,7 @@ Datei</a></b></font></p>
|
||||
erhöht den Aufwand für einen Angriff oder hack.</div>
|
||||
<p><font size="+2"><b><a name="secantiexpolit">8.8 Schutz gegen Expolits</a></b></font></p>
|
||||
<div class="desc">Es gibt Kernel Patches, die es Stack- oder Heap-basierenden
|
||||
Expolits erschweren, zu arbeiten. Allerdings sollte man nicht nur primär
|
||||
Expolits erschweren, zu arbeiten. Das ist schön, allerdings sollte man nicht nur primär
|
||||
hierauf achten, es gibt weit größere Risiken mit Expolits, die andere
|
||||
Punkte, als den Kernel angreifen.... aus verschiedenen Gründen.<br>
|
||||
<br>
|
||||
|
||||
+3295
-3168
File diff suppressed because it is too large
Load Diff
+369
-235
File diff suppressed because it is too large
Load Diff
+164
-53
@@ -5,7 +5,7 @@
|
||||
<META http-equiv=Content-Type content="text/html; charset=iso-8859-7">
|
||||
<STYLE>
|
||||
<!--
|
||||
.Normal {FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman";}
|
||||
.Normal {FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman";}
|
||||
.desc {FONT-SIZE: 12pt; MARGIN-LEFT: 11.25pt; MARGIN-RIGHT: 0cm; FONT-FAMILY: "Times New Roman";}
|
||||
.desc {FONT-SIZE: 12pt; MARGIN-LEFT: 11.25pt; MARGIN-RIGHT: 0cm; FONT-FAMILY: "Times New Roman";}
|
||||
.desc {FONT-SIZE: 12pt; MARGIN-LEFT: 11.25pt; MARGIN-RIGHT: 0cm; FONT-FAMILY: "Times New Roman";}
|
||||
@@ -14,7 +14,7 @@
|
||||
<!-- $Id$ -->
|
||||
</HEAD>
|
||||
<BODY class="Normal">
|
||||
<DIV class=Section1> <a href="unreal32docs.html">English</a> | <a href="unreal32docs.de.html">German</a> | <a href="unreal32docs.es.html">Spanish</a> | <a href="unreal32docs.hu.html">Hungarian</a> | <a href="unreal32docs.fr.html">French</a> | Greek <br>
|
||||
<DIV class=Section1> <a href="unreal32docs.html">English</a> | <a href="unreal32docs.de.html">German</a> | <a href="unreal32docs.es.html">Spanish</a> | <a href="unreal32docs.hu.html">Hungarian</a> | <a href="unreal32docs.fr.html">French</a> | Greek | <a href="unreal32docs.nl.html">Dutch</a> | <a href="unreal32docs.ru.html">Russian</a> | <a href="unreal32docs.tk.html">Turkish</a><br>
|
||||
<br>
|
||||
<P style="TEXT-ALIGN: center" align=center><B><SPAN
|
||||
|
||||
@@ -26,14 +26,14 @@ style="FONT-SIZE: 13.5pt"><A
|
||||
href="http://www.unrealircd.com/">http://www.unrealircd.com/</A></SPAN><BR>
|
||||
<SPAN
|
||||
|
||||
style="FONT-SIZE: 13.5pt">Version: 3.2.3</SPAN><BR>
|
||||
<B>Last doc update:</B> 2005-03-13</P>
|
||||
style="FONT-SIZE: 13.5pt">Version: 3.2.5</SPAN><BR>
|
||||
<B>Last doc update:</B> 2006-06-15</P>
|
||||
<P><BR>
|
||||
<B>Head Coders:</B> Stskeeps / codemastr / Syzop / Luke<BR>
|
||||
<B>Contributors:</B> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<BR>
|
||||
<B>Documentation:</B> CKnight^ / Syzop</P>
|
||||
<P><B>ÌåôÜöñáóç:</B> <a href="mailto:GSF19@altecnet.gr">GSF</a> - UnReaL.mirc.gr on HellenicNet</P>
|
||||
<P> Ëüãù ôçò áõîáíüìåíçò ðåñéðëïêüôçôáò ôïõ UnrealIRCd3.2 óôñáöÞêáìå óå Ýíá ðéï Ýõêïëï, ðéï ðåñéåêôéêü âïçèçôéêü Ýããñáöï. Ãéá íá ìðïñÝóåôå íá äåßôå áõôï ôï Ýããñáöï ðñÝðåé íá Ý÷åôå Ýíáí óõìâáôü ðåñéçãçôÞ, üðùò áõôïß ðïõ õðÜñ÷ïõí ðáñáêÜôù: Ôá ôåëåõôáßá âïçèçôéêÜ Ýããñáöá âñßóêïíôáé óôï <A
|
||||
<P> Ãéá íá ìðïñÝóåôå íá äåßôå áõôï ôï Ýããñáöï ðñÝðåé íá Ý÷åôå Ýíáí óõìâáôü ðåñéçãçôÞ, üðùò áõôïß ðïõ õðÜñ÷ïõí ðáñáêÜôù: Ôá ôåëåõôáßá âïçèçôéêÜ Ýããñáöá âñßóêïíôáé óôï <A
|
||||
|
||||
href="http://www.vulnscan.org/UnrealIrcd/unreal32docs.html">http://www.vulnscan.org/UnrealIrcd/unreal32docs.html</A> êáé ôï FAQ óôï <A href="http://www.vulnscan.org/UnrealIrcd/faq/"
|
||||
|
||||
@@ -108,8 +108,11 @@ href="#feature_spamfilter">Spamfilter</A><BR>
|
||||
|
||||
href="#feature_cidr">CIDR</A><br>
|
||||
-- 3.16. <a href="#feature_nickchars">Óåô ÷áñáêôÞñùí Nick</a><br>
|
||||
-- 3.17. <A
|
||||
|
||||
-- 3.17. <A
|
||||
href="#feature_cgiirc">ÕðïóôÞñéîç CGI:IRC</A><BR>
|
||||
-- 3.18. <A
|
||||
href="#feature_timesync">Óõã÷ñïíéóìüò ¿ñáò</A><BR>
|
||||
-- 3.19. <A
|
||||
href="#feature_other">¶ëëá ÷áñáêôçñéóôéêÜ</A><BR>
|
||||
4. <A
|
||||
|
||||
@@ -221,6 +224,9 @@ href="#officialchannels">
|
||||
href="#spamfilter">ÅðéëïãÞ Spamfilter</A><BR>
|
||||
---4.36. <A
|
||||
|
||||
href="#cgiirc">ÅðéëïãÞ CGI:IRC</A><BR>
|
||||
---4.37. <A
|
||||
|
||||
href="#setblock">ÅðéëïãÞ Set -=- (networks/unrealircd.conf)</A><BR>
|
||||
5. <A
|
||||
|
||||
@@ -261,7 +267,7 @@ href="#secantiexploit">Protecting against exploits</A><BR>
|
||||
---8.9. <A
|
||||
|
||||
href="#secsummary">Summary</A><BR>
|
||||
9. <A href="http://www.vulnscan.org/UnrealIrcd/faq/" target=_blank>Frequently Asked Questions (FAQ)</A><br>
|
||||
9. <A href="http://www.vulnscan.org/UnrealIRCd/faq/" target=_blank>Frequently Asked Questions (FAQ)</A><br>
|
||||
A. <a href="#regex">ÊáíïíéêÝò åêöñÜóåéò</a><br>
|
||||
---A.1. <a href="#regexlit">Literals</a><br>
|
||||
---A.2. <a href="#regexdot">ÔåëåóôÞò Ôåëåßá(.)</a><br>
|
||||
@@ -277,10 +283,10 @@ href="#secsummary">Summary</A><BR>
|
||||
|
||||
name=IntroductionNotes></A></P>
|
||||
<DIV style="MARGIN-LEFT: 11.25pt">
|
||||
<P>Áõôü ôï Ýããñáöï Ý÷åé ãñáöôåß ãéá áðïêëåéóôéêÞ ÷ñÞóç ìå ôï UnrealIRCd. Ç ÷ñÞóç ôïõ åããñÜöïõ ìå Üëëï ðñüãñáììá , Þ ç äéáíïìÞ áõôïõ ôïõ åããñÜöïõ ìáæé ìå Üëëï ðñüãñáììá áðáãïñÝõåôáé áõóôçñÜ ÷ùñßò ôçí ãñáðôÞ Üäåéá ôçò ïìÜäáò ðñïãñáììáôéóìïý ôïõ UnrealIRCd. Áõôï ôï Ýããñáöï ìðïñåé íá áíôéãñáöåß/åêôõðùèåß/åðáíáäçìéïõñãçèåß/åêäïèåß üóåò öïñÝò èÝëåôå, üóï ðáñÝ÷åôáé ãéá ÷ñÞóç ìå ôï UnrealIRCd êáé äåí Ý÷åé ôñïðïðïéçèåß ìå êáíÝíáí ôñüðï. – Copyright UnrealIRCd Development Team 2002-2004</P>
|
||||
<P>Áõôü ôï Ýããñáöï Ý÷åé ãñáöôåß ãéá áðïêëåéóôéêÞ ÷ñÞóç ìå ôï UnrealIRCd. Ç ÷ñÞóç ôïõ åããñÜöïõ ìå Üëëï ðñüãñáììá , Þ ç äéáíïìÞ áõôïõ ôïõ åããñÜöïõ ìáæé ìå Üëëï ðñüãñáììá áðáãïñÝõåôáé áõóôçñÜ ÷ùñßò ôçí ãñáðôÞ Üäåéá ôçò ïìÜäáò ðñïãñáììáôéóìïý ôïõ UnrealIRCd. Áõôï ôï Ýããñáöï ìðïñåé íá áíôéãñáöåß/åêôõðùèåß/åðáíáäçìéïõñãçèåß/åêäïèåß üóåò öïñÝò èÝëåôå, üóï ðáñÝ÷åôáé ãéá ÷ñÞóç ìå ôï UnrealIRCd êáé äåí Ý÷åé ôñïðïðïéçèåß ìå êáíÝíáí ôñüðï. – Copyright UnrealIRCd Development Team 2002-2006</P>
|
||||
<P>Ðáñáêáëïýìå äéáâÜóôå áõôü ôï åã÷åéñßäéï ðñéí æçôÞóåôå ïðïéáäÞðïôå âïÞèåéá, êáé åðéóçò ÓÉÃÏÕÑÁ ðñÝðåé íá ñßîåôå ìéá ìáôéÜ êáé óôï <A
|
||||
|
||||
href="http://www.vulnscan.org/UnrealIrcd/faq/" target=_blank>FAQ</A> áöïõ ðåñéóóüôåñï áðï ôï 80% áðï ôéò åñùôÞóåéò/ðñïâëÞìáôá Ý÷ïõí áðáíôçèåß åêåß. Áí óõíå÷ßæåôå íá ÷ñåéÜæåóôå âïÞèåéá ìðïñåßôå íá æçôÞóåôå õðïóôÞñéîç óôï irc.ircsystems.net (port 6667) êáíÜëé #unreal-support (íá ãíùñßæåôå ïôé ÁÐÁÉÔÏÕÌÅ íá Ý÷åôå äéáâÜóåé ôï åã÷åéñßäéï êáé ôï <SPAN lang=EN-US>FAQ</SPAN>, êáé ïôé ðñïóöÝñïõåì âïÞèåéá ìüíï ãéá ôï UnrealIRCd, ü÷é ìå ôá services!). Áí Ý÷åôå âñåß êÜðïéï óöÜëìá óôï ðñüãñáììá (üðùò crash) ôüôå õðïâÜëåôÝ ôï óôï <A
|
||||
href="http://www.vulnscan.org/UnrealIRCd/faq/" target=_blank>FAQ</A> áöïõ ðåñéóóüôåñï áðï ôï 80% áðï ôéò åñùôÞóåéò/ðñïâëÞìáôá Ý÷ïõí áðáíôçèåß åêåß. Áí óõíå÷ßæåôå íá ÷ñåéÜæåóôå âïÞèåéá ìðïñåßôå íá æçôÞóåôå õðïóôÞñéîç óôï irc.ircsystems.net (port 6667) êáíÜëé #unreal-support (íá ãíùñßæåôå ïôé ÁÐÁÉÔÏÕÌÅ íá Ý÷åôå äéáâÜóåé ôï åã÷åéñßäéï êáé ôï <SPAN lang=EN-US>FAQ</SPAN>, êáé ïôé ðñïóöÝñïõåì âïÞèåéá ìüíï ãéá ôï UnrealIRCd, ü÷é ìå ôá services!). Áí Ý÷åôå âñåß êÜðïéï óöÜëìá óôï ðñüãñáììá (üðùò crash) ôüôå õðïâÜëåôÝ ôï óôï <A
|
||||
|
||||
href="http://bugs.unrealircd.org/"
|
||||
|
||||
@@ -321,11 +327,11 @@ name=installation></A>
|
||||
</UL>
|
||||
<UL type=disc>
|
||||
<UL type=circle>
|
||||
<LI>Linux 2.2.x
|
||||
<LI>Linux 2.4.x
|
||||
<LI>FreeBSD 4.6-STABLE
|
||||
<LI>FreeBSD 4.5-STABLE
|
||||
<LI>Solaris 2.x </LI>
|
||||
<LI>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<LI>FreeBSD (4.*, 5.*)
|
||||
<LI>NetBSD (2.*)
|
||||
<LI>OpenBSD (3.7, 3.8, 3.9)
|
||||
<LI>Solaris (9, 10) </LI>
|
||||
</UL>
|
||||
</UL>
|
||||
<UL type=disc>
|
||||
@@ -333,25 +339,28 @@ name=installation></A>
|
||||
</UL>
|
||||
<UL type=disc>
|
||||
<UL type=circle>
|
||||
<LI>WindowsXP Home
|
||||
<LI>WindowsXP Pro
|
||||
<LI>Windows 2000 Pro
|
||||
<LI>Windows 2000 Server
|
||||
<LI>Windows 2000 Advanced Server
|
||||
<LI>Windows 98
|
||||
<LI>Windows Me </LI>
|
||||
<LI>Windows 2000 (Pro, Server, Advanced Server)
|
||||
<LI>Windows XP (Home, Pro)
|
||||
<LI>Windows 2003
|
||||
</UL>
|
||||
<LI><b> ÄïêéìáóìÝíåò Áñ÷éôåêôïíéêÝò: </b>
|
||||
<UL>
|
||||
<LI>ia32 (i386, i486, i586, i686)
|
||||
<LI>ia64
|
||||
<LI>amd64
|
||||
<LI>alpha
|
||||
</UL>
|
||||
</UL>
|
||||
<P><BR>
|
||||
Áí ãíùñßæåôå ïôé ôï Unreal3.2 ëåéôïõñãåß óùóôÜ êáé óå Üëëá ëåéôïõñãéêÜ óõóôÞìáôá, ðáñáêáëïýìå óôåßëôå ôéò ëåðôïìÝñéåò óôï <A
|
||||
|
||||
href="mailto://docs@unrealircd.com">docs@unrealircd.com<BR>
|
||||
href="mailto://coders@lists.unrealircd.org">coders@lists.unrealircd.org<BR>
|
||||
</A></P>
|
||||
<P><B>Installation Instructions</B><BR>
|
||||
<P><B>Ïäçãåßåò ÅãêáôÜóôáóçò</B><BR>
|
||||
Linux:</P>
|
||||
<OL type=1>
|
||||
<LI>gunzip -d Unreal3.2.2.tar.gz
|
||||
<LI>tar xvf Unreal3.2.2.tar
|
||||
<LI>gunzip -d Unreal3.2.X.tar.gz
|
||||
<LI>tar xvf Unreal3.2.X.tar
|
||||
<LI>cd Unreal3.2
|
||||
<LI>./Config
|
||||
<LI>ÁðáíôÞóôå ôéò åñùôÞóåéò ìå ôïí êáëýôåñï ôñüðï ðïõ óáò åðéôñÝðïõí ïé ãíþóåéò óáò. ØåíéêÜ áí äåí åßóôå óßãïõñïé, ïé ðñïåðéëåãìÝíåò áðáíôÞóåéò èá ëåéôïõñãÞóïõí ìéá ÷áñá!
|
||||
@@ -369,7 +378,7 @@ href="mailto://docs@unrealircd.com">docs@unrealircd.com<BR>
|
||||
name=features></A></P>
|
||||
<DIV style="MARGIN-LEFT: 11.25pt">
|
||||
<P>ÌåñéêÜ áðï ôá ðéï âáóéêÜ/ùñáßá ÷áñáêôçñéóôéêÜ áíáëýïíôáé óå áõôÞí ôçí ðáñÜãñáöï. ÐáñÝ÷åé ìéá ãåíéêÞ êÜôïøç, êáé ìåñéêÝò öïñÝò áíáöÝñåôáé óôï áñ÷åßï åðéëïãþí (êáôé ðïõ ßóùò ãéá ôï ïðïßï äåí ãíùñßæåôå ôßðïôá áêïìá).</P>
|
||||
<P>Ìðïñåßôå íá áãíïÞóåôå áõôÞí ôçí ðáñÜãñáöï, üìùò ðñïôåßíåôáé íá ôçí äéáâÜóåôå ðñßí/ìåôÜ áðï ôçí åãêáôÜóôáóç.</P>
|
||||
<P>Ìðïñåßôå íá áãíïÞóåôå áõôÞí ôçí ðáñÜãñáöï, üìùò ðñïôåßíïõìå áíåðéöýëáêôá íá ôçí äéáâÜóåôå ðñßí/ìåôÜ áðï ôçí åãêáôÜóôáóç ãéáôé áëëéþò äåí èá ìðïñÝóåôå íá êáôáëÜâåôå éäÝåò üðùò cloaking','snomasks',êôëð.</P>
|
||||
</DIV>
|
||||
<P><B><SPAN style="FONT-SIZE: 18pt">3.1 - Cloaking</SPAN></B><A
|
||||
|
||||
@@ -425,7 +434,7 @@ name=feature_snomasks></A></P>
|
||||
name=feature_aliases></A></P>
|
||||
<DIV style="MARGIN-LEFT: 11.25pt">
|
||||
<P>Ìå ôéò óõíôïìåýóåéò (<SPAN lang=EN-US>Aliases) </SPAN>ìðïñåßôå íá óåôÜñåôå server-side åíôïëÝò óõíôïìåýóçò. Ìðïñåßôå ãéá ðáñÜäåéãìá íá êÜíåôå ôï "/ns identify blah" íá ðñïùèåßôáé óôïí nickserv (èá ìåôáöñáóôåß óå: privmsg nickserv identify blah). Ìðïñåßôå áêüìá íá äçìéïõñãÞóåôå ðéï ðïëýðëïêåò óõíôïìåýóåéò üðùò ôï /register íá ðñïùèåßôáé óôïí ChanServ ìüíï áí ôï ðñþôï üñéóìá áñ÷ßæåé ìå # áëëéþò íá ðñïùèåßôáé óôïí NickServ.</P>
|
||||
<P>Ïé óõíôïìåýóåéò (Aliases) ïñßæïíôáé ìå ôçí åðéëïãÞ alias óôï áñ÷åßï åðéëïãþí, êáé ìðïñåßôå åðßóçò íá óõìðåñéëÜâåôå Ýíá áñ÷åßï ìå áñ÷éêÝò óõíôïìåýóåéò ãéá ôéò õðçñåóßåò ðïõ ÷ñçóéìïðïéïýíôáé óõ÷íüôåñá.</P>
|
||||
<P>Ïé óõíôïìåýóåéò (Aliases) ïñßæïíôáé ìå ôçí åðéëïãÞ <a href="#aliasblock">alias blocks</a> óôï áñ÷åßï åðéëïãþí, êáé ìðïñåßôå åðßóçò íá óõìðåñéëÜâåôå Ýíá áñ÷åßï ìå áñ÷éêÝò óõíôïìåýóåéò ãéá ôéò õðçñåóßåò ðïõ ÷ñçóéìïðïéïýíôáé óõ÷íüôåñá.</P>
|
||||
</DIV>
|
||||
<P><B><SPAN style="FONT-SIZE: 18pt">3.5 - Helpop</SPAN></B><A
|
||||
|
||||
@@ -942,7 +951,7 @@ lang=EN-US>ban </SPAN>
|
||||
<tr><td>hungarian</td><td>×áñáêôÞñåò Ïõããñéêþí</td><td>iso8859-2 (latin2), windows-1250</td></tr>
|
||||
<tr><td>polish</td><td>×áñáêôÞñåò Ðïëùíéêþí</td><td>iso8859-2 (latin2)</td></tr>
|
||||
<tr><td>romanian</td><td>×áñáêôÞñåò ÑïõìÜíéêùí</td><td>iso8859-2 (latin2), windows-1250, iso8859-16</td></tr>
|
||||
<tr><td><b>latin2</b></td><td>hungarian, polish, romanian</td><td>iso8859-2 (latin2)</td></tr>
|
||||
<tr><td><b>latin2</b></td><td>ÏõããñéêÜ, ÐïëùíéêÜ, ÑïõìÜíéêá</td><td>iso8859-2 (latin2)</td></tr>
|
||||
<tr><td>polish-w1250</td><td>×áñáêôÞñåò Ðïëùíéêþí, windows variant (unfortunately more common than iso)</td><td>windows-1250</td></tr>
|
||||
<tr><td>slovak-w1250</td><td>×áñáêôÞñåò Óëïâáêéêþí, windows variant</td><td>windows-1250</td></tr>
|
||||
<tr><td>czech-w1250</td><td>×áñáêôÞñåò ÔóÝ÷éêùí, windows variant</td><td>windows-1250</td></tr>
|
||||
@@ -952,9 +961,15 @@ lang=EN-US>ban </SPAN>
|
||||
<td class="Normal">×áñáêôÞñåò Åëëçíéêþí</td>
|
||||
<td class="Normal">iso8859-7</td>
|
||||
</tr>
|
||||
<tr><td>turkish</td><td>Turkish characters</td><td>iso8859-9</td></tr>
|
||||
<tr><td>russian-w1251</td><td>Russian characters</td><td>windows-1251</td></tr>
|
||||
<tr><td>hebrew</td><td>Hebrew characters</td><td>iso8859-8-I/windows-1255</td></tr>
|
||||
<tr><td>turkish</td><td>×áñáêôÞñåò Ôïýñêéêùí</td><td>iso8859-9</td></tr>
|
||||
<tr><td>russian-w1251</td><td>×áñáêôÞñåò Ñùóóéêþí</td><td>windows-1251</td></tr>
|
||||
<tr><td>belarussian-w1251</td><td>×áñáêôÞñåò Belarussian</td><td>windows-1251</td></tr>
|
||||
<tr><td>ukrainian-w1251</td><td>×áñáêôÞñåò Ïõêñáíéêþí</td><td>windows-1251</td></tr>
|
||||
<tr><td><b>windows-1251</b></td><td>russian-w1251, belarussian-w1251, ukrainian-w1251</td><td>windows-1251</td></tr>
|
||||
|
||||
<tr><td>hebrew</td>
|
||||
<td>×áñáêôÞñåò Åâñáúêþí</td>
|
||||
<td>iso8859-8-I/windows-1255</td></tr>
|
||||
<tr>
|
||||
<td class="Normal">chinese-simp</td>
|
||||
<td class="Normal">ÁðëïðïéïçìÝíá ÊéíÝæéêá</td>
|
||||
@@ -997,10 +1012,28 @@ lang=EN-US>ban </SPAN>
|
||||
ÐáñÜäåéãìá 2, áí Ý÷åôå ðåñéóóüôåñï êéíÝæïõò ÷ñÞóôåò êáé èÝëåôå íá åðéôñÝøåôå "êáíïíéêïýò" êéíÝæéêïõò ÷áñáêôÞñåò:<br>
|
||||
<pre>set { allowed-nickchars { chinese-simp; chinese-trad; }; };</pre>
|
||||
</div>
|
||||
<P><B><SPAN
|
||||
|
||||
style="FONT-SIZE: 18pt"><br>
|
||||
3.17– <A name=feature_other></A>¶ëëá ×áñáêôçñéóôéêÜ</SPAN></B></P>
|
||||
<P><br>
|
||||
<p><font size="+2"><b>3.17 - Õðïóôßñçîç CGI:IRC</b></font><a name="feature_cgiirc"></a></p><div class="desc">
|
||||
<p>Ôï UnrealIRCd õðïóôéñßæåé ôéò êñõðôïãñáöçìÝíåò äéåõèýíóåéò CGI:IRC, ðïõ óçìáßíåé ïôé ìðïñåßôå íá óçìåéþóåôå óõãêåêñéìÝíïõò äéáýëïõò åðéêïéíùíßáò CGI:IRC
|
||||
þò "åìðéóôåõüìåíåò" ðïõ èá áíáãêÜóåé ôï IRCd íá åìöáíßóåé ôçí ðñáãìáôéêÞ äéåýèõíóç ôïõ ÷ñÞóôç ðáíôïý óôï
|
||||
IRC, áíôé ãéá ôçí äéåýèõíóç ôïõ äéáýëïõ åðéêïéíùíßáò CGI:IRC.</p>
|
||||
<p>Äåßôå åðßóçò <a href="#cgiirc">ÅðéëïãÞ cgiirc</a> ãéá ðëçñïöïñßåò óôï ðþò íá ôï ðñïãñáììáôßóåôå.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.18 - Óõã÷ñïíéóìüò ¿ñáò</b></font><a name="feature_timesync"></a></p><div class="desc">
|
||||
<p>Ôï íá õðÜñ÷åé óùóôÞ þñá óôï óýóôçìá åßíáé ðïëý óçìáíôéêü ãéá ôïõò äéáêïìéóôÝò IRC. ×ùñßò óùóôÞ þñá, ôá êáíÜëéá ìðïñïýí íá áðïóõã÷ñïíéóôïýí, áèþïé ÷ñÞóôåò íá áðïóõíäåèïýí, ôá êáíÜëéá ßóùò äåí åìöáíéóôïýí óùóôÜ óôçí åíôïëÞ /LIST, ìå ëßãá ëüãéá: ôåñÜóôéï ðñüâëçìá èá äçìéïõñãçèåß.</p>
|
||||
<p>Ôï UnrealIRCd Ý÷åé åíóùìáôùìÝíç êÜðïéá õðïóôßñéîç ãéá ôïí óõã÷ñïíéóìü ôçò þñáò.
|
||||
Áí êáé áõôÞ äåí åßíáé ç éäáíéêÞ(ç þñá ìðïñåß íá åßíáé áêüìá ëáíèáóìÝíç êáôá ìåñéêÜ äåõôåñüëåðôá), èá îåöïñôùèåß ôéò ðåñéóóüôåñåò äéáöïñÝò þñáò.
|
||||
Áí ìðïñåßôå, óõíçóôÜôáé áêüìá íá ÷ñçóéìïðïéåßóåôå ðñïãñÜììáôá óõã÷ñïíéóìïý þñáò üðùò ôï ntpd óôï *NIX Þ
|
||||
ôçí õðçñåóßá óõã÷ñïíéóìïý ôçò þñáò óôá Windows (óå áõôÞí ôçí ðåñßðôùóç, ìðïñåßôå íá êëåßóåôå ôïí óõã÷ñïíéóìü þñáò ôïõ Unreal, ðåñéóóüôåñá ãéáõôü ðáñáêÜôù).</p>
|
||||
<p>Áõôü ðïõ êÜíåé ôï UnrealIRCd (þò áñ÷éêÞ åðéëïãÞ) åßíáé íá êÜíåé ìéá ìïíáäéêÞ ðñïóðÜèåéá óõã÷ñïíéóìïý ôçí þñá ðïõ öïñôþíåé. ÓôÝëíåé (þò áñ÷éêÞ åðéëïãÞ) ìéá áßôçóç
|
||||
óå ðïëëáðëïýò äéáêïìéóôÝò óõã÷ñïíéóìïý êáé üôáí äå÷ôåß ôçí ðñþôç (ãñçãïñüôåñç) áðÜíôçóç, èá ðñïóáñìüóåé ôï åóùôåñéêü ñïëüé ôïõ ircd
|
||||
(Ï×É ôï ñïëüé ôïõ óõóôÞìáôïò). Áí, ãéá êÜðïéïí ëüãï, ôï Unreal äåí äå÷ôåß êÜðïéá áðÜíôçóç áðï êÜðïéïí äéáêïìéóôÞ ìÝóá óå 3 äåõôåñüëåðôá,
|
||||
ôï IRCd èá óõíå÷ßóåé íá öïñôþíåé áãíïþíôáò ôï (óõìâáßíåé óðÜíéá).</p>
|
||||
<p>Ï Óõã÷ñïíéóìüò ôçò þñáò ðñïóáñìüæåôáé (êáé ìðïñåß íá áðåíåñãïðïéçèåß) ìÝóá áðï ôçí åðéëïãÞ <b>set::timesynch</b>, äåßôå
|
||||
ôï <a href="#setblock">set documentation</a> ãéá ðåñéóóüôåñåò ðëçñïöïñßåò.</p>
|
||||
</div>
|
||||
<p><font size="+2">3.19 <b><A name=feature_other></A>¶ëëá ×áñáêôçñéóôéêÜ</b></font></P>
|
||||
<DIV style="MARGIN-LEFT: 11.25pt">
|
||||
<P>Ôï UnrealIRCd Ý÷åé ðïëëÜ ÷áñáêôçñéóôéêÜ ïðüôå äåí êáëýðôïíôáé üëá åäþ... Èá ôï êáôáëÜâåôå êáé áðï ìüíïé óáò.</P>
|
||||
</DIV>
|
||||
@@ -1010,8 +1043,10 @@ style="FONT-SIZE: 18pt">4.0 –
|
||||
|
||||
name=configuringyourunrealircdconf></A></P>
|
||||
<DIV style="MARGIN-LEFT: 11.25pt">
|
||||
<P>Ðñþôá áð’üëá, ôï íá äçìéïõñãÞóåôå Ýíá êáëü unrealircd.conf èá ðÜñåé áñêåôü ÷ñüíï, ðéèáíüôáôá ðåñßðïõ 10 – 60 ëåðôÜ. Ìðïñåßôå íá ðñïóðáèÞóåôå íá ôï îåêéíÞóåôå üóï ðéï ãñÞãïñá ìðïñåßôå êáé íá ôï âåëôéóôïðïéÞóåôå áñãüôåñá, Þ ìðïñåßôå íá ìÜèåôå ôéò óçìáíôéêüôåñåò ðáñáãñÜöïõò âÞìá âÞìá êÜôé ðïõ ðñïôåßíåôáé ;P. Áí Ý÷åôå êÜðïéï ðñüâëçìá, åëÝãîôå ôçí óýíôáîç, åëÝãîôå ôï åã÷åéñßäéï êáé åëÝãîôå ôï FAQ ðñéí æçôÞóåôå ïðïéáäÞðïôå âïÞèåéá/ôï õðïâÜëåôå þò bug.</P>
|
||||
</DIV>
|
||||
<P>Ðñþôá áð’üëá, ôï íá äçìéïõñãÞóåôå Ýíá êáëü unrealircd.conf èá ðÜñåé áñêåôü ÷ñüíï, ðéèáíüôáôá ðåñßðïõ 15 – 60 ëåðôÜ. Ç äçìéïõñãéá åíüò <u>"óùóôïý"</u> unrealircd.conf èá ðÜñåé áêüìá ðåñéóóüôåñç þñá.
|
||||
Äåí ðñÝðåé íá âéáóôåßôå íá öïñôþóåôå ôï IRCd, áëëá êáëýôåñá íá åëÝãîåôå ôá ðñÜãìáôá ãñáììÞ-ãñáììÞ. Áí Ý÷åôå êáíÝíá ðñüâëçìá, åëÝîôå ôï óõíôáêôéêü,åëÝîôå áõôü ôï åã÷åéñßäéï
|
||||
êáé åðßóçò åëÝîôå ôï <a href="http://www.vulnscan.org/UnrealIRCd/faq/">FAQ</a> ðñßí æçôÞóåôå âïÞèåéá/åðéóçìÜíåôå Ýíá bug.</p>
|
||||
</div>
|
||||
<P><B><SPAN
|
||||
|
||||
style="FONT-SIZE: 18pt">4.1 Ôï áñ÷åßï Åðéëïãþí áíáëõôéêÜ</SPAN></B><A
|
||||
@@ -1026,14 +1061,14 @@ name=configurationfileexplained></A></P>
|
||||
<P><block-name> Åßíáé ï ôýðïò ôçò åðéëïãÞò, üðùò ôï me, Þ ôï admin. <block-value> ìåñéêÝò öïñÝò ïñßæåé ìéá ôéìÞ, üðùò óôï /oper login, áëëá Üëëåò öïñÝò èá åßíáé Ýíáò õðï-ôýðïò üðùò óôï ban user.</P>
|
||||
<P><block-directive> Åßíáé ìéá ÷ùñéóôÞ ìåôáâëçôÞ áðïêëåéóôéêÜ ãéá ôçí åðéëïãÞ, êáé ôï <directive-value> åßíáé ç ôéìÞ ìå ôçí ïðïßá ó÷åôéæåôáé. Áí ôï <directive-value> ðåñéÝ÷åé êåíÜ, Þ ÷áñáêôÞñåò ðïõ áíôéðñïóùðåýïõí Ýíá ó÷üëéï ðñÝðåé íá ðåñéÝ÷åôáé ìÝóá óå ëáôéíéêÜ åéóáãùãéêÜ. Áí èÝëåôå íá ÷ñçóéìïðïéÞóåôå Ýíáí åéóáãùãéêü ÷áñáêôÞñá ìÝóá óå ìéÜ åéóáãùãéêÞ öñÜóç ÷ñçóéìïðïéÞóôå \" êáé ôï ðñüãñáììá èá ôï äå÷ôåß þò åéóáãùãéêü ÷áñáêôÞñá.</P>
|
||||
<P>Ôï <block-directive> ìðïñåß íá Ý÷åé ïñßóìáôá ìÝóá ôïõ, óå áõôÞí ôçí ðåñßðôùóç èá Ý÷åé ðåñéÝ÷åôáé ìÝóá óå áãêýëåò. ÌåñéêÝò åðéëïãÝò äÝí Ý÷ïõí ïñßóìáôá êáé ïñßæïíôáé áðëþò ìå ôï <block-value>, üðùò ôï include. Áêüìá óçìåéþóôå ïôé äåí õðÜñ÷åé ìïñöïðïßçóç ìå set, ðïõ óçìáßíåé ïôé üëç ç åðéëïãÞ ìðïñåß íá åìöáíßæåôáé óå ìéÜ ãñáììÞ Þ óå ðåñéóóüôåñåò. Ç ìïñöïðïßçóç ðéï ðÜíù åßíáé áõôÞ ðïõ êáíïíéêÜ ÷ñçóéìïðïéåßôáé (êáé ðïõ èá ÷ñçóéìïðïéåßôáé óôï áñ÷åßï) ãéáôß åßíáé åýêïëï íá äéáâáóôåß. </P>
|
||||
<P>Óçìåßùóç: Ôï áñ÷åßï åðéëïãþí åßíáé åõáßóèçôï óôá êåöáëáßá äçëáäÞ ôï BLOCK-NAME äåí åßíáé ôï ßäéï ìå ôï block-name. ÕðÜñ÷åé åéäéêÞ óçìåßùóç ðïõ áíáöÝñåôáé óôéò êáôá÷ùñÞóåéò óôï áñ÷åßï åðéëïãþí. Øéá ðáñÜäåéãìá, ìéëþíôáò ãéá ôï <directive-name> óôï ðáñÜäåéãìá ðáñáðÜíù, èá ëÝãáôå <block-name>::<block-directive>, êáé áí áõôü ôï üñéóìá Ý÷åé õðï-åðéëïãÞ ðïõ èÝëåôå íá óõìðåñéëÜâåôå, èá ðñïóèÝôáôå Üëëï Ýíá :: êáé ôï üíïìá ôïõ õðï ïñßóìáôïò. </P>
|
||||
<P>Óçìåßùóç: Ôï áñ÷åßï åðéëïãþí åßíáé åõáßóèçôï óôá êåöáëáßá äçëáäÞ ôï <i>BLOCK-NAME</i> äåí åßíáé ôï ßäéï ìå ôï <i>block-name</i>. ÕðÜñ÷åé åéäéêÞ óçìåßùóç ðïõ áíáöÝñåôáé óôéò êáôá÷ùñÞóåéò óôï áñ÷åßï åðéëïãþí. Øéá ðáñÜäåéãìá, ìéëþíôáò ãéá ôï <directive-name> óôï ðáñÜäåéãìá ðáñáðÜíù, èá ëÝãáôå <block-name>::<block-directive>, êáé áí áõôü ôï üñéóìá Ý÷åé õðï-åðéëïãÞ ðïõ èÝëåôå íá óõìðåñéëÜâåôå, èá ðñïóèÝôáôå Üëëï Ýíá :: êáé ôï üíïìá ôïõ õðï ïñßóìáôïò. </P>
|
||||
<P>Øéá íá áíáöåñèåßôå óå Ýíá áíþíõìï üñéóìá èá êÜíáôå <block-name>:: ðïõ èá óÞìáéíå óå áõôçí ôçí ðåñßðôùóç <block-value>, Þ èá ìðïñïýóå íá åßíáé ìéá êáôá÷þñçóç óå ìéá õðï-åðéëïãÞ ÷ùñßò üíïìá.</P>
|
||||
<P>Ôñåßò ôýðïé ó÷ïëßùí õðïóôéñßæïíôáé:</P>
|
||||
<P># Ó÷üëéï ìéÜò ãñáììÞò<BR>
|
||||
// Ó÷üëéï ìéÜò ãñáììÞò<BR>
|
||||
/* Ó÷üëéï ðïëëþí<BR>
|
||||
ãñáììþí */</P>
|
||||
<P>Ôþñá ðïõ ãíùñßæåôå ðþò ëåéôïõñãåß, äçìéïõñãÞóôå ôï äéêü óáò unrealircd.conf áðï ôçí áñ÷Þ ç áíôéãñÜøôå ôï doc/example.conf êáé áñ÷ßóôå íá ôï åðåîåñãÜæåóôå. ÓõóôÞíåôáé íá ðñï÷ùñÞóåôå âÞìá-âÞìá üëåò ôéò åðéëïãÝò êáé íá ÷ñçóéìïðïéÞóåôå áõôï ôï åã÷åéñßäéï ãéá áíáöïñÜ.</P>
|
||||
<P>Ôþñá ðïõ ãíùñßæåôå ðþò ëåéôïõñãåß, áíôéãñÜøôå ôï <i>doc/example.conf</i> óôïí öÜêåëï ôïõ UnrealIRCd (ð.÷: /home/user/Unreal3.2) êáé ìåôïíïìÜóôå ôï óå <i>unrealircd.conf</i> (Ç äçìéïõñãÞóôå ôï äéêü óáò <i>unrealircd.conf</i> áðôçí áñ÷Þ). ÓõóôÞíåôáé íá ðñï÷ùñÞóåôå âÞìá-âÞìá üëåò ôéò åðéëïãÝò êáé ñõèìßóåéò ôïõ áñ÷åßïõ åðéëïãþí êáé íá ÷ñçóéìïðïéÞóåôå áõôï ôï åã÷åéñßäéï ãéá áíáöïñÜ.</P>
|
||||
</DIV>
|
||||
<P><B><SPAN
|
||||
|
||||
@@ -2429,7 +2464,7 @@ cellPadding=0 border=0>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD class="Normal"> <P><B>quarantine</B></P></TD>
|
||||
<TD class="Normal"> <P>ïé äéá÷åéñéóôÝò óå áõôüí ôïí server èá Ý÷ïõí ôïðéêÜ äéêáéþìáôá ìüíï status</P></TD>
|
||||
<TD class="Normal"> <P>ïé äéá÷åéñéóôÝò óå áõôüí ôïí server äåí ìðïñïýí íá áðïêôÞóïõí äéêáéþìáôá GLOBAL äéá÷åéñéóôÞ(èá ãßíïõí KILL), ÷ñçóéìïðïéåßôáé ãéá äïêéìáóôéêïýò äéáêïìéóôÝò êôë.</P></TD>
|
||||
</TR>
|
||||
</TBODY>
|
||||
</TABLE>
|
||||
@@ -2462,25 +2497,35 @@ style="COLOR: blue">
|
||||
alias <name> {
|
||||
target <nick-to-forward-to>;
|
||||
type <type-of-alias>;
|
||||
spamfilter <yes|no>;
|
||||
};</PRE>
|
||||
<P>(Óçìåßùóç: åðßóçò äåßôå <A
|
||||
|
||||
href="#includedirective">åäþ</A> ãéá ôá standard áñ÷åßá alias ðïõ ðåñéÝ÷ïíôáé óôï UnrealIRCd)</P>
|
||||
<P>Ç åðéëïãÞ alias [standard alias] óáò åðéôñÝðåé íá ðñïùèÞóåôå ìéá åíôïëÞ óå Ýíáí ÷ñÞóôç, ãéá ðáñÜäåéãìá /chanserv óôÝëíåé Ýíá ìÞíõìá óôïí ÷ñÞóôç chanserv. Ôï alias:: ïñßæåé ôï üíïìá ôçò åíôïëÞò ç ïðïßá èá åßíáé ç óõíôüìåõóç (ð.÷: chanserv), ôï alias::target åßíáé ôï üíïìá ç ôï êáíÜëé óôï ïðïßï èá ðñïùèçèåß ôï ìÞíõìá, Üí ôï alias:: åßíáé ôï ßäéï ìå ôï üíïìá, óôï ïðïßï èá ðñïùèçèåß, ôï alias::target åßíáé ðñïáéñåôéêü. Ôï alias::type ïñßæåé ôïí ôýðï ôçò óõíôüìåõóçò, Ýãêõñïé ôýðïé åßíáé services (ï ÷ñÞóôçò åßíáé óôïí server ôùí services), stats (ï ÷ñÞóôçò âñßóêåôáé óôïí server ôùí stats), normal (ï ÷ñÞóôçò åßíáé êáíïíéêüò ÷ñÞóôçò óå ïðïéïíäÞðïôå server), êáé channel (ï óôü÷ïò åßíáé üíïìá êáíáëéïý). Ç åðéëïãÞ alias Ý÷åé áêüìá ìéá ÷ñÞóç ôçò ïðïßáò ï óêïðüò åðåîçãÞôáé ðáñáêÜôù.</P>
|
||||
<P>Ç åðéëïãÞ alias [standard alias] óáò åðéôñÝðåé íá ðñïùèÞóåôå ìéá åíôïëÞ óå Ýíáí ÷ñÞóôç, ãéá ðáñÜäåéãìá /chanserv óôÝëíåé Ýíá ìÞíõìá óôïí ÷ñÞóôç chanserv. Ôï alias:: ïñßæåé ôï üíïìá ôçò åíôïëÞò ç ïðïßá èá åßíáé ç óõíôüìåõóç (ð.÷: chanserv), ôï alias::target åßíáé ôï üíïìá ç ôï êáíÜëé óôï ïðïßï èá ðñïùèçèåß ôï ìÞíõìá, Üí ôï alias:: åßíáé ôï ßäéï ìå ôï üíïìá, óôï ïðïßï èá ðñïùèçèåß, ôï alias::target åßíáé ðñïáéñåôéêü. Ôï alias::type ïñßæåé ôïí ôýðï ôçò óõíôüìåõóçò, Ýãêõñïé ôýðïé åßíáé services (ï ÷ñÞóôçò åßíáé óôïí server ôùí services), stats (ï ÷ñÞóôçò âñßóêåôáé óôïí server ôùí stats), normal (ï ÷ñÞóôçò åßíáé êáíïíéêüò ÷ñÞóôçò óå ïðïéïíäÞðïôå server), êáé channel (ï óôü÷ïò åßíáé üíïìá êáíáëéïý). Áí ôï alias::spamfilter (ìÞ áðáñáßôçôï) Ý÷åé ïñéóôåß óå 'yes', ôüôå ôá spamfilters èá åëÝã÷ïíôáé (ç áñ÷éêÞ åðéëïãÞ åéíáé 'no').<br> Ç åðéëïãÞ alias Ý÷åé åðßóçò êáé Üëëïí Ýíáí óêïðü ðïõ åîçãåßôáé ëåðôïìåñþò ðáñáêÜôù.</P>
|
||||
<P>Óýíôáîç [command alias]:</P>
|
||||
<PRE>
|
||||
alias <name> {
|
||||
alias <name> {
|
||||
/* Ãéá aliases ðïõ óôÝëíïíôáé óå ÷ñÞóôåò/êáíÜëéá */
|
||||
format <regex-expression> {
|
||||
target <nick-to-forward-to>;
|
||||
type <type-of-alias>;
|
||||
parameters <parameter-string>;
|
||||
};
|
||||
/* Ãéá 'ðñáãìáôéêÜ aliases' */
|
||||
format <regex-expression> {
|
||||
command <command>;
|
||||
type real;
|
||||
parameters <parameter-string>;
|
||||
};
|
||||
/* Êôëð... ìðïñåßôå íá Ý÷åôå üóåò åðéëïãÝò äéáìüñöùóçò åðéèõìåßôå.. */
|
||||
format <regex-expression> {
|
||||
...
|
||||
};
|
||||
type command;
|
||||
type command;
|
||||
spamfilter <yes|no>;
|
||||
};</PRE>
|
||||
<P>¼ôáí ç åðéëïãÞ alias ÷ñçóéìïðïéåßôáé ìå áõôÞí ôçí ìïñöÞ, óáò åðéôñÝðåé íá Ý÷åôå ìéá ðéï åõñåßá ðåñéï÷Þ ÷ñÞóçò. Ãéá ðáñÜäåéãìá ìðïñåßôå íá äçìéïõñãÞóåôå óõíôïìåýóåéò üðùò ôï /identify. Ôï alias:: åßíáé ôï ßäéï ìå ðáñáðÜíù, ôï üíïìá ôçò åíôïëÞò óõíôüìåõóçò. Ôï alias::format ïñßæåé ìéá êáíïíéêÞ Ýêöñáóç ðïõ åëÝã÷åôáé ìå ôçí ðñüôáóç ðïõ óôÝëíåôáé óôçí åíôïëÞ alias, êáé áöïý ôáéñéÜîåé ìå ôçí õðï-êáôá÷þñçóç ôçò óõíôüìåõóçò ôï alias::format èá ÷ñçóéìïðïéçèåß, ìðïñåßôå íá Ý÷åôå ðïëëáðëÜ alias::format's ãéá íá ïñßóåôå ôçí åíôïëÞ íá êÜíåé äéáöïñåôéêÜ ðñÜãìáôá áíÜëïãá ìå ôçí ðñüôáóç ðïõ óôÝëíåôáé óå áõôÞí. Ôï alias::format::target åßíáé ï óôü÷ïò óôïí ïðïßï èá ðñïùèçèåß áõôÞ ç óõíôüìåõóç. Ôï alias::format::type ïñßæåé ôïí ôýðï ôçò óõíôüìåõóçò ìå ôïí ïðïßï áõôü ôï ìÞíõìá èá ðñïùèçèåß. Ôï alias::format::parameters åßíáé ôéá èá óôáëèåß óÜí ðáñÜìåôñïò óå áõôÞí ôçí óõíôüìåõóç. Ãéá íá ïñßóåôå ìéÜ áðï ôéò ðáñáìÝôñïõò ðïõ èá äùèåß óôçí óõíôüìåõóç åíôïëÞò ïñßóôå Ýíá % áêïëïõèïýìåíï áðï Ýíáí áñéèìü, ãéá ðáñÜäåéãìá, %1 åßíáé ç ðñþôç ðáñÜìåôñïò. Ãéá íá ïñßóåôå üëåò ôéò ðáñáìÝôñïõò áðï ìßá ðáñÜìåôñï ìÝ÷ñé ôï ôÝëïò äþóôå % áêïëïõèïýìåíï áðï Ýíáí áñéèìü êáé Ýíá -, ãéá ðáñÜäåéãìá ôï %2- åðéóôñÝöåé üëåò ôéò ðáñáìÝôñïõò áðï ôï äåýôåñï ìÝ÷ñé êáé ôï ôåëåõôáßï. ÅðéðëÝïí, ìðïñåßôå íá ïñßóåôå %n ôï ïðïßï èá áíôéêáôáóôáèåß ìå ôï nickname ôïõ ÷ñÞóôç ðïõ Ýäùóå ôçí åíôïëÞ. Ãéá ðáñáäåßãìáôá ÷ñÞóçò ôçò åðéëïãÞò óõíôüìåõóçò alias óå ìïñöÞ åíôïëþí, óõìâïõëåõôåßôå ôï doc/example.conf.</P>
|
||||
<P>¼ôáí ç åðéëïãÞ alias ÷ñçóéìïðïéåßôáé ìå áõôÞí ôçí ìïñöÞ, óáò åðéôñÝðåé íá Ý÷åôå ìéá ðéï åõñåßá ðåñéï÷Þ ÷ñÞóçò. Ãéá ðáñÜäåéãìá ìðïñåßôå íá äçìéïõñãÞóåôå óõíôïìåýóåéò üðùò ôï /identify. Ôï alias:: åßíáé ôï ßäéï ìå ðáñáðÜíù, ôï üíïìá ôçò åíôïëÞò óõíôüìåõóçò. Ôï <b>alias::format</b> ïñßæåé ìéá êáíïíéêÞ Ýêöñáóç ðïõ åëÝã÷åôáé ìå ôçí ðñüôáóç ðïõ óôÝëíåôáé óôçí åíôïëÞ alias, êáé áöïý ôáéñéÜîåé ìå ôçí õðï-êáôá÷þñçóç ôçò óõíôüìåõóçò ôï alias::format èá ÷ñçóéìïðïéçèåß, ìðïñåßôå íá Ý÷åôå ðïëëáðëÜ alias::format's ãéá íá ïñßóåôå ôçí åíôïëÞ íá êÜíåé äéáöïñåôéêÜ ðñÜãìáôá áíÜëïãá ìå ôçí ðñüôáóç ðïõ óôÝëíåôáé óå áõôÞí. Ôï <b>alias::format::target</b> åßíáé ï óôü÷ïò óôïí ïðïßï èá ðñïùèçèåß áõôÞ ç óõíôüìåõóç,üìùò óôçí ðåñßðôùóç ÷ñÞóçò åíüò "ðñáãìáôéêïý alias" ôï <b>alias::format::command</b> ÷ñçóéìïðïéåßôáé áíôßóôïé÷á. Ôï <b>alias::format::type</b> ïñßæåé ôïí ôýðï ôçò óõíôüìåõóçò ìå ôïí ïðïßï áõôü ôï ìÞíõìá èá ðñïùèçèåß. Åêôþò áðï ôïõò ôýðïõò ðïõ áíáöÝñèçêáí ðñéí óôï "Syntax [standard alias]", åðéôñÝðïõìå åðßóçò ôïí "ðñáãìáôéêü" ôýðï åäþ, ãéá ôá "ðñáãìáôéêÜ aliases". Ôï <b>alias::format::parameters</b> åßíáé ôé èá óôáëèåß óÜí ðáñÜìåôñïò óå áõôÞí ôçí óõíôüìåõóç. Ãéá íá ïñßóåôå ìéÜ áðï ôéò ðáñáìÝôñïõò ðïõ èá äùèåß óôçí óõíôüìåõóç åíôïëÞò ïñßóôå Ýíá % áêïëïõèïýìåíï áðï Ýíáí áñéèìü, ãéá ðáñÜäåéãìá, %1 åßíáé ç ðñþôç ðáñÜìåôñïò. Ãéá íá ïñßóåôå üëåò ôéò ðáñáìÝôñïõò áðï ìßá ðáñÜìåôñï ìÝ÷ñé ôï ôÝëïò äþóôå % áêïëïõèïýìåíï áðï Ýíáí áñéèìü êáé Ýíá -, ãéá ðáñÜäåéãìá ôï %2- åðéóôñÝöåé üëåò ôéò ðáñáìÝôñïõò áðï ôï äåýôåñï ìÝ÷ñé êáé ôï ôåëåõôáßï. ÅðéðëÝïí, ìðïñåßôå íá ïñßóåôå %n ôï ïðïßï èá áíôéêáôáóôáèåß ìå ôï nickname ôïõ ÷ñÞóôç ðïõ Ýäùóå ôçí åíôïëÞ.<br><br> Ãéá ðáñáäåßãìáôá ÷ñÞóçò ôçò åðéëïãÞò óõíôüìåõóçò alias óå ìïñöÞ åíôïëþí, óõìâïõëåõôåßôå ôï doc/example.conf.</P>
|
||||
</DIV>
|
||||
<P><B><SPAN
|
||||
|
||||
@@ -2564,9 +2609,61 @@ href="#feature_spamfilter">
|
||||
reason "No spamming allowed";
|
||||
};</PRE>
|
||||
</DIV>
|
||||
<p><font class="block_section">4.36 - </font><font class="block_name">ÅðéëïãÞ Cgiirc</font>
|
||||
<font class="block_optional">ÐÑÏÁÉÑÅÔÉÊÏ</font><a name="cgiirc"></a>
|
||||
</p><div class="desc">
|
||||
<p>
|
||||
Ç åðéëïãÞ cgiirc óáò åðéôñÝðåé íá ñõèìßóåôå ôï spoofing äéåõèýíóåùí ãéá ôéò ðýëåò CGI:IRC ðïõ åìðéóôåýåóôå
|
||||
(<a href="#feature_cgiirc">more info</a>).</p>
|
||||
|
||||
<p>Óýíôáîç:<br>
|
||||
<pre>
|
||||
cgiirc {
|
||||
type <webirc|old>;
|
||||
username <mask>; /* ðñïáéñåôéêü */
|
||||
hostname <mask>;
|
||||
password <password>; /* ìüíï ãéá ôýðïõ webirc */
|
||||
};</pre></p>
|
||||
<p><b>type</b> ìðïñåß íá ðÜñåé ôçí ôéìÞ 'webirc' Þ 'old'.<br>
|
||||
<b>username</b> óõãêñßíåôáé ìå ôï ident (áí õðÜñ÷åé). Áí äåí ïñéóèåß, ðáßñíåé ôçí ôéìÞ "*".<br>
|
||||
<b>hostname</b> åßíáé ç äéåýèõíóç ìå ôçí ïðïßá ðñÝðåé íá ôáéñéÜæåé.<br>
|
||||
<b>password</b> åßíáé ï êùäéêüò webirc, ÷ñçóéìïðïéåßôáé ìüíï ãéá ôïí ôýðï 'webirc'.<br>
|
||||
</p>
|
||||
|
||||
<p><b>Ðþò íá ôï ñõèìßóåôå ìå ôçí ìÝèïäï 'webirc' (ðñïôåéíüìåíç ìÝèïäïò)</b><br>
|
||||
Óôï áñ÷åßï ñõèìßóåùí CGI:IRC (cgiirc.conf) ïñßæåôå ôï webirc_password óå Ýíá êáëü êùäéêü.<br>
|
||||
¸ðåéôá, óôï unrealircd.conf ðñïóèÝôåôå ìéá åðéëïãÞ cgiirc ãéá íá åðéôñÝøåôå áõôçí ôçí äéåýèõíóç êáé ôïí êùäéêü êáé ïñßæåôå ôï
|
||||
cgiirc::type óå "webirc".<br>
|
||||
<br>
|
||||
ÐáñÜäåéãìá:<br>
|
||||
Óôï áñ÷åßï ñõèìßóåùí CGI:IRC (cgiirc.conf) ðñïóèÝôåôå:
|
||||
<pre>webirc_password = LpT4xqPI5</pre>
|
||||
¸ðåéôá, óôï unrealircd.conf ðñïóèÝôåôå ôçí åðéëïãÞ cgiirc:
|
||||
<pre>cgiirc {
|
||||
type webirc;
|
||||
hostname "1.2.3.4";
|
||||
password "LpT4xqPI5";
|
||||
};</pre></p>
|
||||
|
||||
<p><b>Ðþò íá ôï ñõèìßóåôå ìå ôçí ìÝèïäï 'old'</b><br>
|
||||
ÓÇÌÅÉÙÓÇ: ÁõôÞ äåí åéíáé ç ðñïôåéíüìåíç ìÝèïäïò áöïõ Ý÷åé äýï ìåéïíåêôÞìáôá:
|
||||
áõôÞ ç ìÝèïäïò èá óôåßëåé ôçí IP/äéåýèõíóç ðïõ èá ãßíåé spoof þò êùäéêüò äéáêïìéóôÞ, ðïõ óçìáßíåé ïôé äåí ìðïñåßôå íá ïñßóåôå Ýíáí êùäéêü äéáêïìéóôÞ þò Ýíáò CGI:IRC ÷ñÞóôçò. ÅðéðëÝïí, ï Ýëåã÷ïò ôçò ðñüóâáóçò åßíáé ìüíï âáóéóìÝíïò óôçí äéåýèõíóç êáé äåí ÷ñåéÜæåôáé êùäéêü üðùò ç ìÝèïäïò 'webirc'. Ìå ëßãá ëüãéá,
|
||||
ßóùò äåí ðñÝðåé íá ÷ñçóéìïðïéÞóåôå áõôÞí ôçí ìÝèïäï åêôþò êáé áí õðÜñ÷åé êáëüò ëüãïò ãéá íá ôï êÜíåôå.<br>
|
||||
<br>
|
||||
Óôï áñ÷åßï åðéëïãþí CGI:IRC (cgiirc.conf) ïñßæåôå realhost_as_password óå 1.<br>
|
||||
¸ðåéôá, óôï unrealircd.conf ðñïóèÝôåôå ìéá åðéëïãÞ cgiirc ãéá íá åðéôñÝøåôå áõôÞí ôçí äéåýèõíóç.<br>
|
||||
<br>
|
||||
ÐáñÜäåéãìá:<br>
|
||||
Óôï áñ÷åßï åðéëïãþí CGI:IRC (cgiirc.conf) ðñïóèÝôåôå:
|
||||
<pre>realhost_as_password = 1</pre>
|
||||
¸ðåéôá, óôï unrealircd.conf ðñïóèÝôåôå ìéá åðéëïãÞ cgiirc:
|
||||
<pre>cgiirc {
|
||||
type old;
|
||||
hostname "1.2.3.4";
|
||||
};</pre></p>
|
||||
</div>
|
||||
<P><B><SPAN
|
||||
|
||||
style="FONT-SIZE: 18pt">4.36 - ÅðéëïãÞ Set</SPAN></B> <B><SPAN
|
||||
style="FONT-SIZE: 18pt">4.37 - ÅðéëïãÞ Set</SPAN></B> <B><SPAN
|
||||
|
||||
style="COLOR: red">REQUIRED</SPAN></B> <SPAN
|
||||
|
||||
@@ -2641,7 +2738,12 @@ href="#includedirective">include</A>.
|
||||
<P><B>set::who-limit <limit>;</B><BR>
|
||||
Ïñßæåé ôï üñéï ãéá ôïí ìÝãéóôï áñéèìü ôùí áðïôåëåóìÜôùí ðïõ èá åðéóôñáöïýí áðï Ýíá /who. Áí áõôÞ ç åðéëïãÞ äåí åðéëå÷èåß, äåí èá åöáñìïóôåß êáíÝíá üñéï.</P>
|
||||
<P><B>set::silence-limit <limit>;</B><BR>
|
||||
Ïñßæåé ôï üñéï ãéá ôïí ìÝãéóôï áñéèìü ôùí SILENCE åðéëïãþí. Áí áõôç ç åðéëïãÞ äåí ïñéóôåß, ïñßæåôáé áõôüìáôá ôï üñéï ôùí 15.</P>
|
||||
Ïñßæåé ôï üñéï ãéá ôïí ìÝãéóôï áñéèìü ôùí SILENCE åðéëïãþí. Áí áõôç ç åðéëïãÞ äåí ïñéóôåß, ïñßæåôáé áõôüìáôá ôï üñéï ôùí 15.</P>
|
||||
<p><B>set::maxbans <limit>;</B><br>
|
||||
Ïñßæåé ôï üñéï ôùí ìÝãéóôùí bans (+b) ðïõ åðéôñÝðïíôáé óå êÜèå êáíÜëé. Ç áñ÷éêÞ åðéëïãÞ åßíáé 60.
|
||||
Áí ôï áëëÜîåôå, óéãïõñåõôåßôå ïôé ñßîáôå ìéá ìáôéÜ êáé óôï maxbanlength (äåßôå ðáñáêÜôù)!</p>
|
||||
<p><b>set::maxbanlength <limit>;</b><br>
|
||||
Ðáñüìïéï ìå ôï ðáñáðÜíù, áëëÜ ïñßæåé ôïí ìÝãéóôï áñéèìü ÷áñáêôÞñùí ãéá üëá ôá bans óõãêåíôñùìÝíá ìáæß, êÜôé ðïõ âáóéêÜ èÝôåé Ýíá üñéï óôçí (Þìç-)ìÝãéóôï ìÝãåèïò ìíÞìçò ôçí ïðïßá ìðïñïýí íá êáôáëÜâïõí üëá ôá bans óå Ýíá êáíÜëé. Ç áñ÷éêÞ åðéëïãÞ åßíáé 2048 (bytes). Ìå ôçí áñ÷éêÞ åðéëïãÞ set::maxbans óôá 60 áõôï åðéôñÝðåé 2048:60=34 ÷áñáêôÞñåò ãéá êÜèå ban óå ìÝóï üñï.</p>
|
||||
<P><B>set::oper-only-stats <stats-list>;</B><BR>
|
||||
Ïñßæåé ìéá ëßóôá ìå ôá stats flags ÷ùñßò äéá÷ùñéóôéêü ðïõ êáèïñßæåé ðïéá stats flags ìðïñïýí íá ÷ñçóéìïðïéÞóïõí ìüíï ïé äéá÷åéñéóôÝò. ÁãíïÞóôå áõôü ôï üñéóìá ãéá íá åðéôñÝøåôå óôïõò ÷ñÞóôåò íá ÷ñçóéìïðïéÞóïõí üëá ôá flags, ç ïñßóôå * ùóôå íá ìçí ìðïñïýí ïé áðëïß ÷ñÞóôåò íá ÷ñçóéìïðïéÞóïõí êáíÝíá flag. Ìüíï ç óýíôïìç ìïñöÞ ôùí stats flags ìðïñåß íá ïñéóôåß åäþ.</P>
|
||||
<P><B>set::oper-only-stats {<stats-flag>; <stats-flag>;};</B><BR>
|
||||
@@ -2651,7 +2753,7 @@ href="#includedirective">include</A>.
|
||||
<P><B>set::maxdccallow <amount-of-entries>;</B><BR>
|
||||
Ïñßæåé ôïí ìÝãéóôï áñéèìü åðéëïãþí ðïõ ìðïñåß íá Ý÷åé Ýíáò ÷ñÞóôçò óôçí ëßóôá DCCALLOW ôïõ.</P>
|
||||
<P><B>set::channel-command-prefix <command-prefixes>;</B><BR>
|
||||
Ïñßæåé ôï ðñüèåìá ÷áñáêôÞñùí ãéá õðçñåóßåò "åíôïëþí êáíáëéþí". Ìçíýìáôá ðïõ áñ÷ßæïõí ìå ïðïéïíäÞðïôå áðï ôïõò êáèïñéóìÝíïõò ÷áñáêôÞñåò èá óôÝëíïíôáé áêüìá êáé áí ï ÷ñÞóôçò åßíáé +d. Ç áñ÷éêÞ ôéìÞ åßíáé "`".</P>
|
||||
Ïñßæåé ôï ðñüèåìá ÷áñáêôÞñùí ãéá õðçñåóßåò "åíôïëþí êáíáëéþí". Ìçíýìáôá ðïõ áñ÷ßæïõí ìå ïðïéïíäÞðïôå áðï ôïõò êáèïñéóìÝíïõò ÷áñáêôÞñåò èá óôÝëíïíôáé áêüìá êáé áí ï ÷ñÞóôçò åßíáé +d. Ç áñ÷éêÞ ôéìÞ åßíáé "`!.".</P>
|
||||
<p><b>set::allowed-nickchars { <list> };</b><br>
|
||||
ÓÝô ÷áñáêôÞñùí / ãëùóóþí ðïõ åðéôñÝðïíôáé óôá nicks, äåßôå <a href="#feature_nickchars">Óåô ÷áñáêôÞñùí Nick</a>.</p>
|
||||
<P><B>set::allow-userhost-change [never|always|not-on-channels|force-rejoin]</B><BR>
|
||||
@@ -2760,7 +2862,16 @@ href="#includedirective">include</A>.
|
||||
Áí ïñéóôåß óå yes (Þ '1') åðéóôñÝöåé 'invite only' óå üðïéïí áðëü ÷ñÞóôç ðñïóðáèÞóåé íá åéóÝñèåé óôï virus-help-channel. Ìüíï äéá÷åéñéóôÝò, Üôïìá ðïõ ôáéñéÜæïõí ìå ôá spamfilters êáé Üôïìá ðïõ ðñïóêëÞèçóáí óôï êáíÜëé ìðïñïýí íá åéóÝñèïõí.</P>
|
||||
<P><B>set::spamfilter::except <target(s)></B><BR>
|
||||
Áõôïß ïé óôü÷ïé åßíáé åîáéñÝóåéò áðï ôï spam filtering (êáìßá åíÝñãåéá äåí èá ãßíåé), ìðïñåß íá åßíáé Ýíáò óôü÷ïò Þ ìéá ëßóôá äéá÷ùñéóìÝíç áðï êüììáôá.. ð.÷: except "#help,#spamreport"</P>
|
||||
</DIV>
|
||||
<p><b>set::check-target-nick-bans <yes|no></b><br>
|
||||
¼ðïôå êÜðïéïò ÷ñÞóôçò áëëÜæåé ôï øåõäþíõìï ôïõ/ôçò, åëÝã÷åé áí ôï ÍÅÏ øåõäþíõìï ðñÝðåé íá ãßíåé ban. Áí ðñÝðåé, äåí åðéôñÝðåé ôçí áëëáãÞ ôïõ øåõäùíýìïõ. Ç áñ÷éêÞ åðéëïãÞ åßíáé yes.</p>
|
||||
<p><font class="set">set::timesynch::enabled <yes|no></font><br>
|
||||
Åíåñãïðïéåß ç áðåíåñãïðïéåß ôïí óõã÷ñïíéóìü þñáò óôï öüñôùìá. Default is yes.</p>
|
||||
<p><font class="set">set::timesynch::server <IP></font><br>
|
||||
Ïé äéáêïìéóôÝò ìå ôïõò ïðïßïõò èá óõã÷ñïíßæåé ôçí þñá. Áõôü ìðïñåß íá áðïôåëåßôáé áðï ìÝ÷ñé 4 IP's ÷ùñéóìÝíåò ìå êüììá.
|
||||
Ïé äéáêïìéóôÝò ðñÝðåé íá õðïóôéñßæïõí ôï ðñïôüêïëï NTP Ýêäïóç 4. Ç áñ÷éêÞ ôéìÞ åßíáé íá ÷ñçóéìïðïéïýíôáé 3 äéáêïìéóôÝò óõã÷ñïíéóìïý (US, EU,
|
||||
AU). ÁéôÞóåéò óå áõôïýò ôïõò äéáêïìéóôÝò óôÝëíïíôáé ðáñÜëëçëá,åíù ç ãñçãïñüôåñç áðÜíôçóç êåñäßæåé.</p>
|
||||
<p><font class="set">set::timesynch::timeout <time></font><br>
|
||||
Ï ìåãáëýôåñïò ÷ñüíïò ðïõ èá ðåñéìÝíåé Ýíáí äéáêïìéóôÞ ãéá íá áðáíôÞóåé. Áõôü åßíáé ìéá ôéìÞ ìåôáîý ôïõ 1 êáé ôïõ 5, ðåñéóóüôåñï äåí åßíáé äõíáôüí ãéáôé ðñïêáëåß ìåãÜëç áíáêñßâåéá. ÁõôÞ ç åðéëïãÞ Ý÷åé áñ÷éêÞ ôéìÞ 3 êáé ìÜëëïí äåí õðÜñ÷åé êáëüò ëüãïò ãéá íá ôçí áëëÜîåôå.</p></DIV>
|
||||
<P><B><SPAN
|
||||
|
||||
style="FONT-SIZE: 18pt">5 – ÅðéðëÝïí áñ÷åßá<A name=addtlfiles></A> </SPAN></B></P>
|
||||
@@ -2990,7 +3101,7 @@ cellPadding=0 width="75%" border=1>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD class="Normal"> <P style="TEXT-ALIGN: center" align=center>d</P></TD>
|
||||
<TD class="Normal"> <P>Ïñßæåé íá ìçí äÝ÷åóôå ìçíýìáôá êáíáëéþí PRIVMSGs</P></TD>
|
||||
<TD class="Normal"> <P>Ïñßæåé íá ìçí äÝ÷åóôå ìçíýìáôá êáíáëéþí PRIVMSGs (ìå ôçí åîÝñåóç áõôþí ðïõ áñ÷ßæïõí ìå óõãêåêñéìÝíïõò ÷áñáêôÞñåò,äåßôå set::channel-command-prefix)</P></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD class="Normal"> <P style="TEXT-ALIGN: center" align=center>G</P></TD>
|
||||
@@ -3692,7 +3803,7 @@ style="FONT-SIZE: 18pt">8.8 Protecting against exploits</SPAN></B><A
|
||||
|
||||
name=secantiexploit></A></P>
|
||||
<DIV style="MARGIN-LEFT: 11.25pt">
|
||||
<P>ÕðÜñ÷ïõí ôá kernel patches ôá ïðïßá êÜíïõí ðïëý äýóêïëç ôçí ëåéôïõñãßá êÜðïéùí stack- êáé heap-based exploits. Áõôü âÝâáéá äåí ðñÝðåé íá åßíáé ôï êýñéï óçìåßï åóôßáóçò ôçò ðñïóï÷Þò óáò, Ý÷åôå Ýíáí ðïëõ ìåãáëýôåñï êßíäõíï íá ãßíåôå exploited ìÝóù Üëëùí óçìåßùí åêôþò áðï áõôÜ... ãéá äéÜöïñïõò ëüãïõò.<BR>
|
||||
<P>ÕðÜñ÷ïõí ôá kernel patches ôá ïðïßá êÜíïõí ðïëý äýóêïëç ôçí ëåéôïõñãßá êÜðïéùí stack- êáé heap-based exploits. Áõôü åßíáé êáëü, üìùò äåí ðñÝðåé íá åßíáé ôï êýñéï óçìåßï åóôßáóçò ôçò ðñïóï÷Þò óáò, Ý÷åôå Ýíáí ðïëõ ìåãáëýôåñï êßíäõíï íá ãßíåôå exploited ìÝóù Üëëùí óçìåßùí åêôþò áðï áõôÜ... ãéá äéÜöïñïõò ëüãïõò.<BR>
|
||||
<BR>
|
||||
ÕðÜñ÷åé êÜôé ðïõ ðñÝðåé íá êÜíåôå âÝâáéá, äçëáäÞ íá ×ÑÇÓÉÌÏÐÏÉÅÉÔÅ ÐÁÍÔÁ ÔÇÍ ÔÅËÅÕÔÁÉÁ ÅÊÄÏÓÇ, åããñáöåßôå óôçí <A
|
||||
|
||||
@@ -3712,7 +3823,7 @@ style="FONT-SIZE: 18pt">9 – Frequently Asked Questions (FAQ)</SPAN></B><A
|
||||
|
||||
name=faq></A></P>
|
||||
<DIV style="MARGIN-LEFT: 11.25pt">
|
||||
<P>Ôï FAQ åßíáé äéáèÝóçìï <A href="http://www.vulnscan.org/UnrealIrcd/faq/"
|
||||
<P>Ôï FAQ åßíáé äéáèÝóçìï <A href="http://www.vulnscan.org/UnrealIRCd/faq/"
|
||||
|
||||
target=_blank>åäþ</A></P>
|
||||
</DIV>
|
||||
|
||||
+216
-85
@@ -12,32 +12,34 @@
|
||||
.block_old { font-size: 14; }
|
||||
.set { font-weight: bold; }
|
||||
.desc { margin-left: 15px; }
|
||||
pre { font: "times new roman"; font-style: normal;}
|
||||
pre { font: "times new roman"; font-style: normal; background-color: #eeeeee;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<!-- $Id$ -->
|
||||
|
||||
<body>
|
||||
English | <a href="unreal32docs.de.html">German</a> |
|
||||
English |
|
||||
<a href="unreal32docs.de.html">German</a> |
|
||||
<a href="unreal32docs.es.html">Spanish</a> |
|
||||
<a href="unreal32docs.hu.html">Hungarian</a> |
|
||||
<a href="unreal32docs.fr.html">French</a> |
|
||||
<a href="unreal32docs.gr.html">Greek</a>
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<br><br>
|
||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
|
||||
<font size="4">Version: 3.2.3</font><br>
|
||||
<b>Last doc update:</b> 2005-03-13</div>
|
||||
<font size="4">Version: 3.2.5</font><br>
|
||||
<b>Last doc update:</b> 2006-06-15</div>
|
||||
<br>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Documentation:</b> CKnight^ / Syzop<br>
|
||||
<p>Due to the increasing complexity of UnrealIRCd3.2 We have switched to an easier
|
||||
to navigate, more inclusive documentation set. To view this documentation you
|
||||
must have a compatible browser, which are listed below. Up to date docs are
|
||||
available at <a href="http://www.vulnscan.org/UnrealIrcd/unreal32docs.html">http://www.vulnscan.org/UnrealIrcd/unreal32docs.html</a>
|
||||
and a FAQ at <a href="http://www.vulnscan.org/UnrealIrcd/faq/" TARGET="_blank">http://www.vulnscan.org/UnrealIrcd/faq/</a>.
|
||||
<p>To view this documentation you must have a compatible browser, which are listed below. Up to date docs are
|
||||
available at <a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
|
||||
and a FAQ at <a href="http://www.vulnscan.org/UnrealIRCd/faq/" TARGET="_blank">http://www.vulnscan.org/UnrealIRCd/faq/</a>.
|
||||
</p>
|
||||
<p><b>Compatible Browsers: </b><br>
|
||||
<ul>
|
||||
@@ -70,7 +72,9 @@ English | <a href="unreal32docs.de.html">German</a> |
|
||||
-- 3.14. <a href="#feature_spamfilter">Spamfilter</a><br>
|
||||
-- 3.15. <a href="#feature_cidr">CIDR</a><br>
|
||||
-- 3.16. <a href="#feature_nickchars">Nick Character Sets</a><br>
|
||||
-- 3.17. <a href="#feature_other">Other features</a><br>
|
||||
-- 3.17. <a href="#feature_cgiirc">CGI:IRC Support</a><br>
|
||||
-- 3.18. <a href="#feature_timesync">Time Synchronization</a><br>
|
||||
-- 3.19. <a href="#feature_other">Other features</a><br>
|
||||
4. <a href="#configuringyourunrealircdconf">Configuring your unrealircd.conf
|
||||
file</a><br>
|
||||
---4.1. <a href="#configurationfileexplained">Configuration file explained</a><br>
|
||||
@@ -108,7 +112,8 @@ English | <a href="unreal32docs.de.html">German</a> |
|
||||
---4.33. <a href="#helpblock">Help Block</a><br>
|
||||
---4.34. <a href="#officialchannels">Official Channels Block</a><br>
|
||||
---4.35. <a href="#spamfilter">Spamfilter Block</a><br>
|
||||
---4.36. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
||||
---4.36. <a href="#cgiirc">Cgiirc Block</a><br>
|
||||
---4.37. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
||||
5. <a href="#addtlfiles">Additional Files</a><br>
|
||||
6. <a href="#userchannelmodes">User & Channel Modes</a><br>
|
||||
7. <a href="#useropercommands">User & Oper Commands</a><br>
|
||||
@@ -122,7 +127,7 @@ English | <a href="unreal32docs.de.html">German</a> |
|
||||
---8.7. <a href="#secinformation">Information disclosure</a><br>
|
||||
---8.8. <a href="#secantiexploit">Protecting against exploits</a><br>
|
||||
---8.9. <a href="#secsummary">Summary</a><br>
|
||||
9. <a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">Frequently Asked Questions (FAQ)</a><br>
|
||||
9. <a href="http://www.vulnscan.org/UnrealIRCd/faq/" target="_blank">Frequently Asked Questions (FAQ)</a><br>
|
||||
A. <a href="#regex">Regular Expressions</a><br>
|
||||
---A.1. <a href="#regexlit">Literals</a><br>
|
||||
---A.2. <a href="#regexdot">Dot Operator</a><br>
|
||||
@@ -141,9 +146,9 @@ English | <a href="unreal32docs.de.html">German</a> |
|
||||
another software package is strictly prohibited without the written permission
|
||||
of the UnrealIRCd Development Team. This document may be copied/printed/reproduced/published
|
||||
as many times as you like, provided it is for use with UnrealIRCd and it is not
|
||||
modified in anyway. – Copyright UnrealIRCd Development Team 2002-2004</p>
|
||||
modified in anyway. – Copyright UnrealIRCd Development Team 2002-2006</p>
|
||||
<p>Please read this manual before asking for help, you also REALLY want to take a look at the
|
||||
<a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">FAQ</a> since over 80% of your questions/problems are answered in it. If you still
|
||||
<a href="http://www.vulnscan.org/UnrealIRCd/faq/" target="_blank">FAQ</a> since over 80% of your questions/problems are answered in it. If you still
|
||||
need help you can ask for support at irc.ircsystems.net (port 6667) channel #unreal-support (note
|
||||
that we REQUIRE you to read the docs and faq and we only help with UnrealIRCd, not with services!).
|
||||
If you have a real bug (like a crash) then report it at
|
||||
@@ -183,6 +188,8 @@ Windows:<br>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9, 10)
|
||||
</ul>
|
||||
<li><b>Windows version:</b>
|
||||
@@ -201,13 +208,13 @@ Windows:<br>
|
||||
</ul>
|
||||
<br>
|
||||
If you have Unreal3.2 working correctly under other operating systems, please
|
||||
send the details to <a href="mailto:coders@lists.unrealircd.com">coders@lists.unrealircd.com<br>
|
||||
send the details to <a href="mailto:coders@lists.unrealircd.org">coders@lists.unrealircd.org<br>
|
||||
</a> </p>
|
||||
<p><b>Installation Instructions</b><br>
|
||||
Linux:<br>
|
||||
<ol>
|
||||
<li>gunzip -d Unreal3.2.2.tar.gz
|
||||
<li>tar xvf Unreal3.2.2.tar
|
||||
<li>gunzip -d Unreal3.2.X.tar.gz
|
||||
<li>tar xvf Unreal3.2.X.tar
|
||||
<li>cd Unreal3.2
|
||||
<li>./Config
|
||||
<li>Answer these questions to the best of your knowledge. Generally if your not
|
||||
@@ -227,7 +234,8 @@ Windows:<br>
|
||||
<a name="features"></a></p><div class="desc">
|
||||
<p>Some major/nice features are explained in this section. It provides a general overview,
|
||||
and sometimes refers to the config file (something which you might know nothing about yet).</p>
|
||||
<p>You can skip this section, however it's suggested to read it before/after installing.</p></div>
|
||||
<p>You can skip this section, however it's very much suggested to read it before/after installing
|
||||
because otherwise you will not understand concepts such as 'cloaking', 'snomasks', etc.</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.1 - Cloaking</b></font><a name="feature_cloaking"></a></p><div class="desc">
|
||||
<p>Cloaking is a way to hide the real hostname of users, for example if your real host is <i>d5142341.cable.wanadoo.nl</i>,
|
||||
@@ -285,7 +293,7 @@ Windows:<br>
|
||||
You can for example let "/ns identify blah" be forwarded to nickserv (it will be
|
||||
translated to: privmsg nickserv identify blah). You can even make more complex aliases such as /register can forward to
|
||||
ChanServ if the first parameter begins with a # and forwarded to NickServ if it doesn't.</p>
|
||||
<p>Aliases are configured by alias blocks in the configuration file, and you can also include
|
||||
<p>Aliases are configured by <a href="#aliasblock">alias blocks</a> in the configuration file, and you can also include
|
||||
a file with default aliases for most commonly used services.</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.5 - Helpop</b></font><a name="feature_helpop"></a></p><div class="desc">
|
||||
@@ -293,9 +301,7 @@ Windows:<br>
|
||||
the help block in the configuration file. Additionally, a help.conf is included which contains some basic help for
|
||||
all commands.<br>
|
||||
For example <i>/helpop chmodes</i> gives you a overview of all channel modes UnrealIRCd has.<br>
|
||||
Remember that if you are an ircop (helpop) you will have to prefix the keyword with a '?' character,
|
||||
so <i>/helpop</i> becomes <i>/helpop ?</i> and
|
||||
<i>/helpop chmodes</i> becomes <i>/helpop ?chmodes</i> etc..</p></div>
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.6 - Oper access levels</b></font><a name="feature_operaccesslevels"></a></p><div class="desc">
|
||||
<p>There are several oper levels in UnrealIRCd and you can add additional rights (like to use /gline) to
|
||||
@@ -560,11 +566,11 @@ into spaces at runtime. And double underscore ('__') gets an underscore ('_'). A
|
||||
<p>UnrealIRCd now has support for CIDR (Classless Interdomain Routing). CIDR allows you to ban
|
||||
IP ranges. IPs are allocated to ISPs using CIDR, therefore, being able to set a CIDR based ban
|
||||
allows you to easily ban an ISP. Unreal supports CIDR for both IPv4 and IPv6. CIDR masks may be
|
||||
used in the allow::ip, ban user::mask, ban ip::mask, except ban::mask, except throttle::mask,
|
||||
and except tkl::mask (for gzline, gline, and shun). Additionally, CIDR can be used in /kline,
|
||||
/gline, /zline, /gzline, and /shun. Unreal uses the standard syntax of IP/bits, e.g.,
|
||||
127.0.0.0/8 (matches 127.0.0.0 - 127.255.255.255), and fe80:0:0:123::/64 (matches
|
||||
fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
|
||||
used in the allow::ip, oper::from::userhost, ban user::mask, ban ip::mask, except ban::mask,
|
||||
except throttle::mask, and except tkl::mask (for gzline, gline, and shun). Additionally, CIDR
|
||||
can be used in /kline, /gline, /zline, /gzline, and /shun. Unreal uses the standard syntax of
|
||||
IP/bits, e.g., 127.0.0.0/8 (matches 127.0.0.0 - 127.255.255.255), and fe80:0:0:123::/64
|
||||
(matches fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.16 - Nick Character Sets</b></font><a name="feature_nickchars"></a></p><div class="desc">
|
||||
<p>UnrealIRCd now has the ability to specify which charsets/languages should be allowed
|
||||
@@ -594,6 +600,9 @@ A table of all possible choices:<br>
|
||||
<tr><td>greek</td><td>Greek characters</td><td>iso8859-7</td></tr>
|
||||
<tr><td>turkish</td><td>Turkish characters</td><td>iso8859-9</td></tr>
|
||||
<tr><td>russian-w1251</td><td>Russian characters</td><td>windows-1251</td></tr>
|
||||
<tr><td>belarussian-w1251</td><td>Belarussian characters</td><td>windows-1251</td></tr>
|
||||
<tr><td>ukrainian-w1251</td><td>Ukrainian characters</td><td>windows-1251</td></tr>
|
||||
<tr><td><b>windows-1251</b></td><td>russian-w1251, belarussian-w1251, ukrainian-w1251</td><td>windows-1251</td></tr>
|
||||
<tr><td>hebrew</td><td>Hebrew characters</td><td>iso8859-8-I/windows-1255</td></tr>
|
||||
<tr><td>chinese-simp</td><td>Simplified Chinese</td><td>Multibyte: GBK/GB2312</td></tr>
|
||||
<tr><td>chinese-trad</td><td>Tradditional Chinese</td><td>Multibyte: GBK</td></tr>
|
||||
@@ -620,17 +629,39 @@ Example 2, if you have mainly chinese users and want to allow "normal" chinese c
|
||||
<pre>set { allowed-nickchars { chinese-simp; chinese-trad; }; };</pre>
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.17 - Other features</b></font><a name="feature_other"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.17 - CGI:IRC Support</b></font><a name="feature_cgiirc"></a></p><div class="desc">
|
||||
<p>UnrealIRCd has support for CGI:IRC host spoofing, which means you can mark specific CGI:IRC
|
||||
gateways as "trusted" which will cause the IRCd to show the users' real host/ip everywhere on
|
||||
IRC, instead of the host/ip of the CGI:IRC-gateway.</p>
|
||||
<p>See the <a href="#cgiirc">cgiirc block</a> for information on how to configure this.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.18 - Time Synchronization</b></font><a name="feature_timesync"></a></p><div class="desc">
|
||||
<p>Having correct time is extremely important for IRC servers. Without correct time, channels can desynch, innocent
|
||||
users can be killed, channels might not show up properly in /LIST, in short: huge trouble will arrise.</p>
|
||||
<p>UnrealIRCd has some build-in time synchronization support.
|
||||
Although not optimal (time can still be off a few seconds), it should get rid of most time differences.
|
||||
If you can, you are still recommended to run time synchronization software such as ntpd on *NIX or
|
||||
the time synchronization service on Windows (in that case, you can turn off Unreal's time synchronization, more on that later).</p>
|
||||
<p>What UnrealIRCd does (by default) is do a one-shot timesync attempt when booting. It sends (by default) a request
|
||||
to multiple time servers and when it gets the first (fastest) reply, it will adjust the internal ircd clock
|
||||
(NOT the system clock). If, for some reason, Unreal does not get a reply from the timeserver within 3 seconds,
|
||||
the IRCd will continue to boot regardlessly (should rarely happen).</p>
|
||||
<p>Time synchronization is configured (and can be turned off) through the <b>set::timesynch</b> block, see
|
||||
the <a href="#setblock">set documentation</a> for more information.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.19 - Other features</b></font><a name="feature_other"></a></p><div class="desc">
|
||||
<p>UnrealIRCd has a lot of features so not everything is covered here... You'll find that out by yourself.</p></div>
|
||||
|
||||
<p> </p>
|
||||
<p><font size="+2"><b>4.0 - Configuring your unrealircd.conf</b></font>
|
||||
<a name="configuringyourunrealircdconf"></a></p><div class="desc">
|
||||
<p>First of all, creating a good unrealircd.conf will take some time, probably
|
||||
something like 10 - 60m. You can try to get it booted up as quickly as you can and
|
||||
tweak later, or you can learn the major sections directly step-by-step which is
|
||||
the recommended method ;P. If you have any problems, check your syntax, check the manual
|
||||
and check the FAQ before asking for help/reporting a bug.</p></div>
|
||||
<p>First of all, creating your first unrealircd.conf will take time (say, 15-60
|
||||
minutes). Creating a <u>good</u> unrealircd.conf will take even more time.
|
||||
You should not rush to get the IRCd booted, but rather go through things
|
||||
step-by-step. If you have any problems, check your syntax, check this manual
|
||||
and check the <a href="http://www.vulnscan.org/UnrealIRCd/faq/">FAQ</a> before asking for help/reporting a bug.</p></div>
|
||||
<p><b><font size="+2">4.1 Configuration File Explained</font></b><a name="configurationfileexplained"></a><br><div class="desc">
|
||||
</p>
|
||||
<p>The new system uses a block-based format. Each entry, or block, in the new
|
||||
@@ -654,8 +685,8 @@ Example 2, if you have mainly chinese users and want to allow "normal" chinese c
|
||||
Also note that there is no set format, meaning the whole block can appear on
|
||||
one line or over multiple lines. The format above is what is normally used (and
|
||||
what will be used in this file) because it is easy to read. </p>
|
||||
<p>Note: the configuration file is currently case sensitive so BLOCK-NAME is not
|
||||
the same as block-name. There is a special notation used to talk about entries
|
||||
<p>Note: the configuration file is currently case sensitive so <i>BLOCK-NAME</i> is not
|
||||
the same as <i>block-name</i>. There is a special notation used to talk about entries
|
||||
in the config file. For example, to talk about <directive-name> in the
|
||||
example above, you'd say <block-name>::<block-directive>, and if
|
||||
that directive has a sub block you want to reverence, you would add another
|
||||
@@ -669,9 +700,11 @@ Example 2, if you have mainly chinese users and want to allow "normal" chinese c
|
||||
/* Multi line<br>
|
||||
comment */<br>
|
||||
</p>
|
||||
<p>Now that you know how it works, create your unrealircd.conf from scratch or
|
||||
copy doc/example.conf and start editing. It's recommended to walk step by step
|
||||
through all block types and use this manual as a reference.</p>
|
||||
<p>Now that you know how it works, copy <i>doc/example.conf</i> to your UnrealIRCd
|
||||
directory (eg: /home/user/Unreal3.2) and rename it to <i>unrealircd.conf</i>
|
||||
(OR create your <i>unrealircd.conf</i> from scratch).
|
||||
It's recommended to walk step by step through all block types and
|
||||
settings in your conf and use this manual as a reference.</p>
|
||||
<p></p></div>
|
||||
<p><font class="block_section">4.2 - </font><font class="block_name">Me Block</font>
|
||||
<font class="block_required">REQUIRED</font> <font class="block_old">(Previously known as the M:Line)</font><a name="meblock"></a><div class="desc">
|
||||
@@ -733,6 +766,11 @@ class <name> {
|
||||
maxclients <maximum-clients>;
|
||||
sendq <send-queue>;
|
||||
recvq <recv-queue>;
|
||||
options {
|
||||
<option>;
|
||||
<option>;
|
||||
...
|
||||
};
|
||||
};
|
||||
</pre></p>
|
||||
<p> </p>
|
||||
@@ -746,6 +784,10 @@ class <name> {
|
||||
<p><b>sendq</b> specifies the amount of data which can be in the send queue (very high for servers with low bandwidth, medium for clients)</p>
|
||||
<p><b>recvq</b> specifies the amount of data which can be in the receive queue and is used for flood control
|
||||
(this only applies to normal users, try experimenting with values 3000-8000, 8000 is the default).</p>
|
||||
<p><b>options block</b> (optional)<br>
|
||||
Valid options are:<br>
|
||||
<b>notargetlag</b> users are not artificialy lagged. So, they will not get "Message target change too fast." anymore<br>
|
||||
</p>
|
||||
<p>Examples:<br>
|
||||
<pre>
|
||||
class clients {
|
||||
@@ -755,7 +797,7 @@ class clients {
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers{
|
||||
class servers {
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Max servers we can have linked at a time */
|
||||
sendq 1000000;
|
||||
@@ -814,7 +856,7 @@ allow {
|
||||
<b>noident</b> don't use ident but use username specified by client<br>
|
||||
<b>ssl</b> only match if this client is connected via SSL<br>
|
||||
<b>nopasscont</b> continue matching if no password was given (so you can put clients in special classes
|
||||
if they supply a password).
|
||||
if they supply a password).</p>
|
||||
<p>Examples:<br>
|
||||
<pre>
|
||||
allow {
|
||||
@@ -975,7 +1017,7 @@ listen *:6601 {
|
||||
<tr>
|
||||
<td><div align="center">h</div></td>
|
||||
<td><div align="center">helpop</div></td>
|
||||
<td>Oper receives umode +h (helpop)</td>
|
||||
<td>Oper is marked as "availiable for help" when he/she is not away</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">w</div></td>
|
||||
@@ -1062,11 +1104,6 @@ listen *:6601 {
|
||||
<td><div align="center">can_setq</div></td>
|
||||
<td>Can use usermode +q</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">X</div></td>
|
||||
<td><div align="center">can_addline</div></td>
|
||||
<td>Can use /addline</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">d</div></td>
|
||||
<td><div align="center">can_dccdeny</div></td>
|
||||
@@ -1232,7 +1269,7 @@ oper bobsmith {
|
||||
global;
|
||||
};
|
||||
swhois "Example of a whois mask";
|
||||
snomask frebWqFv;
|
||||
snomask cFfkoSsqNG;
|
||||
};
|
||||
</pre></p>
|
||||
<a name="operoverride"><b>Some little info about OperOverride:</b><br>
|
||||
@@ -1265,11 +1302,18 @@ drpass {
|
||||
<p><font class="block_section">4.9 - </font><font class="block_name">Include Directive</font><a name="includedirective"></a><div class="desc">
|
||||
</p>
|
||||
<p>Syntax:<br>
|
||||
include <file-name>;</p>
|
||||
<pre>
|
||||
include <file-name> {
|
||||
bind-ip <ip-to-bind-to>;
|
||||
};</pre></p>
|
||||
<p>This directive specifies a filename to be loaded as a separate configuration
|
||||
file. This file may contain any type of config block and can even include other
|
||||
files. Wildcards are supported in the file name to allow you to load multiple
|
||||
files at once.</p>
|
||||
<p><b>bind-ip</b> (optional)<br>
|
||||
Can be used to bind to a specific IP (ex: 192.168.0.1) from where we should
|
||||
connect from to download file-name in case of having LIBCURL defined.
|
||||
</p>
|
||||
<p><b>example 1: a network file</b><br>
|
||||
<pre>include mynetwork.network;</pre></p>
|
||||
<p>That would be the statement to use if you wanted to use a separate network
|
||||
@@ -1296,7 +1340,7 @@ drpass {
|
||||
<font class="block_required">REQUIRED</font><a name="loadmoduledirective"></a><div class="desc">
|
||||
</p>
|
||||
<p>Syntax:<br>
|
||||
loadmodule <file-name>;</p>
|
||||
<pre>loadmodule <file-name>;</pre></p>
|
||||
<p>See <a href="#feature_modules">here</a> why modules are nice/useful.</p>
|
||||
<p>Modules that come standard with Unreal3.2:</p>
|
||||
<p>commands.so / commands.dll - All the / commands (well not all yet, but will eventually be all) <font color="red">REQUIRED</font><br>
|
||||
@@ -1379,7 +1423,7 @@ tld {
|
||||
channel <channel-name>;
|
||||
options {
|
||||
ssl;
|
||||
}
|
||||
};
|
||||
};</pre></p>
|
||||
<p>The tld block allows you to specify a motd, rules, and channel for a user based
|
||||
on their host. This is useful if you want different motds for different languages.
|
||||
@@ -1909,17 +1953,16 @@ link <server-name> {
|
||||
</p>
|
||||
<p><b>hub vs leaf</b><br>
|
||||
A hub has multiple servers linked to it, a leaf has only one link... to you.
|
||||
A server is either a hub or a leaf, you cannot combine these options.
|
||||
A server is a leaf unless it has a hub directive. It is also a leaf if the leaf directive is *, or leafdepth is 1.
|
||||
</p>
|
||||
<p><b>hub</b> (optional)<br>
|
||||
The value is a mask of what servers this hub may connect (ex: *.my.net).
|
||||
</p>
|
||||
<p><b>leaf</b> (optional)<br>
|
||||
The value is a mask that this server will act like a leaf towards.
|
||||
The value is a mask of what servers this hub may <b>not</b> connect. Saying * here would be the same as not having a hub directive.
|
||||
</p>
|
||||
<p><b>leaf-depth</b> (optional)<br>
|
||||
If specified then leaf should be specified too. The value specifies the depth
|
||||
(number of hops) this server may have beneath it.
|
||||
<p><b>leafdepth</b> (optional)<br>
|
||||
The value specifies the depth (number of hops) this server may have beneath it. For example, 1 means the server can't have any links under it (a leaf), 2 means it can link servers but those servers can't link anything under them (that is, this hub can only link leaves). A value of 0 means no limit, and is the default.
|
||||
</p>
|
||||
<p><b>class</b><br>
|
||||
The class this server is put into, often a separate server class is used for this.
|
||||
@@ -1942,7 +1985,8 @@ link <server-name> {
|
||||
changing host (like dyndns.org)</td></tr>
|
||||
<tr><td><b>nohostcheck</b></td><td> don't validate the remote host (link::hostname), use this if it's an often
|
||||
changing host (like dyndns.org)</td></tr>
|
||||
<tr><td><b>quarantine</b></td><td> opers on this server will maintain locop status</td></tr>
|
||||
<tr><td><b>quarantine</b></td><td> opers on this server cannot get GLOBAL oper privileges
|
||||
(they will get killed), used for test links and such</td></tr>
|
||||
</table>
|
||||
</p>
|
||||
<p>Example:</p>
|
||||
@@ -1971,6 +2015,7 @@ link hub.mynet.com {
|
||||
alias <name> {
|
||||
target <nick-to-forward-to>;
|
||||
type <type-of-alias>;
|
||||
spamfilter <yes|no>;
|
||||
};</pre></p>
|
||||
<p>(Note: also see <a href="#includedirective">here</a> about the standard alias files UnrealIRCd has)</p>
|
||||
<p>The alias block [standard alias] allows you to forward a command to a user,
|
||||
@@ -1980,37 +2025,50 @@ alias <name> {
|
||||
forward to, alias::target can be left out. The alias::type specifies the type
|
||||
of alias, valid types are services (the user is on the services server), stats
|
||||
(the user is on the stats server), normal (the user is a normal user on
|
||||
any server), and channel (the target is a channel name). The alias block also has another
|
||||
purpose which is explained below.</p>
|
||||
any server), and channel (the target is a channel name). If alias::spamfilter (optional)
|
||||
is set to 'yes', then the spamfilters will be checked (default is 'no').<br>
|
||||
The alias block also has another purpose which is explained below.</p>
|
||||
<p>Syntax [command alias]:<br>
|
||||
<pre>
|
||||
alias <name> {
|
||||
/* For aliases to be sent to users/channels */
|
||||
format <regex-expression> {
|
||||
target <nick-to-forward-to>;
|
||||
type <type-of-alias>;
|
||||
parameters <parameter-string>;
|
||||
};
|
||||
/* For 'real aliases' */
|
||||
format <regex-expression> {
|
||||
command <command>;
|
||||
type real;
|
||||
parameters <parameter-string>;
|
||||
};
|
||||
/* Etc... You can have as many format blocks as you wish.. */
|
||||
format <regex-expression> {
|
||||
...
|
||||
};
|
||||
type command;
|
||||
spamfilter <yes|no>;
|
||||
};</pre></p>
|
||||
<p>When the alias block is used in this format, it allows you a much broader range
|
||||
of usage. For example you can create aliases such as /identify. The alias::
|
||||
is the same as above, the name of the alias command. The alias::format specifies
|
||||
is the same as above, the name of the alias command. The <b>alias::format</b> specifies
|
||||
a regular expression that compares against the text sent to the alias command,
|
||||
when matched the sub-entries of that alias::format will be used, you may have
|
||||
multiple alias::format's to make the command do different things depending on
|
||||
the text sent to it. The alias::format::target is the target to forward this
|
||||
alias to. The alias::format::type specifies the type of the alias that the
|
||||
message should be forwarded to. The alias::format::parameters is what will
|
||||
the text sent to it. The <b>alias::format::target</b> is the target to forward this
|
||||
alias to, however in case of a "real alias" <b>alias::format::command</b> is used instead.
|
||||
The <b>alias::format::type</b> specifies the type of the alias that the
|
||||
message should be forwarded to, besides the types mentioned previously in
|
||||
"Syntax [standard alias]", we also allow the type "real" here, for "real
|
||||
aliases". The <b>alias::format::parameters</b> is what will
|
||||
be sent as the parameters to this alias. To specify one of the parameters given
|
||||
to the command alias specify % followed by a number, for example, %1 is the
|
||||
first parameter. To specify all parameters from a given parameter to the end
|
||||
do % followed by the number and a -, for example %2- returns all parameters
|
||||
from the second till the last. Additionally, you may specify %n which will be replaced
|
||||
by the nickname of the user who executed the command. For examples of using the alias
|
||||
block in the command format, consult doc/example.conf.</p>
|
||||
by the nickname of the user who executed the command.<br><br>
|
||||
For examples of using the alias block in the command format, consult doc/example.conf.</p>
|
||||
<p></p></div>
|
||||
<p><font class="block_section">4.33 - </font><font class="block_name">Help Block</font>
|
||||
<font class="block_optional">OPTIONAL</font><a name="helpblock"></a>
|
||||
@@ -2094,7 +2152,63 @@ spamfilter {
|
||||
</pre></p>
|
||||
</div>
|
||||
|
||||
<p><font class="block_section">4.36 - </font><font class="block_name">Set Block</font>
|
||||
<p><font class="block_section">4.36 - </font><font class="block_name">Cgiirc Block</font>
|
||||
<font class="block_optional">OPTIONAL</font><a name="cgiirc"></a>
|
||||
</p><div class="desc">
|
||||
<p>
|
||||
The cgiirc block allows you to configure host spoofing for CGI:IRC gateways you trust
|
||||
(<a href="#feature_cgiirc">more info</a>).</p>
|
||||
|
||||
<p>Syntax:<br>
|
||||
<pre>
|
||||
cgiirc {
|
||||
type <webirc|old>;
|
||||
username <mask>; /* optional */
|
||||
hostname <mask>;
|
||||
password <password>; /* only for type webirc */
|
||||
};</pre></p>
|
||||
<p><b>type</b> is either 'webirc' or 'old'.<br>
|
||||
<b>username</b> is matched against the ident (if present). If not specified, "*" is assumed.<br>
|
||||
<b>hostname</b> is the hostmask to match against.<br>
|
||||
<b>password</b> is the webirc password, only used for type 'webirc'.<br>
|
||||
</p>
|
||||
|
||||
<p><b>How to configure with method 'webirc' (recommended method)</b><br>
|
||||
In your CGI:IRC configuration file (cgiirc.conf) you set webirc_password to a good password.<br>
|
||||
Then, in your unrealircd.conf you add a cgiirc block to allow this host and password and you set
|
||||
cgiirc::type to "webirc".<br>
|
||||
<br>
|
||||
Example:<br>
|
||||
In your CGI:IRC configuration file (cgiirc.conf) you add:
|
||||
<pre>webirc_password = LpT4xqPI5</pre>
|
||||
Then, in your unrealircd.conf you add a cgiirc block:
|
||||
<pre>cgiirc {
|
||||
type webirc;
|
||||
hostname "1.2.3.4";
|
||||
password "LpT4xqPI5";
|
||||
};</pre></p>
|
||||
|
||||
<p><b>How to configure with method 'old'</b><br>
|
||||
NOTE: This is not the recommended method since it has two disadvantages:
|
||||
this method will send the IP/host to spoof as a server password, meaning you cannot
|
||||
specify a server password as a CGI:IRC user. Additionally, access control is only
|
||||
IP-based and does not require an extra password like the 'webirc' method. In short,
|
||||
you probably should not be using this method unless you have a good reason to do so.<br>
|
||||
<br>
|
||||
In your CGI:IRC configuration file (cgiirc.conf) you set realhost_as_password to 1.<br>
|
||||
Then, in your unrealircd.conf you add a cgiirc block to allow this host.<br>
|
||||
<br>
|
||||
Example:<br>
|
||||
In your CGI:IRC configuration file (cgiirc.conf) you add:
|
||||
<pre>realhost_as_password = 1</pre>
|
||||
Then, in your unrealircd.conf you add a cgiirc block:
|
||||
<pre>cgiirc {
|
||||
type old;
|
||||
hostname "1.2.3.4";
|
||||
};</pre></p>
|
||||
</div>
|
||||
|
||||
<p><font class="block_section">4.37 - </font><font class="block_name">Set Block</font>
|
||||
<font class="block_required">REQUIRED</font> <font class="block_old">(Previously known as unrealircd.conf/networks file)</font><a name="setblock"></a>
|
||||
</p><div class="desc">
|
||||
<p>The set file is what use to be our networks/unrealircd.conf and our networks
|
||||
@@ -2138,7 +2252,7 @@ set {
|
||||
<p>Now if you wanted to make the set statements separate, say you wanted to set
|
||||
your options in a single line.<br>
|
||||
Example:<br>
|
||||
set { options { hide-ulines; no-stealth; }; };<br>
|
||||
set { options { hide-ulines; gline-address "my@gline.address"; }; };<br>
|
||||
</p>
|
||||
<p><font class="set">set::kline-address <email-address>;</font><br>
|
||||
The email address that K:line questions should be sent to. This value must be
|
||||
@@ -2198,6 +2312,14 @@ set {
|
||||
<p><font class="set">set::silence-limit <limit>;</font><br>
|
||||
Sets the limit on the maximum SILENCE list entries. If this directive is not specified,
|
||||
a limit of 15 is set.</p>
|
||||
<p><font class="set">set::maxbans <limit>;</font><br>
|
||||
Sets the limit on the maximum amount of bans (+b) allowed per channel. The default is 60.
|
||||
If you change this, be sure to also take a look at maxbanlength (see next)!</p>
|
||||
<p><font class="set">set::maxbanlength <limit>;</font><br>
|
||||
Similar to above, but sets the maximum amount of characters for all bans added up
|
||||
together, so basically this puts up a limit on the (semi-)maximum amount of memory
|
||||
all channel bans on a channel can take. The default is 2048 (bytes). With the default
|
||||
set::maxbans of 60 this allows 2048:60=34 characters per ban on average.</p>
|
||||
<p><font class="set">set::oper-only-stats <stats-list>;</font><br>
|
||||
Specifies a list of stats flags with no separators that defines stats flags
|
||||
only opers can use. Leave this value out to allow users to use all flags, or
|
||||
@@ -2213,7 +2335,7 @@ set {
|
||||
<p><font class="set">set::channel-command-prefix <command-prefixes>;</font><br>
|
||||
Specifies the prefix characters for services "in channel commands". Messages starting with
|
||||
any of the specified characters will still be sent even if the client is +d. The default
|
||||
value is "`".</p>
|
||||
value is "`!.".</p>
|
||||
<p><font class="set">set::allowed-nickchars { <list> };</font><br>
|
||||
Character sets / languages to allow in nicks, see <a href="#feature_nickchars">Nick Character Sets</a>.</p>
|
||||
<p><font class="set">set::allow-userhost-change [never|always|not-on-channels|force-rejoin]</font><br>
|
||||
@@ -2252,12 +2374,12 @@ set {
|
||||
A time value specifying the length of time a DNS server has to respond before
|
||||
a timeout. A time value is a numeric string with d meaning days, h meaning hours,
|
||||
m meaning minutes, and s meaning seconds, for example 1d2h3m means 1 day, 2
|
||||
hours, 3 minutes.</p>
|
||||
hours, 3 minutes. (NOT IMPLEMENTED)</p>
|
||||
<p><font class="set">set::dns::retries <number-of-retries>;</font><br>
|
||||
A numeric value specifying the number of times the DNS lookup will be retried
|
||||
if failure occurs.</p>
|
||||
if failure occurs. (NOT IMPLEMENTED)</p>
|
||||
<p><font class="set">set::dns::nameserver <name-of-dns-server>;</font><br>
|
||||
Specifies the hostname of the server that will be used for DNS lookups.</p>
|
||||
Specifies the hostname of the server that will be used for DNS lookups. (NOT IMPLEMENTED)</p>
|
||||
<p><font class="set">set::dns::bind-ip <ip>;</font><br>
|
||||
Specifies the IP to bind to for the resolver, rarely ever needed.</p>
|
||||
<p><font class="set">set::network-name <name-of-network>;</font><br>
|
||||
@@ -2371,6 +2493,22 @@ set {
|
||||
<p><font class="set">set::spamfilter::except <target(s)></font><br>
|
||||
These targets are exempt from spam filtering (no action will be taken),
|
||||
can be single target or comma seperated list.. Ex: except "#help,#spamreport"</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no></font><br>
|
||||
Whenever the user changes his/her nick, check if the NEW nick would be
|
||||
banned. If so, do not allow the nickchange. Default is yes.</p>
|
||||
<p><font class="set">set::timesynch::enabled <yes|no></font><br>
|
||||
Enable or disable time synchronization on-boot. Default is yes.</p>
|
||||
<p><font class="set">set::timesynch::server <IP></font><br>
|
||||
Server to synchronize time with. This can be up to 4 IP's seperated by comma's.
|
||||
The servers must support NTP protocol version 4. The default is to use 3 time servers (US, EU,
|
||||
AU). Requests to these servers are sent in parallel, fastest reply wins.</p>
|
||||
<p><font class="set">set::timesynch::timeout <time></font><br>
|
||||
Maximum time to wait for a time server reply. This is a value between 1 and 5, more is not possible
|
||||
because it causes too much inaccuracy. This setting is 3 by default and there's probably
|
||||
no good reason to change it.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
When NOSPOOF is enabled (usually on Windows), send a warning to each user to use
|
||||
'/quote pong ..' if they are having problems connecting? The default is no.</p>
|
||||
<p></p> </div>
|
||||
<p><b><font size="+2">5 – Additional Files<a name="addtlfiles"></a>
|
||||
</font></b></p><div class="desc">
|
||||
@@ -2576,7 +2714,8 @@ set {
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">d</div></td>
|
||||
<td>Makes it so you can not receive channel PRIVMSGs</td>
|
||||
<td>Makes it so you can not receive channel PRIVMSGs (with the exception
|
||||
of text prefixed with certain characters, see set::channel-command-prefix)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">G</div></td>
|
||||
@@ -2669,7 +2808,7 @@ set {
|
||||
</table>
|
||||
<p></p></div>
|
||||
<p><font size="+2"><b>7 – User & Oper Commands Table<a name="useropercommands" id="useropercommands"></a></b></font></p><div class="desc">
|
||||
<p>NOTE: the /helpop documentation is more up to date, use <i>/helpop command</i> (or <i>/helpop ?command</i> if you are oper)
|
||||
<p>NOTE: the /helpop documentation is more up to date, use <i>/helpop command</i>
|
||||
to get more information on a command.</p>
|
||||
|
||||
<table width="90%" border="1">
|
||||
@@ -2809,16 +2948,6 @@ to get more information on a command.</p>
|
||||
to an IRC server.<br></td>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">helpop ?<topic> or !<topic><br></td>
|
||||
<td>HelpOp is a new system of getting IRC Server help. You type either /HELPOP
|
||||
? <help system topic> or /HELPOP ! <question> The "?"
|
||||
in /HELPOP means query the help system and if you get no response you can
|
||||
choose '!' to send it to the Help Operators online. Using neither ? nor !
|
||||
will mean the command will be first queried within the help system and if
|
||||
no match if found , it will be forwarded to the help operators</td>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">list <search string></td>
|
||||
<td>
|
||||
@@ -2990,6 +3119,8 @@ to get more information on a command.</p>
|
||||
-opermotd - Only rehash the OPERMOTD file<br>
|
||||
-botmotd - Only rehash the BOTMOTD file<br>
|
||||
-garbage - Force garbage collection<br>
|
||||
-ssl - Reload SSL certificate and private key<br>
|
||||
-dns - Reload DNS info from resolv.conf/registry<br>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -3350,7 +3481,7 @@ It will however make it more difficult / increase the effort needed to attack/ha
|
||||
|
||||
<p><b><font size="+2">8.8 Protecting against exploits</font></b><a name="secantiexploit"></a><br><div class="desc">
|
||||
There are kernel patches that make it more difficult for stack- and heap-based exploits to
|
||||
work. This should however not be your main focus point, you have a far more bigger risk
|
||||
work. This is nice, but should not be your main focus point, you have a far more bigger risk
|
||||
of getting exploited through the other points than this... for various reasons.<br>
|
||||
<br>
|
||||
There's one thing you should do however, which is to ALWAYS USE THE LATEST VERSION,
|
||||
@@ -3370,7 +3501,7 @@ security until they got hacked, try to avoid that :).
|
||||
|
||||
|
||||
<p><font size="+2"><b>9 – Frequently Asked Questions (FAQ)<a name="faq"></a></b></font></p>
|
||||
<div class="desc"><p>The FAQ is available online <a href="http://www.vulnscan.org/UnrealIrcd/faq/" TARGET="_blank">here</a></p></div>
|
||||
<div class="desc"><p>The FAQ is available online <a href="http://www.vulnscan.org/UnrealIRCd/faq/" TARGET="_blank">here</a></p></div>
|
||||
<p></p>
|
||||
|
||||
<p><font size="+2"><b>A Regular Expressions<a name="regex"></a></b></font></p>
|
||||
|
||||
+203
-76
@@ -12,7 +12,7 @@
|
||||
.block_old { font-size: 14; }
|
||||
.set { font-weight: bold; }
|
||||
.desc { margin-left: 15px; }
|
||||
pre { font: "times new roman"; font-style: normal;}
|
||||
pre { font: "times new roman"; font-style: normal; background-color: #eeeeee;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -24,22 +24,23 @@
|
||||
<a href="unreal32docs.es.html">Spanish</a> |
|
||||
Hungarian |
|
||||
<a href="unreal32docs.fr.html">French</a> |
|
||||
<a href="unreal32docs.gr.html">Greek</a>
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<br><br>
|
||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||
<font size="4"><a href="http://www.unrealircd.com/">http://www.unrealircd.com</a></font><br>
|
||||
<font size="4">Verzió: 3.2.3</font><br>
|
||||
<b>Utolsó dokumentáció módosítás:</b> 2005-03-13</div>
|
||||
<font size="4">Verzió: 3.2.5</font><br>
|
||||
<b>Utolsó dokumentáció frissítés:</b> 2006-06-15</div>
|
||||
<br>
|
||||
<b>Fõ fejlesztõk:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Munkatársak:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Dokumentáció:</b> CKnight^ / Syzop<br>
|
||||
<b>Magyar fordítás:</b> <a href="mailto:angrywolf@flashmail.com">AngryWolf</a><br>
|
||||
<p>Az UnrealIRCd 3.2 egyre nagyobb összetettsége miatt átváltottunk egy könnyebben
|
||||
kezelhető, teljesebb körű dokumentációkészletre. Ezen leírás megtekintéséhez
|
||||
a lent felsorolt kompatibilis böngészők egyikére van szükséged. Friss dokumentációkat
|
||||
találsz a <a href="http://www.vulnscan.org/UnrealIrcd/unreal32docs.html">http://www.vulnscan.org/UnrealIrcd/unreal32docs.html</a>
|
||||
címen, és egy GYIK-et a <a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">http://www.vulnscan.org/UnrealIrcd/faq/</a> oldalon.
|
||||
<p>E dokumentáció megtekintéséhez az alábbiakban felsorolt kompatibilis böngészõk egyikére van szükséged. Friss dokumentációkat
|
||||
találsz a <a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
|
||||
címen, és egy GYIK-et a <a href="http://www.vulnscan.org/UnrealIRCd/faq/" TARGET="_blank">http://www.vulnscan.org/UnrealIRCd/faq/</a> oldalon.
|
||||
</p>
|
||||
<p><b>Kompatibilis böngészõk: </b><br>
|
||||
<ul>
|
||||
@@ -55,7 +56,7 @@ Hungarian |
|
||||
---1.1. <a href="#notesonolder">Megjegyzések a 3.1.x-rõl 3.2-re frissítésrõl és a verziók keverésérõl</a><br>
|
||||
---1.2. <a href="#notesonupgrade">Megjegyzések a 3.2-es verziók közötti frissítésrõl</a><br>
|
||||
2. <a href="#installation">Telepítés</a><br>
|
||||
3. <a href="#features">Featúrák</a><br>
|
||||
3. <a href="#features">Jellegzetességek</a><br>
|
||||
-- 3.1. <a href="#feature_cloaking">Álcázás</a><br>
|
||||
-- 3.2. <a href="#feature_modules">Modulok</a><br>
|
||||
-- 3.3. <a href="#feature_snomasks">Snomaszkok</a><br>
|
||||
@@ -67,12 +68,14 @@ Hungarian |
|
||||
-- 3.9. <a href="#feature_ipv6">IPv6</a><br>
|
||||
-- 3.10. <a href="#feature_ziplinks">Zip linkek</a><br>
|
||||
-- 3.11. <a href="#feature_dyndns">Dinamikus DNS-sel/IP-vel linkelések támogatása</a><br>
|
||||
-- 3.12. <a href="#feature_antiflood">Árasztásvédelmi featúrák</a><br>
|
||||
-- 3.12. <a href="#feature_antiflood">Árasztásvédelmi lehetõségek</a><br>
|
||||
-- 3.13. <a href="#feature_bantypes">Ban típusok</a><br>
|
||||
-- 3.14. <a href="#feature_spamfilter">A spamszûrõ</a><br>
|
||||
-- 3.15. <a href="#feature_cidr">CIDR</a><br>
|
||||
-- 3.16. <a href="#feature_nickchars">Karakterkészletek nicknevekhez</a><br>
|
||||
-- 3.17. <a href="#feature_other">További featúrák</a><br>
|
||||
-- 3.17. <a href="#feature_cgiirc">CGI:IRC támogatás</a><br>
|
||||
-- 3.18. <a href="#feature_timesync">Idõszinkronizáció</a><br>
|
||||
-- 3.19. <a href="#feature_other">További jellegzetességek</a><br>
|
||||
4. <a href="#configuringyourunrealircdconf">Az unrealircd.conf fájlod
|
||||
beállítása</a><br>
|
||||
---4.1. <a href="#configurationfileexplained">A konfigurációs formátumról</a><br>
|
||||
@@ -110,7 +113,8 @@ Hungarian |
|
||||
---4.33. <a href="#helpblock">Help blokk</a><br>
|
||||
---4.34. <a href="#officialchannels">Official channels blokk</a><br>
|
||||
---4.35. <a href="#spamfilter">Spamfilter blokk</a><br>
|
||||
---4.36. <a href="#setblock">Set blokk -=- (networks/unrealircd.conf)</a><br>
|
||||
---4.36. <a href="#cgiirc">Cgiirc blokk</a><br>
|
||||
---4.37. <a href="#setblock">Set blokk -=- (networks/unrealircd.conf)</a><br>
|
||||
5. <a href="#addtlfiles">További fájlok</a><br>
|
||||
6. <a href="#userchannelmodes">Felhasználói és csatornamódok</a><br>
|
||||
7. <a href="#useropercommands">Felhasználói és operátori parancsok</a><br>
|
||||
@@ -124,7 +128,7 @@ Hungarian |
|
||||
---8.7. <a href="#secinformation">Információközlés</a><br>
|
||||
---8.8. <a href="#secantiexploit">Sebezhetõségek elleni védelem</a><br>
|
||||
---8.9. <a href="#secsummary">Összegzés</a><br>
|
||||
9. <a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">Gyakran Ismételt Kérdések (FAQ)</a><br>
|
||||
9. <a href="http://www.vulnscan.org/UnrealIRCd/faq/" target="_blank">Gyakran Ismételt Kérdések (FAQ)</a><br>
|
||||
A. <a href="#regex">Reguláris kifejezések</a><br>
|
||||
---A.1. <a href="#regexlit">Konstansok</a><br>
|
||||
---A.2. <a href="#regexdot">A pont operátor</a><br>
|
||||
@@ -143,9 +147,9 @@ Hungarian |
|
||||
terjesztése szigorúan tilos az UnrealIRCd Fejlesztõi Csapat írásos engedélye nélkül.
|
||||
Ez a dokumentum másolható, nyomtatható, sokszorosítható és közzétehetõ
|
||||
tetszés szerinti alkalommal, feltéve, hogy azt az UnrealIRCD-hez használod, és
|
||||
nem módosítod. – Copyright UnrealIRCd Fejlesztői Csapat 2002-2005</p>
|
||||
nem módosítod. – Copyright UnrealIRCd Fejlesztõi Csapat 2002-2006</p>
|
||||
<p>Kérlek, olvasd el ezt a kézikönyvet, mielõtt segítséget kérsz, és BIZTOSAN bele akarsz nézni a
|
||||
<a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">GYIK</a>-ba is, mivel a kérdéseid/problémáid 80%-a meg van válaszolva benne. Ha az nem
|
||||
<a href="http://www.vulnscan.org/UnrealIRCd/faq/" target="_blank">GYIK</a>-ba is, mivel a kérdéseid/problémáid 80%-a meg van válaszolva benne. Ha az nem
|
||||
oldotta meg a problémádat, segítséget kérhetsz az irc.ircsystems.net-en (6667-es port) az #unreal-support csatornán. (Megjegyzendõ,
|
||||
hogy MEGKÖVETELJÜK a dokumentáció és a GYIK elolvasását, és csak az UnrealIRCd-vel kapcsolatban segítünk, nem a Servicessel!).
|
||||
Ha találsz egy valódi hibát (például egy ütközést), jelentsd a
|
||||
@@ -156,7 +160,7 @@ Hungarian |
|
||||
<div class="desc">
|
||||
<p>Abban az esetben, ha az Unreal3.1.x-rõl Unreal3.2-re frissítesz, észre fogod venni, hogy az egész konfigurációs
|
||||
fájl megváltozott, és talán nehéznek látod elõször, de ha egyszer átváltottál, sokkal jobbnak fogod találni!</p>
|
||||
<p>Ezenkívül ne felejtsd el elolvasni a featúrákról szóló 3. részt, mert bár néhányukról tudsz, amelyek az Unreal3.1.x-ben is megtalálhatóak, de van számos új featúra is!</p>
|
||||
<p>Ezenkívül ne felejtsd el elolvasni a jellegzetességekrõl szóló 3. részt, mert bár néhányukról tudsz, amelyek az Unreal3.1.x-ben is megtalálhatóak, de van számos újdonság is!</p>
|
||||
<p>A legjobb, ha nem keversz/linkelsz 3.1.x-et 3.2-vel, de ha nagyon akarod, legaláb egy 3.1.4-es vagy 3.1.5.1-ös erõsen ajánlott.</p></div>
|
||||
|
||||
<p><font size="+2"><b>1.2 – Megjegyzések a 3.2-es verziók közötti frissítésrõl</b></font><a name="notesonupgrade"></a><br>
|
||||
@@ -185,6 +189,8 @@ Windows:<br>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9, 10)
|
||||
</ul>
|
||||
<li><b>Windows verzió:</b>
|
||||
@@ -203,13 +209,13 @@ Windows:<br>
|
||||
</ul>
|
||||
<br>
|
||||
Ha van egy mûködõ Unreal3.2-d más operációs rendszereken, kérlek, küldd
|
||||
a részleteket a <a href="mailto:coders@lists.unrealircd.com">coders@lists.unrealircd.com</a> címre.<br>
|
||||
a részleteket a <a href="mailto:coders@lists.unrealircd.org">coders@lists.unrealircd.org</a> címre.<br>
|
||||
</p>
|
||||
<p><b>Telepítési útmutatások</b><br>
|
||||
Linux:<br>
|
||||
<ol>
|
||||
<li>gunzip -d Unreal3.2.2.tar.gz
|
||||
<li>tar xvf Unreal3.2.2.tar
|
||||
<li>gunzip -d Unreal3.2.X.tar.gz
|
||||
<li>tar xvf Unreal3.2.X.tar
|
||||
<li>cd Unreal3.2
|
||||
<li>./Config
|
||||
<li>Válaszolj ezekre a kérdésekre a legjobb tudásod szerint. Általában, ha nem vagy biztos
|
||||
@@ -225,16 +231,17 @@ Windows:<br>
|
||||
</ol>
|
||||
</p>
|
||||
<p> </p></div>
|
||||
<p><font size="+2"><b>3.0 - Featúrák</b></font>
|
||||
<p><font size="+2"><b>3.0 - Jellegzetességek</b></font>
|
||||
<a name="features"></a></p><div class="desc">
|
||||
<p>Néhány főbb és hasznosabb featúráról adunk magyarázatot ebben a részben. Általános áttekintést nyújt,
|
||||
<p>Néhány fõbb és hasznosabb jellegzetességrõl adunk magyarázatot ebben a részben. Általános áttekintést nyújt,
|
||||
és néha utal a konfigurációs fájlra is (olyasmire, amirõl talán még semmit sem tudsz).</p>
|
||||
<p>Ezt a részt kihagyhatod, azonban ajánlott elolvasni a telepítés előtt vagy után.</p></div>
|
||||
<p>Ezt a részt kihagyhatod, azonban erõsen ajánlott elolvasni a telepítés elõtt vagy után,
|
||||
mert máskülönben nem fogsz megérteni olyan fogalmakat, mint az "álcázás", "snomaszkok" stb.</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.1 - Álcázás</b></font><a name="feature_cloaking"></a></p><div class="desc">
|
||||
<p>Az álcázás (cloaking) egy módszer a felhasználók valós gazdaneveinek elrejtésére. Például, ha a valódi gazdaneved <i>d5142341.cable.wanadoo.nl</i>,
|
||||
(a join, part, whois stb. üzenetekben) <i>rox-2DCA3201.cable.wanadoo.nl</i>-ként lesz megjelenítve.
|
||||
Ez a featúra hasznos annak a megelőzésére, hogy a felhasználók egymást árasszák (floodolják), mivel így nem látják a valódi gazdanevet ill. IP címet.</p>
|
||||
Ez a funkció hasznos annak a megelõzésére, hogy a felhasználók egymást árasszák (floodolják), mivel így nem látják a valódi gazdanevet ill. IP címet.</p>
|
||||
<p>Ez a +x felhasználói móddal vezérelhetõ (például: /mode nickneved +x), az adminok erõltethetik a +x alapértelemzésbeli
|
||||
engedélyezését is, vagy beállíthatják, hogy a mód soha ne legyen eltávolítható.</p>
|
||||
<p>Az álcázott gazdanevet egy álcázó modul állítja elõ (egyet szükséges betöltened), az Unreal jelenleg 1 ilyen hivatalos modult tartalmaz:<br>
|
||||
@@ -283,12 +290,12 @@ Windows:<br>
|
||||
<p>Alapértelmezésben, ha a felhasználó egyszerûen csak a +s módot állítja be, bizonyos snomaszkok lesznek beállítva. Közönséges felhasználóknak a +ks, operátoroknak a +kscfvGqo snomaszkok.</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.4 - Álnevek</b></font><a name="feature_aliases"></a></p><div class="desc">
|
||||
<p>Az álnevek (alias) szolgálnak szerverszintű álparancsok beállítására.
|
||||
Például az "/ns identify blah" parancsot továbbíthatod a nickservnek (úgy lesz
|
||||
lefordítva, hogy "privmsg nickserv identify blah"). Ennél összetettebb álneveket is készíthetsz, mint a /register,
|
||||
<p>Az álnevek (alias) szerverszintû álparancsok beállítására szolgálnak.
|
||||
Például az "/ns identify blah" parancsot továbbíthatjuk a nickservnek (úgy lesz
|
||||
lefordítva, hogy "privmsg nickserv identify blah"). Ennél összetettebb álneveket is készíthetünk, mint pl. a /register,
|
||||
amely a ChanServhez továbbítódik, ha az elsõ paraméter #-tel kezdõdik, és a NickServ-hez, ha nem.</p>
|
||||
<p>Az álnevek az alias blokkban állíthatóak be a konfigurációs fájlban, és egy külön fájlt is betölthetsz, amely
|
||||
alapértelmezett álneveket tartalmaz a leggyakrabban használt szolgáltatásokhoz.</p></div>
|
||||
<p>Álnevek az <a href="#aliasblock">alias blokkban</a> állíthatóak be a konfigurációs fájlban, és külön betölthetünk egy olyan fájlt is, amiben
|
||||
alapértelmezett álnevek vannak a leggyakrabban használt szolgáltatásokhoz.</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.5 - Helpop</b></font><a name="feature_helpop"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd rendelkezik egy beépített súgórendszerrel, ami elérhetõ a /helpop-pal. A /helpop parancs teljes mértékben
|
||||
@@ -346,11 +353,11 @@ Windows:<br>
|
||||
link::options::zip opciót (mindkét oldalon).</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.11 - Dinamikus DNS-sel/IP-vel linkelések támogatása</b></font><a name="feature_dyndns"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd néhány (új) hasznos featúrával segíti azokat a felhasználókat, akiknek dinamikus IP-jük van, és dinamikus DNS-t használnak
|
||||
<p>Az UnrealIRCd néhány (új) hasznos funkcióval segíti azokat a felhasználókat, akiknek dinamikus IP-jük van, és dinamikus DNS-t használnak
|
||||
(mint a valami.dyndns.org). Ha két dinamikus DNS-sel rendelkezõ gépet linkelsz, állítsd be a link::options::nodnscache és a link::options::nohostcheck opciókat.
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.12 - Árasztásvédelmi featúrák</b></font><a name="feature_antiflood"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.12 - Árasztásvédelmi lehetõségek</b></font><a name="feature_antiflood"></a></p><div class="desc">
|
||||
<p>
|
||||
<b>Elfojtás</b><br>
|
||||
Az elfojtás (throttling) egy módszer annak korlátozására, hogy egy felhasználó milyen gyorsan bonthatja a kapcsolatot
|
||||
@@ -411,7 +418,7 @@ Bizonyos
|
||||
Ez a csatornát +R-re állítja, ha a belépési határt elérték (>20 belépés 15 másodperc alatt),
|
||||
és +M-re, ha a megengedett üzenetek számát elérték (>50 üzenet 15 másodperc alatt).<br>
|
||||
<br>
|
||||
Van egy "töröld a módot X perc után" featúra is: a <i>+f [20j#R5]:15</i> +R-re állítja a csatornát, ha
|
||||
Van egy "töröld a módot X perc után" funkció is: a <i>+f [20j#R5]:15</i> +R-re állítja a csatornát, ha
|
||||
elérték a határt, és -R-et állít be 5 perc után.<br>
|
||||
A szervernek lehet alapértelmezett módtörlési ideje (set::modef-default-unsettime), vagyis ha azt írod be, hogy <i>+f [20j]:15</i>,
|
||||
átváltozhat <i>+f [20j#i10]:15</i>-re. Ez csak egy alapértelmezés, továbbra is beállíthatsz [20j#i2]:15-öt vagy bármi ehhez hasonlót,
|
||||
@@ -419,7 +426,7 @@ A szervernek lehet alap
|
||||
<br>
|
||||
A régi +f mód (felhasználónkénti üzenetáradat) szintén elérhetõ a 't' tevékenységként, a +f 10:6-ot most már úgy hívjuk, hogy +f [10t]:6, és
|
||||
a +f *20:10 most már +f [20t#b]:10. Jelenleg az ircd automatikusan átalakítja a régi +f módtípusokat az újakra.
|
||||
Megjegyzendő, hogy nincs alapértelmezett törlési idő featúra a 't' banokra (a [20t#b30]:15 nem fog működni).<br>
|
||||
Megjegyzendõ, hogy nincs alapértelmezett törlési idõ funkció a 't' banokra (a [20t#b30]:15 nem fog mûködni).<br>
|
||||
<br>
|
||||
Az, hogy mi a legjobb +f mód, nagymértékben függ a csatornától... Hány felhasználója van? Van-e rajta olyan játék, ami a felhasználókat
|
||||
sok üzenet küldésére készteti (pl.: trivia), vagy használnak-e gyakran popupokat? Ez egy valamiféle fõcsatorna-e, vagy benne van-e az auto-join-ban? Stb.<br>
|
||||
@@ -596,6 +603,9 @@ Egy t
|
||||
<tr><td>greek</td><td>Görög karakterek</td><td>iso8859-7</td></tr>
|
||||
<tr><td>turkish</td><td>Török karakterek</td><td>iso8859-9</td></tr>
|
||||
<tr><td>russian-w1251</td><td>Orosz karakterek</td><td>windows-1251</td></tr>
|
||||
<tr><td>belarussian-w1251</td><td>Fehérorosz karakterek</td><td>windows-1251</td></tr>
|
||||
<tr><td>ukrainian-w1251</td><td>Ukrán karakterek</td><td>windows-1251</td></tr>
|
||||
<tr><td><b>windows-1251</b></td><td>russian-w1251, belarussian-w1251, ukrainian-w1251</td><td>windows-1251</td></tr>
|
||||
<tr><td>hebrew</td><td>Héber karakterek</td><td>iso8859-8-I/windows-1255</td></tr>
|
||||
<tr><td>chinese-simp</td><td>Egyszerûsített kínai</td><td>Több-bájtos: GBK/GB2312</td></tr>
|
||||
<tr><td>chinese-trad</td><td>Hagyományos kínai</td><td>Több-bájtos: GBK</td></tr>
|
||||
@@ -622,17 +632,39 @@ enged
|
||||
<pre>set { allowed-nickchars { chinese-simp; chinese-trad; }; };</pre>
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.17 - További featúrák</b></font><a name="feature_other"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd-nek rengeteg featúrája van, ezért itt nincs minden megemlítve... Rájössz majd magadtól is.</p></div>
|
||||
<p><font size="+2"><b>3.17 - CGI:IRC támogatás</b></font><a name="feature_cgiirc"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd támogatja a CGI:IRC gazdanév hamisítást, ami azt jelenti, hogy megjelölhetünk bizonyos CGI:IRC
|
||||
átjárókat "megbízhatóként", ezáltal az IRCd a felhasználók valódi gazdanevét/IP címét jeleníti meg mindenhol
|
||||
az IRC-n, és nem a CGI:IRC átjáróét.</p>
|
||||
<p>Lásd a <a href="#cgiirc">cgiirc blokkot</a> a beállításának hogyanjáról.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.18 - Idõszinkronizáció</b></font><a name="feature_timesync"></a></p><div class="desc">
|
||||
<p>A pontos idõ nagyon fontos az IRC szervereken. Pontos idõ nélkül a csatornákon desynch problémák léphetnek fel, ártatlan
|
||||
felhasználók kaphatnak kilövést, helytelenül jelenhetnek meg csatornák a /LIST-ben, egyszóval: óriási baj származhat belõle.</p>
|
||||
<p>Az UnrealIRCd-nek van egy kis beépített idõszinkronizáció támogatása.
|
||||
Bár nem optimális (az idõ még mindig eltérhet néhány másodpercet), a legtöbb esetben megszabadít az idõkülönbségtõl.
|
||||
Lehetõség szerint még mindig javasolt valamilyen idõszinkronizáló szoftver futtatása, pl. *NIX alatt az ntpd vagy
|
||||
a Windows idõszinkronizáló szolgáltatása (ebben az esetben kikapcsolhatjuk az Unreal idõszinkronizálását, errõl bõvebben késõbb).</p>
|
||||
<p>Az UnrealIRCd (alapból) azt csinálja, hogy indításkor végrehajt egy egyszeri idõszinkronizálást. Elküld (alapértelmezésben) egy lekérdezést
|
||||
több idõszervernek, és amikor megkapja a legelsõ (leggyorsabb) választ, hozzáigazítja a belsõ ircd órát
|
||||
(NEM a rendszerórát). Ha valamilyen okból az idõszervertõl nem kap választ 3 másodpercen belül,
|
||||
az IRCd ennek ellenére folytatja az indulást (ilyennek ritkán kellene történnie).</p>
|
||||
<p>Az idõszinkronizáció beállítható (és kikapcsolható) a <b>set::timesynch</b> blokkban, lásd
|
||||
a <a href="#setblock">set leírását</a> további információkért.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.19 - További jellegzetességek</b></font><a name="feature_other"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd-nek rengeteg funkciója van, ezért itt nincs minden megemlítve... Rájössz majd magadtól is.</p></div>
|
||||
|
||||
<p> </p>
|
||||
<p><font size="+2"><b>4.0 - Az unrealircd.conf fájlod beállítása</b></font>
|
||||
<a name="configuringyourunrealircdconf"></a></p><div class="desc">
|
||||
<p>Először is, egy jó unrealircd.conf készítése komoly időt vesz igénybe, talán
|
||||
körülbelül 10 - 60 percet. Megpróbálhatod a lehető leggyorsabban üzemkésszé tenni és
|
||||
trükközgetni vele később, vagy rögtön, lépésről lépésre megtanulhatod a legfőbb részeket,
|
||||
ami a javasolt módszer ;P. Ha problémáid vannak, ellenőrizd a szintaktikát, nézd át a kézikönyvet,
|
||||
és nézz bele a FAQ-ba is, mielőtt segítségért fordulsz/hibát jelentesz.</p></div>
|
||||
<p>Elõször is, az elsõ unrealircd.conf-unk elkészítése komoly idõt vesz igénybe (mondjuk, 15-60
|
||||
percet). Egy <u>jó</u> unrealircd.conf még ennél is többet.
|
||||
Nem érdemes kapkodnunk, hogy az IRCd-nk minél hamarabb elinduljon, inkább menjünk végig a dolgokon
|
||||
lépésrõl lépésre. Ha problémánk van, ellenõrizzük a szintaktikát, nézzük át ezt a kézikönyvet,
|
||||
és nézzünk bele a <a href="http://www.vulnscan.org/UnrealIRCd/faq/">GYIK</a>-ba is, mielõtt segítségért fordulnánk vagy hibát jelentenénk.</p></div>
|
||||
<p><b><font size="+2">4.1 A konfigurációs formátumról</font></b><a name="configurationfileexplained"></a><br><div class="desc">
|
||||
</p>
|
||||
<p>Az új rendszer egy blokk alapú formátumot használ. Az új formátumban minden bejegyzésnek vagy blokknak
|
||||
@@ -648,21 +680,21 @@ enged
|
||||
<p>A <blokk-direktíva> egy egyszerû változó, amelyet a blokk határoz meg, és
|
||||
a <direktívaérték> a hozzátartozó érték. Ha a <directívaérték>
|
||||
szóközöket tartalmaz vagy olyan karaktereket, amelyek megjegyzéseket fejeznek ki, idézõjelek közé
|
||||
kell tenni. Ha az idézett szövegen belül egy idézőjel karaktert szeretnél használni,
|
||||
használj \"-t, és idézőjelként lesz értelmezve.</p>
|
||||
kell tenni. Ha az idézett szövegen belül egy idézõjel karaktert szeretnénk írni,
|
||||
használjunk \"-t, és idézõjelként lesz értelmezve.</p>
|
||||
<p>Egy <blokk-direktíva> is tartalmazhat direktívákat saját magán belül, ilyen esetben
|
||||
lesz egy saját pár kapcsoszárójele maga körül. Néhány blokknak nincs direktívája,
|
||||
és csak <blokkérték> formában határozzuk meg, mint az "include"-t.
|
||||
Az is megjegyzendõ, hogy nincs kötött forma, tehát az egész blokk megjelenhet egy sorban vagy akár
|
||||
több sorban is. A fenti formát használják általában (és ebben a fájlban is ezt alkalmazzuk),
|
||||
mert könnyen olvasható. </p>
|
||||
<p>Megjegyzés: a konfigurációs fájl jelenleg kis- és nagybetűérzékeny, eképpen a "BLOKKNÉV" nem
|
||||
ugyanaz, mint a "blokknév". Van egy általános jelölési rendszer, amit arra használunk, hogy
|
||||
<p>Megjegyzés: a konfigurációs fájl jelenleg kis- és nagybetûérzékeny, eképpen a <i>BLOKKNÉV</i> nem
|
||||
ugyanaz, mint a <i>blokknév</i>. Van egy általános jelölési rendszer, amit arra használunk, hogy
|
||||
a konfigurációs fájl bejegyzéseirõl beszéljünk. Például, hogy a fenti példabeli <direktívanév>-rõl
|
||||
beszéljünk, azt mondjuk, hogy <blokknév>::<blokk-direktíva>, és ha a direktívának van egy
|
||||
alblokkja, amire utalni szeretnél, tegyél hozzá egy másik dupla kettőspontot (::)
|
||||
alblokkja, amire utalni szeretnénk, tegyünk hozzá egy másik dupla kettõspontot (::)
|
||||
és az aldirektíva nevét. </p>
|
||||
<p>Ha egy névtelen direktíváról szeretnél beszléni, mondd azt, hogy <blokknév>::, ami
|
||||
<p>Ha egy névtelen direktíváról szeretnénk beszléni, írjuk azt, hogy <blokknév>::, ami
|
||||
ebben az esetben <blokkérték>-et jelent, vagy lehet egy alblokk
|
||||
névtelen bejegyzése is.</p>
|
||||
<p>Háromféle megjegyzéstípus támogatott:</p>
|
||||
@@ -671,9 +703,11 @@ enged
|
||||
/* Többsoros<br>
|
||||
megjegyzés */<br>
|
||||
</p>
|
||||
<p>Most, hogy tudod, hogyan működik, készítsd el a saját unrealircd.conf-odat teljesen a semmiből, vagy
|
||||
másold le a doc/example.conf-ot, és kezdd el szerkeszteni. Javasolt, hogy lépésről lépésre haladj
|
||||
át az egyes blokktípusokon, és használd ezt a kézikönyvet segédletnek.</p>
|
||||
<p>Most, hogy tudjuk, hogyan mûködik, másoljuk a <i>doc/example.conf</i>-ot az UnrealIRCd
|
||||
könyvtárba (pl.: /home/felhasznalo/Unreal3.2) és nevezzük át <i>unrealircd.conf</i>-ra
|
||||
(VAGY készítsünk egy saját <i>unrealircd.conf</i>-ot a semmibõl).
|
||||
Javasolt, hogy menjünk végig lépésrõl lépésre az egyes blokktípusokon és
|
||||
a konfigurációs fájlunk beállításain, valamint használjuk ezt a kézikönyvet segédletként.</p>
|
||||
<p></p></div>
|
||||
<p><font class="block_section">4.2 - </font><font class="block_name">Me blokk</font>
|
||||
<font class="block_required">KÖTELEZÕ</font> <font class="block_old">(Elõzõleg M:Line néven ismert)</font><a name="meblock"></a></p><div class="desc">
|
||||
@@ -1944,7 +1978,8 @@ link <szervern
|
||||
gazdanevek (például dyndns.org) esetén.</td></tr>
|
||||
<tr><td><b>nohostcheck</b></td><td> ne érvényesítse a távoli gazdanevet (link::hostname); használd ezt gyakran változó
|
||||
gazdanevek (például dyndns.org) esetén.</td></tr>
|
||||
<tr><td><b>quarantine</b></td><td> az operátorok ezen a szerveren helyi operátorokként funkcionálnak</td></tr>
|
||||
<tr><td><b>quarantine</b></td><td> a szerver operátorai nem kaphatnak GLOBÁLIS jogosultságokat
|
||||
(ki lesznek lõve), teszt linkekre meg hasonlókra szokás használni</td></tr>
|
||||
</table>
|
||||
</p>
|
||||
<p>Példa:</p>
|
||||
@@ -1973,46 +2008,60 @@ link hub.sajatnet.com {
|
||||
alias <név> {
|
||||
target <ahová-továbbítsa>;
|
||||
type <álparancs-típusa>;
|
||||
spamfilter <yes|no>;
|
||||
};</pre></p>
|
||||
<p>(Megjegyzés: lásd még az <a href="#includedirective">include</a> direktívát az UnrealIRCd szabványos álparancsokat tartalmazó fájljairól.)</p>
|
||||
<p>Az alias blokk [szabványos álparancsokra] lehetővé teszi, hogy parancsokat továbbíts egy
|
||||
<p>Az alias blokk [szabványos álparancsokra] lehetõvé teszi, hogy parancsokat továbbítsunk egy
|
||||
felhasználóhoz, például hogy a /chanserv üzenetet küldjön a chanserv felhasználónak.
|
||||
Az alias:: meghatározza azt a parancsnevet, ami lesz az álnév (pl.: chanserv).
|
||||
Az alias:: megadja azt a parancsnevet, ami lesz az álnév (pl.: chanserv).
|
||||
Az alias::target egy nick- vagy csatornanév, ahová a parancs továbbítva lesz. Ha az alias:: ugyanaz,
|
||||
mint a továbbítási célpont, az alias::target elhagyható. Az alias::type meghatározza
|
||||
az álparancs típusát; érvényes típusok: services (a felhasználó egy szolgáltatás szerveren van), stats
|
||||
(a felhasználó egy statisztikai szerveren van), normal (a felhasználó egy közönséges felhasználó
|
||||
bármilyen szerveren), és channel (a célpont egy csatornanév). Az alias blokknak van más célja is,
|
||||
amit az alábbiakban magyarázunk el.</p>
|
||||
bármilyen szerveren), és channel (a célpont egy csatornanév). Az alias::spamfilter (nem kötelezõ)
|
||||
"yes"-re állításával bekapcsolható a spamszûrés erre az álparancsra (az alapértelmezés "no").<br>
|
||||
Az alias blokknak van egy másik célja is, amit az alábbiakban magyarázunk el.</p>
|
||||
<p>Szintaktika [formázott álparancsokra]:<br>
|
||||
<pre>
|
||||
alias <név> {
|
||||
/* Felhasználóknak/csatornára küldendõ álparancsokra */
|
||||
format <reguláris-kifejezés> {
|
||||
target <ahová-továbbítsa>;
|
||||
type <álparancs-típusa>;
|
||||
parameters <paraméter-sztring>;
|
||||
};
|
||||
/* "Valódi" álparancsokra */
|
||||
format <reguláris-kifejezés> {
|
||||
command <parancs>;
|
||||
type real;
|
||||
parameters <paraméter-sztring>;
|
||||
};
|
||||
/* Stb... Annyi format blokkunk lehet, ahányat szeretnénk.. */
|
||||
format <reguláris-kifejezés> {
|
||||
...
|
||||
};
|
||||
type command;
|
||||
spamfilter <yes|no>;
|
||||
};</pre></p>
|
||||
<p>Amikor az alias blokkot ebben a formában használod, lehetőséget ad egy sokkal szélesebb körű
|
||||
alkalmazásra. Például készíthetsz olyan álparancsokat is, mint az /identify. Az alias::
|
||||
ugyanaz, mint fent, az álparancs neve. Az alias::format blokkok értékei reguláris kifejezések,
|
||||
<p>Amikor az alias blokkot ebben a formában használjuk, lehetõséget ad egy sokkal szélesebb körû
|
||||
alkalmazására. Például készíthetünk olyan álparancsokat is, mint az /identify. Az alias::
|
||||
ugyanaz, mint fent, az álparancs neve. Az <b>alias::format</b> blokkok értékei reguláris kifejezések,
|
||||
amelyek az álparancshoz küldött szöveggel lesznek összehasonlítva, és ha az egyik illik rá,
|
||||
annak az alias::format-nak az albejegyzései lesznek használatban. Lehet egyszerre több
|
||||
alias::format-od is, hogy a parancs különböző dolgokat tegyen a neki küldött szövegtől
|
||||
függően. Az alias::format::target az álparancs továbbításának célpontja.
|
||||
Az alias::format::type meghatározza az előbbi nicknevű felhasználó típusát.
|
||||
Az alias::format::parameters az, ami megmondja, milyen paraméterek legyenek elküldve
|
||||
a felhasználóhoz. Hogy hivatkozz az álparancshoz küldött paraméterek egyikére,
|
||||
írj egy % jelet egy azt követő számmal, például %1 az első paraméter. Lehetőséged van arra is,
|
||||
hogy hivatkozz egy adott paramétertől kezdődően az üzenet végéig tartó összes paraméterre,
|
||||
ehhez írj be egy % jelet, majd egy számot és egy - jelet, például a %2- visszaadja az összes
|
||||
alias::format-unk is, így a parancs különbözõ dolgokat tehet a neki küldött szövegtõl
|
||||
függõen. Az <b>alias::format::target</b> az álparancs továbbításának célpontja,
|
||||
de "valódi" álparancsok esetében az <b>alias::format::command</b> használandó.
|
||||
Az <b>alias::format::type</b> megadja, hogy az üzenet milyen típusú célponthoz
|
||||
legyen elküldve; a "Szintaktika [szabványos álparancsokra]" részben korábban említett
|
||||
típusok mellett itt megengedett még a "real" is, "valódi" álparancsokra.
|
||||
Az <b>alias::format::parameters</b> mondja meg, milyen paraméterek legyenek elküldve
|
||||
a felhasználóhoz. Ahhoz, hogy az álparancshoz küldött paraméterek egyikére hivatkozzunk,
|
||||
írjunk egy % jelet egy azt követõ számmal, például %1 az elsõ paraméter. Lehetõség van arra is,
|
||||
hogy hivatkozzunk egy adott paramétertõl kezdõdõen az üzenet végéig tartó összes paraméterre,
|
||||
ehhez írjunk be egy % jelet, majd egy számot és egy - jelet, például a %2- visszaadja az összes
|
||||
paramétert a másodiktól kezdõdõen az utolsóig. Hasonló különleges célt szolgál még a %n is,
|
||||
amit helyettesíteni fog annak a felhasználónak a neve, aki kiadta a parancsot. A formázott
|
||||
álparancsokra vonatkozóan példákat találhatsz a doc/example.conf-ban.</p>
|
||||
ami helyettesíti annak a felhasználónak a nevét, aki kiadta a parancsot.<br><br>
|
||||
A formázott álparancsokra vonatkozóan példákat találunk a doc/example.conf-ban.</p>
|
||||
<p></p></div>
|
||||
<p><font class="block_section">4.33 - </font><font class="block_name">Help blokk</font>
|
||||
<font class="block_optional">SZABADON VÁLASZTHATÓ</font><a name="helpblock"></a>
|
||||
@@ -2024,7 +2073,7 @@ help <n
|
||||
<szövegsor>;
|
||||
...
|
||||
};</pre></p>
|
||||
<p>(Megjegyzés: szokás csak betölteni a help.conf-ot)</p>
|
||||
<p>(Megjegyzés: általában elég csak betölteni a help.conf-ot)</p>
|
||||
<p>A help blokkal készíthetsz bejegyzéseket a /helpop parancshoz. A help:: az az érték,
|
||||
amit a /helpop-nak kell átadni paraméterként; ha a help:: ki van hagyva, a blokk akkor
|
||||
lesz használatban, amikor a /helpop-nak semmilyen paraméter nincs átadva. A help blokk
|
||||
@@ -2058,7 +2107,7 @@ official-channels {
|
||||
</p><div class="desc">
|
||||
<p>
|
||||
A spamfilter blokkal vehetsz fel helyi spamszûrõket (nem hálózati szintûeket).<br>
|
||||
Lásd a <a href="#feature_spamfilter">Featúrák - A spamszűrő</a> szekciót további információért.<br>
|
||||
Lásd a <a href="#feature_spamfilter">Jellegzetességek - A spamszûrõ</a> szekciót további információért.<br>
|
||||
</p>
|
||||
<p>Szintaktika:<br>
|
||||
<pre>
|
||||
@@ -2096,7 +2145,63 @@ spamfilter {
|
||||
</pre></p>
|
||||
</div>
|
||||
|
||||
<p><font class="block_section">4.36 - </font><font class="block_name">Set blokk</font>
|
||||
<p><font class="block_section">4.36 - </font><font class="block_name">Cgiirc blokk</font>
|
||||
<font class="block_optional">SZABADON VÁLASZTHATÓ</font><a name="cgiirc"></a>
|
||||
</p><div class="desc">
|
||||
<p>
|
||||
A cgiirc blokkal gazdanév-hamisítást állíthatunk be megbízható CGI:IRC átjárókra
|
||||
(<a href="#feature_cgiirc">további információ</a>).</p>
|
||||
|
||||
<p>Szintaktika:<br>
|
||||
<pre>
|
||||
cgiirc {
|
||||
type <webirc|old>;
|
||||
username <maszk>; /* nem kötelezõ */
|
||||
hostname <maszk>;
|
||||
password <jelszó>; /* csak a webirc típusra */
|
||||
};</pre></p>
|
||||
<p>A <b>type</b> lehet akár "webirc" vagy "old" (azaz "régi").<br>
|
||||
A <b>username</b> egyeztetésre kerül az azonosítónévvel (ha van ilyen). Ha nincs megadva, "*" lesz feltételezve.<br>
|
||||
A <b>hostname</b> a gazdanévre illeszkedõ maszk.<br>
|
||||
A <b>password</b> a webirc jelszó, csak a "webirc" típus esetén használjuk.<br>
|
||||
</p>
|
||||
|
||||
<p><b>Hogyan állítsuk be a 'webirc' módot? (javasolt mód)</b><br>
|
||||
A CGI:IRC konfigurációs fájlunkban (cgiirc.conf) beállítjuk a webirc_password-öt egy alkalmas jelszóra.<br>
|
||||
Ezután az unrealircd.conf-ba teszünk egy cgiirc blokkot, mellyel engedélyezzük ezt a gazdanevet és jelszót, valamint beállítjuk
|
||||
a cgiirc::type-ot "webirc"-re.<br>
|
||||
<br>
|
||||
Példa:<br>
|
||||
A CGI:IRC konfigurációs fájlba (cgiirc.conf) írjuk a következõt:
|
||||
<pre>webirc_password = LpT4xqPI5</pre>
|
||||
Majd az unrealircd.conf-ba tegyünk egy cgiirc blokkot:
|
||||
<pre>cgiirc {
|
||||
type webirc;
|
||||
hostname "1.2.3.4";
|
||||
password "LpT4xqPI5";
|
||||
};</pre></p>
|
||||
|
||||
<p><b>Hogyan állítsuk be az "old" (régi) módot?</b><br>
|
||||
MEGJEGYZÉS: Ez nem javasolt mód, mivel két hátránya van:
|
||||
ez a mód szerverjelszóként küldi el a hamisítandó IP-t/gazdanevet, emiatt nem
|
||||
adhatunk meg szerverjelszót CGI:IRC felhasználóként. Továbbá a hozzáférés-szabályozás csak
|
||||
IP alapú, és nem igényel külön jelszót, mint a 'webirc' mód. Röviden,
|
||||
nem kellene ezt használnunk, hacsak nincs nyomós indokunk rá.<br>
|
||||
<br>
|
||||
A CGI:IRC beállításfájlban (cgiirc.conf) beállítjuk a realhost_as_password-öt 1-re.<br>
|
||||
Ezután az unrealircd.conf-ba teszünk egy cgiirc blokkot, hogy engedélyezzük ezt a gazdanevet.<br>
|
||||
<br>
|
||||
Példa:<br>
|
||||
A CGI:IRC konfigurációs fájlba (cgiirc.conf) írjuk a következõt:
|
||||
<pre>realhost_as_password = 1</pre>
|
||||
Majd az unrealircd.conf-ba tegyünk egy cgiirc blokkot:
|
||||
<pre>cgiirc {
|
||||
type old;
|
||||
hostname "1.2.3.4";
|
||||
};</pre></p>
|
||||
</div>
|
||||
|
||||
<p><font class="block_section">4.37 - </font><font class="block_name">Set blokk</font>
|
||||
<font class="block_required">KÖTELEZÕ</font> <font class="block_old">(Elõzõleg unrealircd.conf-ként/hálózati fájlként ismert)</font><a name="setblock"></a>
|
||||
</p><div class="desc">
|
||||
<p>A set fájl az, ami régebben a networks/unrealircd.conf-unk és a hálózati
|
||||
@@ -2167,7 +2272,7 @@ set {
|
||||
ily módon minden (új) csatornára ráeröltetheted a +G módot úgy, hogy ne tudják törölni.<br>
|
||||
MEGJEGYZÉS: lehet, hogy ezek a csatornamódok még mindig használhatóak IRC szolgáltatásokon keresztül
|
||||
az MLOCK alkalmazásával. Sajnos mi nem tudunk sokat tenni ezügyben, a szolgáltatás fejlesztõket
|
||||
kellene megkérned, hogy megvalósítsanak egy restrict-channelmodes featúrát is.</p>
|
||||
kellene megkérned, hogy megvalósítsanak egy restrict-channelmodes funkciót is.</p>
|
||||
<p><font class="set">set::restrict-extendedbans <típusok|*></font><br>
|
||||
Nem ad engedélyt a felhasználóknak egyetlen kiterjesztett ban típus használatára sem ("*"), vagy csak bizonyos típusokat utasít vissza (pl.: "qc").</p>
|
||||
<p><font class="set">set::auto-join <csatornák>;</font><br>
|
||||
@@ -2200,6 +2305,14 @@ set {
|
||||
<p><font class="set">set::silence-limit <határ>;</font><br>
|
||||
Beállítja a SILENCE lista bejegyzéseinek legnagyobb megengedett számát. Ha ez a direktíva nincs jelen,
|
||||
15 lesz beállítva.</p>
|
||||
<p><font class="set">set::maxbans <határ>;</font><br>
|
||||
Beállítja, hogy csatornánként legfeljebb hány kitiltás (+b) megengedett. Az alapértelmezés 60.
|
||||
Ha ezen változtatsz, ne felejts ránézni a maxbanlength direktívára is (lásd alább)!</p>
|
||||
<p><font class="set">set::maxbanlength <határ>;</font><br>
|
||||
Hasonló a fentihez, de ez a kitiltások karaktereinek számára összesen határoz meg felsõ határt,
|
||||
vagyis tulajdonképpen korlátozást tesz arra, kb. mekkora lehet az a legnagyobb mennyiségû memória,
|
||||
amit a kitiltások csatornánként lefoglalhatnak. Az alapértelmezés 2048 (bájt). A set::maxbans
|
||||
60-as alapértékével ez átlagosan 2048:60=34 karaktert enged kitiltásonként.</p>
|
||||
<p><font class="set">set::oper-only-stats <flaglista>;</font><br>
|
||||
Megad egy elválasztójelek nélküli, stats flagekbõl álló felsorolást, amely meghatározza, mely stats flageket
|
||||
használhatnak csak operátorok. Hagyd ki ezt az értéket, hogy engedélyezd a felhasználóknak az összes
|
||||
@@ -2215,7 +2328,7 @@ set {
|
||||
<p><font class="set">set::channel-command-prefix <parancs-elõtagok>;</font><br>
|
||||
Meghatározza a csatornabeli services parancsok elõtag karaktereit. Azok az üzenetek, amelyek az
|
||||
itt megadott karakterek bármelyikével kezdõdnek, még olyan kliensekhez is el lesznek küldve, amelyek
|
||||
a +d móddal rendelkeznek. Az alapérték "`".</p>
|
||||
a +d móddal rendelkeznek. Az alapérték "`!.".</p>
|
||||
<p><font class="set">set::allowed-nickchars { <felsorolás> };</font><br>
|
||||
Nicknevekben engedélyezendõ karakterkészletek / nyelvek, lásd: <a href="#feature_nickchars">Karakterkészletek nicknevekben</a>.</p>
|
||||
<p><font class="set">set::allow-userhost-change [never|always|not-on-channels|force-rejoin]</font><br>
|
||||
@@ -2373,6 +2486,19 @@ set {
|
||||
<p><font class="set">set::spamfilter::except <célpont(ok)></font><br>
|
||||
Ezek a célpontok kivételek a spamszûrések alól (nem lesz tevékenység végrehajtva),
|
||||
lehet egyetlen célpont vagy egy vesszõvel elválaszott felsorolás. Pl.: except "#help,#spamreport"</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no></font><br>
|
||||
Valahányszor a felhasználó nicknevet változtat, ellenõrzi, hogy az ÚJ név le van-e
|
||||
tiltva. Ha igen, nem engedélyezi a nickváltást. Az alapértelmezés "yes".</p>
|
||||
<p><font class="set">set::timesynch::enabled <yes|no></font><br>
|
||||
Engedélyezi vagy letiltja az ircd indításkori idõszinkronizálását. Az alapértelmezés "yes".</p>
|
||||
<p><font class="set">set::timesynch::server <IP></font><br>
|
||||
Ezzel a szerverrel szinkronizálja az idõt. Legfeljebb négy IP lehet, vesszõkkel elválasztva.
|
||||
A szervereknek támogatniuk kell az NTP protokoll 4-es verzióját. Az alapértelmezés 3 idõszervert használ (US, EU,
|
||||
AU). A lekérdezések párhuzamosan kerülnek elküldésre, a leggyorsabb válasz nyer.</p>
|
||||
<p><font class="set">set::timesynch::timeout <idõtartam></font><br>
|
||||
Legfeljebb ennyi ideig vár az idõszerverek válaszára. Ez egy érték 1 és 5 között; több nem lehet,
|
||||
mert túl nagy pontatlanságot okozna. Ez az érték alapértelmezésben 3, és nem valószínû, hogy
|
||||
érdemes megváltoztatni.</p>
|
||||
<p></p> </div>
|
||||
<p><b><font size="+2">5 – További fájlok<a name="addtlfiles"></a>
|
||||
</font></b></p><div class="desc">
|
||||
@@ -2578,7 +2704,8 @@ set {
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">d</div></td>
|
||||
<td>Nem fogadsz csatornabeli PRIVMSG-ket</td>
|
||||
<td>Nem fogadsz csatornabeli PRIVMSG-ket (kivéve az olyan szövegûeket,
|
||||
amelyek bizonyos karakterrel kezdõdnek, lásd: set::channel-command-prefix)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">G</div></td>
|
||||
@@ -3340,7 +3467,7 @@ Ha t
|
||||
és ez érvényes még néhány más dologra is.<br>
|
||||
<br>
|
||||
<b>KÖZÖNSÉGES FELHASZNÁLÓK ÉS SNOMASKOK</b><br>
|
||||
Van egy featúra, amit nem ismernek széles körben; ez az, hogy közönséges felhasználók is beállíthatnak néhány korlátozott snomaskot,
|
||||
Van egy funkció, melyet nem ismernek széles körben; ez az, hogy közönséges felhasználók is beállíthatnak néhány korlátozott snomaskot,
|
||||
mégpedig azt, hogy "+s +sk". Ezzel láthatnak olyan dolgokat, mint a beállítások újratöltése, killek és egyéb más üzenetek.<br>
|
||||
Ennek letiltására használhatod a "set::restrict-usermodes"-t a következõképpen: <i>set { restrict-usermodes "s"; };</i>.<br>
|
||||
|
||||
@@ -3352,7 +3479,7 @@ Viszont a t
|
||||
|
||||
<p><b><font size="+2">8.8. Sebezhetõségek elleni védelem</font></b><a name="secantiexploit"></a><br><div class="desc">
|
||||
Vannak kernel patchek, amelyek nehezebbé teszik a szegmens és verem alapú sebezhetõségek mûködését.
|
||||
Azonban ne ez legyen a figyelmed középpontja, sokkal nagyobb veszély van arra, hogy más módon
|
||||
Ez szép és jó, azonban ne ez legyen a figyelmed középpontja, sokkal nagyobb veszély van arra, hogy más módon
|
||||
aknázzák ki a szervere(i)det... különbözõ okok miatt.<br>
|
||||
<br>
|
||||
Van egy dolog viszont, amit meg kellene tenned, ez pedig az, hogy MINDIG HASZNÁLD A LEGFRISSEBB VERZIÓT, és
|
||||
@@ -3372,7 +3499,7 @@ Nagyon sokan nem is t
|
||||
|
||||
|
||||
<p><font size="+2"><b>9 – Gyakran Ismételt Kérdések (FAQ)<a name="faq"></a></b></font></p>
|
||||
<div class="desc"><p>A FAQ online elérhető <a href="http://www.vulnscan.org/UnrealIrcd/faq/" TARGET="_blank">innen</a>.</p></div>
|
||||
<div class="desc"><p>A FAQ online elérhetõ <a href="http://www.vulnscan.org/UnrealIRCd/faq/" TARGET="_blank">innen</a>.</p></div>
|
||||
<p></p>
|
||||
|
||||
<p><font size="+2"><b>A Reguláris kifejezések<a name="regex"></a></b></font></p>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -127,7 +127,7 @@ help Snomasks {
|
||||
" server notices you will receive.";
|
||||
" Usage: /MODE nick +s <snomask>";
|
||||
" Ex: /MODE blah +s +cF-j";
|
||||
" The parameter specifies which snomasks you want (or don't want)."
|
||||
" The parameter specifies which snomasks you want (or don't want).";
|
||||
" You can also remove all snomasks by simply doing /MODE nick -s.";
|
||||
"-";
|
||||
" Below is a list of possible snomasks:";
|
||||
@@ -159,7 +159,8 @@ help Chmodes {
|
||||
" a <nickname> = Gives Channel Admin to the user";
|
||||
" q <nickname> = Gives Owner status to the user";
|
||||
" -";
|
||||
" b <nick!ident@host> = Bans the nick!ident@host from the channel [h]";
|
||||
" b <nick!ident@host> = Bans the nick!ident@host from the channel";
|
||||
" Extended bantypes (for more info see /HELPOP EXTBANS) [h]";
|
||||
" c = Block messages containing mIRC color codes [o]";
|
||||
" e <nick!ident@host> = Overrides a ban for matching users [h]";
|
||||
" I <nick!ident@host> = Overrides +i for matching users [h]";
|
||||
@@ -194,6 +195,35 @@ help Chmodes {
|
||||
" ==------------------------------oOo----------------------------==";
|
||||
};
|
||||
|
||||
help ExtBans {
|
||||
" Extended bantypes: ";
|
||||
" -";
|
||||
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
||||
" | | People matching these bans can join but are unable to ";
|
||||
" ~q | Quiet | speak, unless they have +v or higher. ";
|
||||
" | | Example: ";
|
||||
" | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | People matching these bans cannot change nicks, unless ";
|
||||
" ~n | nickchange | they have +v or higher. ";
|
||||
" | | Example: ";
|
||||
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | If the user is in this channel then (s)he is unable to ";
|
||||
" | [prefix] | join. A prefix can also be specified (+/%/@/&/~) which ";
|
||||
" ~c | channel | means that it will only match if the user has that ";
|
||||
" | | rights or higher on the specified channel. ";
|
||||
" | | Example: +b ~c:#lamers, +e ~c:@#trusted ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | If the realname of a user matches this then (s)he is ";
|
||||
" | | unable to join. ";
|
||||
" ~r | realname | Example: +b ~r:*Stupid_bot_script* ";
|
||||
" | | NOTE: an underscore ('_') matches both a space (' ') and";
|
||||
" | | an underscore ('_'), so this ban would ";
|
||||
" | | match 'Stupid bot script v1.4'. ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
};
|
||||
|
||||
help Chmodef {
|
||||
" The +f channel mode provides comprehensive flood protection for a channel.";
|
||||
" This mode allows you to prevent join, nick change, CTCP, text, and knock";
|
||||
@@ -207,7 +237,7 @@ help Chmodef {
|
||||
" ==-----Type-----Name--------Default Action---Other Actions-----==";
|
||||
" c CTCP +C m, M";
|
||||
" j Join +i R";
|
||||
" k Knock +k";
|
||||
" k Knock +K";
|
||||
" m Messages +m M";
|
||||
" n Nickchange +N";
|
||||
" t Text kick b";
|
||||
@@ -234,7 +264,7 @@ help Oflags {
|
||||
" r (can_rehash) Access to /REHASH server";
|
||||
" R (can_restart) Access to /RESTART server";
|
||||
" D (can_die) Access to /DIE server";
|
||||
" h (helpop) Oper receives umode +h (helpop)";
|
||||
" h (helpop) Oper is marked as availiable for help is not away";
|
||||
" g (can_globops) Oper can send /GLOBOPS";
|
||||
" w (can_wallops) Oper can send /WALLOPS";
|
||||
" n (can_localnotice) Oper can send Local Server Notices";
|
||||
@@ -252,7 +282,6 @@ help Oflags {
|
||||
" q (can_setq) Can use +q";
|
||||
" H (get_host) Gets +x on oper up";
|
||||
" W (get_umodew) Gets +W on oper up";
|
||||
" X (can_addline) Can use /ADDLINE";
|
||||
" d (can_dccdeny) Can use /DCCDENY";
|
||||
" ==-------------------------------oOo-----------------------------==";
|
||||
};
|
||||
@@ -752,10 +781,10 @@ help Nachat {
|
||||
};
|
||||
|
||||
help Kill {
|
||||
" Forcefully Disconnects a user from an IRC Server.";
|
||||
" Forcefully Disconnects users from an IRC Server.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: KILL <user> <reason>";
|
||||
" Syntax: KILL <user1>,<user2>,<user3>,... <reason>";
|
||||
" Example: KILL Jack16 Cloning is not allowed";
|
||||
};
|
||||
|
||||
@@ -872,6 +901,8 @@ help Rehash {
|
||||
" -opermotd - Rehashes the OPERMOTD";
|
||||
" -botmotd - Rehashes the BOTMOTD";
|
||||
" -garbage - Force garbage collection";
|
||||
" -ssl - Reload SSL certificate and primary key (if SSL enabled)";
|
||||
" -dns - Reload DNS information (from resolv.conf/registry)";
|
||||
};
|
||||
|
||||
help Restart {
|
||||
@@ -947,8 +978,8 @@ help Squit {
|
||||
" Usually used in routing of servers.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: SQUIT <server>";
|
||||
" Example: SQUIT leaf.*";
|
||||
" Syntax: SQUIT <server> [reason]";
|
||||
" Example: SQUIT leaf.* Goodbye";
|
||||
};
|
||||
|
||||
help Connect {
|
||||
@@ -1039,7 +1070,7 @@ help Sdesc {
|
||||
};
|
||||
|
||||
help Mkpasswd {
|
||||
" This command will return a 'hash' of the string that has been specified,"
|
||||
" This command will return a 'hash' of the string that has been specified,";
|
||||
" you can use this hash for any encrypted passwords in your configuration file:";
|
||||
" eg: for oper::password, vhost::password, etc.";
|
||||
" Available types (in order of 'secureness'):";
|
||||
@@ -1132,7 +1163,7 @@ help Svskill {
|
||||
};
|
||||
|
||||
help Svsnoop {
|
||||
" Enables or disables whether Global IRCop functions";
|
||||
" Enables or disables whether IRCop functions";
|
||||
" exist on the server in question or not.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" -";
|
||||
@@ -1228,7 +1259,9 @@ help Svsnline {
|
||||
" spaces are indicated by _, Unreal will internally";
|
||||
" translate these to spaces";
|
||||
" -";
|
||||
" Syntax: SVSNLINE +/- <reason_for_ban> :<realname>";
|
||||
" Syntax: SVSNLINE + <reason_for_ban> :<realname>";
|
||||
" (adds realname ban for <realname>)";
|
||||
" SVSNLINE - :<realname> (removes ban for <realname>)";
|
||||
" Example: SVSNLINE + sub7_drone :*sub7*";
|
||||
};
|
||||
|
||||
@@ -1244,18 +1277,18 @@ help Svslusers {
|
||||
|
||||
help Svswatch {
|
||||
" Changes the WATCH list of a user.";
|
||||
" Must be sent trough an U:Lined server.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Syntax: SVSWATCH <nick> :<watch parameters>";
|
||||
" Example: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
|
||||
};
|
||||
|
||||
help Svssilence {
|
||||
" Changes the SILENCE list of a user.";
|
||||
" Must be sent trough an U:Lined server.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" In contrast to the SILENCE command, you can add/remove";
|
||||
" multiple entries in one line.";
|
||||
" Syntax: SVSSILENCE <nick> :<silence parameters>";
|
||||
" Example: SILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
|
||||
" Example: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
|
||||
};
|
||||
|
||||
help Svssno {
|
||||
@@ -1325,3 +1358,17 @@ help DccAllow {
|
||||
* stuff quickly gets out-of-synch.
|
||||
*/
|
||||
};
|
||||
|
||||
help Addmotd {
|
||||
" Adds a line to the end of the MOTD ";
|
||||
" -";
|
||||
" Syntax: ADDMOTD <text>";
|
||||
" Example: ADDMOTD Play nice!";
|
||||
};
|
||||
|
||||
help Addomotd {
|
||||
" Adds a line to the end of the OPERMOTD ";
|
||||
" -";
|
||||
" Syntax: ADDOMOTD <text>";
|
||||
" Example: ADDOMOTD Abuse it and lose it!";
|
||||
};
|
||||
|
||||
@@ -30,12 +30,14 @@ typedef struct {
|
||||
#define AUTHTYPE_SHA1 3
|
||||
#define AUTHTYPE_SSL_CLIENTCERT 4
|
||||
#define AUTHTYPE_RIPEMD160 5
|
||||
#define AUTHTYPE_SSL_CERTFINGERPRINT_SHA1 6
|
||||
|
||||
/* md5 is always available and enabled as of Unreal3.2.1 */
|
||||
#define AUTHENABLE_MD5
|
||||
#ifdef USE_SSL
|
||||
#define AUTHENABLE_SHA1
|
||||
#define AUTHENABLE_SSL_CLIENTCERT
|
||||
#define AUTHENABLE_SSL_CERTFINGERPRINT
|
||||
#define AUTHENABLE_RIPEMD160
|
||||
/* OpenSSL provides a crypt() */
|
||||
#ifndef AUTHENABLE_UNIXCRYPT
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
#include "tre/regex.h"
|
||||
#include "pcreposix.h"
|
||||
#else
|
||||
#include "win32/regex.h"
|
||||
#endif
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
/************************************************************************
|
||||
* Unreal Internet Relay Chat Daemon, include/class.h
|
||||
* Copyright (C) 1990 Darren Reed
|
||||
*
|
||||
* 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __class_include__
|
||||
#define __class_include__
|
||||
|
||||
typedef struct Class {
|
||||
int class;
|
||||
int conFreq;
|
||||
int pingFreq;
|
||||
int maxLinks;
|
||||
long maxSendq;
|
||||
int links;
|
||||
struct Class *next;
|
||||
} aClass;
|
||||
|
||||
#define Class(x) ((x)->class)
|
||||
#define ConFreq(x) ((x)->conFreq)
|
||||
#define PingFreq(x) ((x)->pingFreq)
|
||||
#define MaxLinks(x) ((x)->maxLinks)
|
||||
#define MaxSendq(x) ((x)->maxSendq)
|
||||
#define Links(x) ((x)->links)
|
||||
|
||||
#define ConfLinks(x) (Class(x)->links)
|
||||
#define ConfMaxLinks(x) (Class(x)->maxLinks)
|
||||
#define ConfClass(x) (Class(x)->class)
|
||||
#define ConfConFreq(x) (Class(x)->conFreq)
|
||||
#define ConfPingFreq(x) (Class(x)->pingFreq)
|
||||
#define ConfSendq(x) (Class(x)->maxSendq)
|
||||
|
||||
#define FirstClass() classes
|
||||
#define NextClass(x) ((x)->next)
|
||||
|
||||
extern aClass *classes;
|
||||
|
||||
extern aClass *find_class(int);
|
||||
extern int get_conf_class(aConfItem *);
|
||||
extern int get_client_class(aClient *);
|
||||
extern int get_client_ping(aClient *);
|
||||
extern int get_con_freq(aClass *);
|
||||
extern void add_class(int, int, int, int, long);
|
||||
extern void check_class(void);
|
||||
extern void initclass(void);
|
||||
|
||||
#endif /* __class_include__ */
|
||||
@@ -230,8 +230,6 @@ static char *StsMalloc(size_t size, char *file, long line)
|
||||
|
||||
#endif
|
||||
|
||||
extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
|
||||
|
||||
/*
|
||||
* Protocol support text. DO NO CHANGE THIS unless you know what
|
||||
* you are doing.
|
||||
|
||||
+41
-61
@@ -70,6 +70,11 @@
|
||||
|
||||
#undef NO_FDLIST
|
||||
|
||||
/*
|
||||
* system have sockaddr_storage struct.
|
||||
*/
|
||||
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
|
||||
|
||||
/*
|
||||
* Defining this will allow all ircops to see people in +s channels
|
||||
* By default, only net/tech admins can see this
|
||||
@@ -109,12 +114,6 @@
|
||||
*/
|
||||
#undef STRIPBADWORDS_CHAN_ALWAYS
|
||||
|
||||
/*
|
||||
* THROTTLING
|
||||
* This will only allow 1 connection per ip in set::throttle::period time
|
||||
*/
|
||||
#define THROTTLING
|
||||
|
||||
/*
|
||||
* No spoof code
|
||||
*
|
||||
@@ -201,7 +200,11 @@
|
||||
* these are only the recommened names and paths. Change as needed.
|
||||
* You must define these to something, even if you don't really want them.
|
||||
*/
|
||||
#ifndef _WIN32
|
||||
#define CPATH "unrealircd.conf" /* server configuration file */
|
||||
#else
|
||||
extern char CPATH[262];
|
||||
#endif
|
||||
#define MPATH "ircd.motd" /* server MOTD file */
|
||||
#define SMPATH "ircd.smotd" /* short MOTD file */
|
||||
#define RPATH "ircd.rules" /* server rules file */
|
||||
@@ -214,15 +217,32 @@
|
||||
|
||||
/* CHROOTDIR
|
||||
*
|
||||
* Define for value added security if you are a rooter.
|
||||
* This enables running the IRCd chrooted (requires initial root privileges,
|
||||
* but will be dropped to IRC_USER/IRC_GROUP privileges if those are defined).
|
||||
*
|
||||
* All files you access must be in the directory you define as DPATH.
|
||||
* The directory to chroot to is simply DPATH (which is set via ./Config).
|
||||
* (This may effect the PATH locations above, though you can symlink it)
|
||||
*
|
||||
* You may want to define IRC_UID and IRC_GID
|
||||
* Usually you only simply need to enable this, and set IRC_USER and
|
||||
* IRC_GROUP, you don't need to create a special chroot environment..
|
||||
* UnrealIRCd will do that by itself (Unreal will create /dev/random,
|
||||
* etc. etc.).
|
||||
*
|
||||
* Change to '#define CHROOTDIR' to enable...
|
||||
*/
|
||||
/* #define CHROOTDIR */
|
||||
|
||||
/*
|
||||
* IRC_USER
|
||||
*
|
||||
* If you start the server as root but wish to have it run as another user,
|
||||
* define IRC_USER to that user name. This should only be defined if you
|
||||
* are running as root and even then perhaps not.
|
||||
*/
|
||||
/* #define IRC_USER "<user name>" */
|
||||
/* #define IRC_GROUP "<group name>" */
|
||||
|
||||
|
||||
/* SHOW_INVISIBLE_LUSERS
|
||||
*
|
||||
* As defined this will show the correct invisible count for anyone who does
|
||||
@@ -281,19 +301,6 @@
|
||||
#define BUFFERPOOL (18 * MAXSENDQLENGTH)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* IRC_UID
|
||||
*
|
||||
* If you start the server as root but wish to have it run as another user,
|
||||
* define IRC_UID to that UID. This should only be defined if you are running
|
||||
* as root and even then perhaps not.
|
||||
* use #define IRC_UID <uid>
|
||||
* and #define IRC_GID <gid>
|
||||
*/
|
||||
|
||||
#undef IRC_UID
|
||||
#undef IRC_GID
|
||||
|
||||
/*
|
||||
* CLIENT_FLOOD
|
||||
*
|
||||
@@ -311,17 +318,13 @@
|
||||
|
||||
#define NO_FLOOD_AWAY
|
||||
|
||||
/*
|
||||
* Define your network service names here.
|
||||
/* You can define the nickname of NickServ here (usually "NickServ").
|
||||
* This is ONLY used for the ""infamous IDENTIFY feature"", which is:
|
||||
* whenever a user connects with a server password but there isn't
|
||||
* a server password set, the password is sent to NickServ in an
|
||||
* 'IDENTIFY <pass>' message.
|
||||
*/
|
||||
#define ChanServ "ChanServ"
|
||||
#define MemoServ "MemoServ"
|
||||
#define NickServ "NickServ"
|
||||
#define OperServ "OperServ"
|
||||
#define HelpServ "HelpServ"
|
||||
#define StatServ "StatServ"
|
||||
#define InfoServ "InfoServ"
|
||||
#define BotServ "BotServ"
|
||||
|
||||
/*
|
||||
* How many open targets can one nick have for messaging nicks and
|
||||
@@ -358,7 +361,7 @@
|
||||
* 8MB or less core memory : 500 (at least 1/4 of max users)
|
||||
* 8MB-16MB core memory : 500-750 (1/4 -> 1/2 of max users)
|
||||
* 16MB-32MB core memory : 750-1000 (1/2 -> 3/4 of max users)
|
||||
* 32MB or more core memory : 1000+ (> 3/4 if max users)
|
||||
* 32MB or more core memory : 1000+ (> 3/4 of max users)
|
||||
* where max users is the expected maximum number of users.
|
||||
* (100 nicks/users ~ 25k)
|
||||
* NOTE: this is directly related to the amount of memory ircd will use whilst
|
||||
@@ -373,7 +376,7 @@
|
||||
|
||||
/*
|
||||
* Time interval to wait and if no messages have been received, then check for
|
||||
* PINGFREQUENCY and CONNECTFREQUENCY
|
||||
* pings, outgoing connects, events, and a couple of other things.
|
||||
* Imo this is quite useless nowdays, it only saves _some_ cpu on tiny networks
|
||||
* with like 10 users all of them being inactive. On a normal network with >30
|
||||
* users this value is completely irrelevant.
|
||||
@@ -387,15 +390,10 @@
|
||||
* PINGFREQUENCY seconds, then the server will attempt to check for
|
||||
* an active link with a PING message. If no reply is received within
|
||||
* (PINGFREQUENCY * 2) seconds, then the connection will be closed.
|
||||
* NOTE: This is simply the class::pingfreq for the default class, nothing fancy ;)
|
||||
*/
|
||||
#define PINGFREQUENCY 120 /* Recommended value: 120 */
|
||||
|
||||
/*
|
||||
* If the connection to to uphost is down, then attempt to reconnect every
|
||||
* CONNECTFREQUENCY seconds.
|
||||
*/
|
||||
#define CONNECTFREQUENCY 600 /* Recommended value: 600 */
|
||||
|
||||
/*
|
||||
* Often net breaks for a short time and it's useful to try to
|
||||
* establishing the same connection again faster than CONNECTFREQUENCY
|
||||
@@ -427,18 +425,6 @@
|
||||
*/
|
||||
#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */
|
||||
|
||||
/*
|
||||
* Use much faster badwords replace routine (>100 times faster).
|
||||
*/
|
||||
#define FAST_BADWORD_REPLACE
|
||||
|
||||
/*
|
||||
* Only important for people using IPv6 (default should be ok for now) -Onliner
|
||||
* Because ip6.arpa is still not delegated for the 6bone (3ffe::/16)
|
||||
* this options allows you to still resolve it using ip6.int.
|
||||
*/
|
||||
#define SIXBONE_HACK
|
||||
|
||||
/*
|
||||
* Forces Unreal to use compressed IPv6 addresses rather than expanding them
|
||||
*/
|
||||
@@ -471,6 +457,10 @@
|
||||
#define CONFIGFILE CPATH
|
||||
#define IRCD_PIDFILE PPATH
|
||||
|
||||
#if defined(CHROOTDIR) && !defined(IRC_USER)
|
||||
#error "ERROR: It makes no sense to define CHROOTDIR but not IRC_USER and IRC_GROUP! Please define IRC_USER and IRC_GROUP properly as the user/group to change to."
|
||||
#endif
|
||||
|
||||
#ifdef __osf__
|
||||
#define OSF
|
||||
/* OSF defines BSD to be its version of BSD */
|
||||
@@ -550,16 +540,6 @@ error You stuffed up config.h signals
|
||||
* whatever else. -4 allows "safety" margin of 1 and space reserved.
|
||||
*/
|
||||
#define MAXCLIENTS (MAXCONNECTIONS-4)
|
||||
#ifdef HAVECURSES
|
||||
# define DOCURSES
|
||||
#else
|
||||
# undef DOCURSES
|
||||
#endif
|
||||
#ifdef HAVETERMCAP
|
||||
# define DOTERMCAP
|
||||
#else
|
||||
# undef DOTERMCAP
|
||||
#endif
|
||||
# define stricmp strcasecmp
|
||||
# define strnicmp strncasecmp
|
||||
#if defined(CLIENT_FLOOD)
|
||||
|
||||
+43
-20
@@ -19,7 +19,7 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
|
||||
#ifndef DYNCONF_H
|
||||
#define DYNCONF_H
|
||||
/* config level */
|
||||
#define DYNCONF_CONF_VERSION "1.5"
|
||||
@@ -52,13 +52,6 @@ struct ChMode {
|
||||
long extmodes;
|
||||
char *extparams[EXTCMODETABLESZ];
|
||||
#endif
|
||||
#ifdef NEWCHFLOODPROT
|
||||
ChanFloodProt floodprot;
|
||||
#else
|
||||
unsigned short msgs;
|
||||
unsigned short per;
|
||||
unsigned char kmode;
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef struct _OperStat {
|
||||
@@ -73,7 +66,6 @@ struct zConfiguration {
|
||||
unsigned flat_map:1;
|
||||
unsigned allow_chatops:1;
|
||||
unsigned webtv_support:1;
|
||||
unsigned no_oper_hiding:1;
|
||||
unsigned ident_check:1;
|
||||
unsigned fail_oper_warn:1;
|
||||
unsigned show_connect_info:1;
|
||||
@@ -81,15 +73,14 @@ struct zConfiguration {
|
||||
unsigned use_ban_version:1;
|
||||
unsigned mkpasswd_for_everyone:1;
|
||||
unsigned allow_part_if_shunned:1;
|
||||
unsigned use_egd;
|
||||
unsigned check_target_nick_bans:1;
|
||||
unsigned use_egd : 1;
|
||||
long host_timeout;
|
||||
int host_retries;
|
||||
char *name_server;
|
||||
char *dns_bindip;
|
||||
#ifdef THROTTLING
|
||||
long throttle_period;
|
||||
char throttle_count;
|
||||
#endif
|
||||
char *kline_address;
|
||||
char *gline_address;
|
||||
long conn_modes;
|
||||
@@ -109,11 +100,17 @@ struct zConfiguration {
|
||||
#ifdef USE_SSL
|
||||
char *x_server_cert_pem;
|
||||
char *x_server_key_pem;
|
||||
char *x_server_cipher_list;
|
||||
char *x_dh_pem;
|
||||
char *trusted_ca_file;
|
||||
long ssl_options;
|
||||
int ssl_renegotiate_bytes;
|
||||
int ssl_renegotiate_timeout;
|
||||
|
||||
#elif defined(_WIN32)
|
||||
void *bogus1, *bogus2, *bogus3;
|
||||
void *bogus1, *bogus2, *bogus3, *bogus5, *bogus8;
|
||||
long bogus4;
|
||||
int bogus6, bogus7;
|
||||
#endif
|
||||
enum UHAllowed userhost_allowed;
|
||||
char *restrict_usermodes;
|
||||
@@ -145,7 +142,14 @@ struct zConfiguration {
|
||||
char spamfilter_vchan_deny;
|
||||
SpamExcept *spamexcept;
|
||||
char *spamexcept_line;
|
||||
int maxbans;
|
||||
int maxbanlength;
|
||||
int timesynch_enabled;
|
||||
int timesynch_timeout;
|
||||
char *timesynch_server;
|
||||
int pingpong_warning;
|
||||
aNetwork network;
|
||||
int nicklen;
|
||||
};
|
||||
|
||||
#ifndef DYNCONF_C
|
||||
@@ -165,7 +169,6 @@ extern MODVAR aConfiguration iConf;
|
||||
#define MAXCHANNELSPERUSER iConf.maxchannelsperuser
|
||||
#define MAXDCCALLOW iConf.maxdccallow
|
||||
#define WEBTV_SUPPORT iConf.webtv_support
|
||||
#define NO_OPER_HIDING iConf.no_oper_hiding
|
||||
#define DONT_RESOLVE iConf.dont_resolve
|
||||
#define AUTO_JOIN_CHANS iConf.auto_join_chans
|
||||
#define OPER_AUTO_JOIN_CHANS iConf.oper_auto_join_chans
|
||||
@@ -206,10 +209,8 @@ extern MODVAR aConfiguration iConf;
|
||||
#define RESTRICT_USERMODES iConf.restrict_usermodes
|
||||
#define RESTRICT_CHANNELMODES iConf.restrict_channelmodes
|
||||
#define RESTRICT_EXTENDEDBANS iConf.restrict_extendedbans
|
||||
#ifdef THROTTLING
|
||||
#define THROTTLING_PERIOD iConf.throttle_period
|
||||
#define THROTTLING_COUNT iConf.throttle_count
|
||||
#endif
|
||||
#define USE_BAN_VERSION iConf.use_ban_version
|
||||
#define UNKNOWN_FLOOD_BANTIME iConf.unknown_flood_bantime
|
||||
#define UNKNOWN_FLOOD_AMOUNT iConf.unknown_flood_amount
|
||||
@@ -246,15 +247,24 @@ extern MODVAR aConfiguration iConf;
|
||||
#define SPAMFILTER_VIRUSCHAN iConf.spamfilter_virus_help_channel
|
||||
#define SPAMFILTER_VIRUSCHANDENY iConf.spamfilter_vchan_deny
|
||||
#define SPAMFILTER_EXCEPT iConf.spamexcept_line
|
||||
#define CHECK_TARGET_NICK_BANS iConf.check_target_nick_bans
|
||||
|
||||
/* Used for duplicate checking */
|
||||
#define MAXBANS iConf.maxbans
|
||||
#define MAXBANLENGTH iConf.maxbanlength
|
||||
|
||||
#define TIMESYNCH iConf.timesynch_enabled
|
||||
#define TIMESYNCH_TIMEOUT iConf.timesynch_timeout
|
||||
#define TIMESYNCH_SERVER iConf.timesynch_server
|
||||
|
||||
#define PINGPONG_WARNING iConf.pingpong_warning
|
||||
|
||||
/* Used for "is present?" and duplicate checking */
|
||||
struct SetCheck {
|
||||
unsigned has_show_opermotd:1;
|
||||
unsigned has_hide_ulines:1;
|
||||
unsigned has_flat_map:1;
|
||||
unsigned has_allow_chatops:1;
|
||||
unsigned has_webtv_support:1;
|
||||
unsigned has_no_oper_hiding:1;
|
||||
unsigned has_ident_check:1;
|
||||
unsigned has_fail_oper_warn:1;
|
||||
unsigned has_show_connect_info:1;
|
||||
@@ -262,13 +272,13 @@ struct SetCheck {
|
||||
unsigned has_mkpasswd_for_everyone:1;
|
||||
unsigned has_allow_part_if_shunned:1;
|
||||
unsigned has_ssl_egd:1;
|
||||
unsigned has_ssl_server_cipher_list :1;
|
||||
unsigned has_dns_timeout:1;
|
||||
unsigned has_dns_retries:1;
|
||||
unsigned has_dns_nameserver:1;
|
||||
#ifdef THROTTLING
|
||||
unsigned has_dns_bind_ip:1;
|
||||
unsigned has_throttle_period:1;
|
||||
unsigned has_throttle_connections:1;
|
||||
#endif
|
||||
unsigned has_kline_address:1;
|
||||
unsigned has_gline_address:1;
|
||||
unsigned has_modes_on_connect:1;
|
||||
@@ -277,6 +287,8 @@ struct SetCheck {
|
||||
unsigned has_snomask_on_oper:1;
|
||||
unsigned has_auto_join:1;
|
||||
unsigned has_oper_auto_join:1;
|
||||
unsigned has_check_target_nick_bans:1;
|
||||
unsigned has_pingpong_warning:1;
|
||||
unsigned has_oper_only_stats:1;
|
||||
unsigned has_maxchannelsperuser:1;
|
||||
unsigned has_maxdccallow:1;
|
||||
@@ -289,6 +301,9 @@ struct SetCheck {
|
||||
unsigned has_ssl_key:1;
|
||||
unsigned has_ssl_trusted_ca_file:1;
|
||||
unsigned has_ssl_options:1;
|
||||
unsigned has_ssl_dh:1;
|
||||
unsigned has_renegotiate_timeout : 1;
|
||||
unsigned has_renegotiate_bytes : 1;
|
||||
#endif
|
||||
unsigned has_allow_userhost_change:1;
|
||||
unsigned has_restrict_usermodes:1;
|
||||
@@ -307,6 +322,8 @@ struct SetCheck {
|
||||
unsigned has_ident_read_timeout:1;
|
||||
unsigned has_default_bantime:1;
|
||||
unsigned has_who_limit:1;
|
||||
unsigned has_maxbans:1;
|
||||
unsigned has_maxbanlength:1;
|
||||
unsigned has_silence_limit:1;
|
||||
#ifdef NEWCHFLOODPROT
|
||||
unsigned has_modef_default_unsettime:1;
|
||||
@@ -343,6 +360,12 @@ struct SetCheck {
|
||||
unsigned has_options_show_connect_info:1;
|
||||
unsigned has_options_mkpasswd_for_everyone:1;
|
||||
unsigned has_options_allow_part_if_shunned:1;
|
||||
int cgiirc_type; /* cheat :( */
|
||||
unsigned has_cgiirc_hosts:1;
|
||||
unsigned has_cgiirc_webpass:1;
|
||||
unsigned has_nicklen:1;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define _IRCD_DOG3_FDLIST
|
||||
|
||||
/* $Id$ */
|
||||
#ifndef NEW_IO
|
||||
|
||||
typedef struct fdstruct {
|
||||
int entry[MAXCONNECTIONS + 2];
|
||||
@@ -16,6 +17,425 @@ void init_fdlist(fdlist * b);
|
||||
extern MODVAR fdlist oper_fdlist;
|
||||
#endif
|
||||
|
||||
#else /* ifndef NEW_IO */
|
||||
|
||||
/* Hybrid Support Headers Begin */
|
||||
#include <sys/resource.h>
|
||||
|
||||
#ifdef RLIMIT_FDMAX
|
||||
# define RLIMIT_FD_MAX RLIMIT_FDMAX
|
||||
#else
|
||||
# ifdef RLIMIT_NOFILE
|
||||
# define RLIMIT_FD_MAX RLIMIT_NOFILE
|
||||
# else
|
||||
# ifdef RLIMIT_OPEN_MAX
|
||||
# define RLIMIT_FD_MAX RLIMIT_OPEN_MAX
|
||||
# else
|
||||
# warning No file descriptor limit was found
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define COMM_SELECT_READ 1
|
||||
#define COMM_SELECT_WRITE 2
|
||||
|
||||
/* How long can comm_select() wait for network events [milliseconds] */
|
||||
#define SELECT_DELAY 500
|
||||
|
||||
#define LOWEST_SAFE_FD 4 /* skip stdin, stdout, stderr, and profiler */
|
||||
|
||||
/* Path to /dev/null */
|
||||
#define PATH_DEVNULL "/dev/null"
|
||||
|
||||
extern const unsigned char ToUpperTab[];
|
||||
#define ToUpper(c) (ToUpperTab[(unsigned char)(c)])
|
||||
|
||||
|
||||
/*
|
||||
* NOTE: The following functions are NOT the same as strcasecmp
|
||||
* and strncasecmp! These functions use the Finnish (RFC1459)
|
||||
* character set. Do not replace!
|
||||
*
|
||||
* irccmp - case insensitive comparison of s1 and s2
|
||||
*/
|
||||
extern int irccmp(const char *, const char *);
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct _dlink_node dlink_node;
|
||||
typedef struct _dlink_list dlink_list;
|
||||
|
||||
struct _dlink_node
|
||||
{
|
||||
void *data;
|
||||
dlink_node *prev;
|
||||
dlink_node *next;
|
||||
};
|
||||
|
||||
struct _dlink_list
|
||||
{
|
||||
dlink_node *head;
|
||||
dlink_node *tail;
|
||||
unsigned long length;
|
||||
};
|
||||
|
||||
extern void dlinkAdd(void *data, dlink_node * m, dlink_list * list);
|
||||
extern void dlinkAddBefore(dlink_node *b, void *data, dlink_node *m, dlink_list *list);
|
||||
extern void dlinkAddTail(void *data, dlink_node *m, dlink_list *list);
|
||||
extern void dlinkDelete(dlink_node *m, dlink_list *list);
|
||||
extern void dlinkMoveList(dlink_list *from, dlink_list *to);
|
||||
extern dlink_node *dlinkFind(dlink_list *m, void *data);
|
||||
extern dlink_node *dlinkFindDelete(dlink_list *m, void *data);
|
||||
|
||||
#ifndef NDEBUG
|
||||
void mem_frob(void *data, int len);
|
||||
#else
|
||||
#define mem_frob(x, y)
|
||||
#endif
|
||||
|
||||
/* These macros are basically swiped from the linux kernel
|
||||
* they are simple yet effective
|
||||
*/
|
||||
|
||||
/*
|
||||
* Walks forward of a list.
|
||||
* pos is your node
|
||||
* head is your list head
|
||||
*/
|
||||
#define DLINK_FOREACH(pos, head) for (pos = (head); pos != NULL; pos = pos->next)
|
||||
|
||||
/*
|
||||
* Walks forward of a list safely while removing nodes
|
||||
* pos is your node
|
||||
* n is another list head for temporary storage
|
||||
* head is your list head
|
||||
*/
|
||||
#define DLINK_FOREACH_SAFE(pos, n, head) for (pos = (head), n = pos ? pos->next : NULL; pos != NULL; pos = n, n = pos ? pos->next : NULL)
|
||||
#define DLINK_FOREACH_PREV(pos, head) for (pos = (head); pos != NULL; pos = pos->prev)
|
||||
|
||||
/* Returns the list length */
|
||||
#define dlink_list_length(list) (list)->length
|
||||
|
||||
/*
|
||||
* The functions below are included for the sake of inlining
|
||||
* hopefully this will speed up things just a bit
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* dlink_ routines are stolen from squid, except for dlinkAddBefore,
|
||||
* which is mine.
|
||||
* -- adrian
|
||||
*/
|
||||
extern inline void dlinkAdd(void *data, dlink_node * m, dlink_list * list)
|
||||
{
|
||||
m->data = data;
|
||||
m->prev = NULL;
|
||||
m->next = list->head;
|
||||
/* Assumption: If list->tail != NULL, list->head != NULL */
|
||||
if (list->head != NULL)
|
||||
list->head->prev = m;
|
||||
else if (list->tail == NULL)
|
||||
list->tail = m;
|
||||
list->head = m;
|
||||
list->length++;
|
||||
}
|
||||
|
||||
extern inline void dlinkAddBefore(dlink_node *b, void *data, dlink_node *m, dlink_list *list)
|
||||
{
|
||||
/* Shortcut - if its the first one, call dlinkAdd only */
|
||||
if (b == list->head)
|
||||
dlinkAdd(data, m, list);
|
||||
else {
|
||||
m->data = data;
|
||||
b->prev->next = m;
|
||||
m->prev = b->prev;
|
||||
b->prev = m;
|
||||
m->next = b;
|
||||
list->length++;
|
||||
}
|
||||
}
|
||||
|
||||
extern inline void dlinkAddTail(void *data, dlink_node *m, dlink_list *list)
|
||||
{
|
||||
m->data = data;
|
||||
m->next = NULL;
|
||||
m->prev = list->tail;
|
||||
/* Assumption: If list->tail != NULL, list->head != NULL */
|
||||
if (list->tail != NULL)
|
||||
list->tail->next = m;
|
||||
else if (list->head == NULL)
|
||||
list->head = m;
|
||||
list->tail = m;
|
||||
list->length++;
|
||||
}
|
||||
|
||||
/* Execution profiles show that this function is called the most
|
||||
* often of all non-spontaneous functions. So it had better be
|
||||
* efficient. */
|
||||
extern inline void dlinkDelete(dlink_node *m, dlink_list *list)
|
||||
{
|
||||
/* Assumption: If m->next == NULL, then list->tail == m
|
||||
* and: If m->prev == NULL, then list->head == m
|
||||
*/
|
||||
if (m->next)
|
||||
m->next->prev = m->prev;
|
||||
else {
|
||||
assert(list->tail == m);
|
||||
list->tail = m->prev;
|
||||
}
|
||||
if (m->prev)
|
||||
m->prev->next = m->next;
|
||||
else {
|
||||
assert(list->head == m);
|
||||
list->head = m->next;
|
||||
}
|
||||
/* Set this to NULL does matter */
|
||||
m->next = m->prev = NULL;
|
||||
list->length--;
|
||||
}
|
||||
|
||||
/*
|
||||
* dlinkFind
|
||||
* inputs - list to search
|
||||
* - data
|
||||
* output - pointer to link or NULL if not found
|
||||
* side effects - Look for ptr in the linked listed pointed to by link.
|
||||
*/
|
||||
extern inline dlink_node *dlinkFind(dlink_list *list, void *data)
|
||||
{
|
||||
dlink_node *ptr;
|
||||
|
||||
DLINK_FOREACH(ptr, list->head)
|
||||
{
|
||||
if (ptr->data == data)
|
||||
return(ptr);
|
||||
}
|
||||
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
extern inline void dlinkMoveList(dlink_list *from, dlink_list *to)
|
||||
{
|
||||
/* There are three cases */
|
||||
/* case one, nothing in from list */
|
||||
|
||||
if (from->head == NULL)
|
||||
return;
|
||||
|
||||
/* case two, nothing in to list */
|
||||
/* actually if to->head is NULL and to->tail isn't, thats a bug */
|
||||
|
||||
if (to->head == NULL)
|
||||
{
|
||||
to->head = from->head;
|
||||
to->tail = from->tail;
|
||||
from->head = from->tail = NULL;
|
||||
to->length = from->length;
|
||||
from->length = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* third case play with the links */
|
||||
|
||||
from->tail->next = to->head;
|
||||
from->head->prev = to->head->prev;
|
||||
to->head->prev = from->tail;
|
||||
to->head = from->head;
|
||||
from->head = from->tail = NULL;
|
||||
to->length += from->length;
|
||||
from->length = 0;
|
||||
|
||||
/* I think I got that right */
|
||||
}
|
||||
|
||||
extern inline dlink_node *dlinkFindDelete(dlink_list *list, void *data)
|
||||
{
|
||||
dlink_node *m;
|
||||
|
||||
DLINK_FOREACH(m, list->head)
|
||||
{
|
||||
if (m->data == data)
|
||||
{
|
||||
if (m->next)
|
||||
m->next->prev = m->prev;
|
||||
else
|
||||
{
|
||||
assert(list->tail == m);
|
||||
list->tail = m->prev;
|
||||
}
|
||||
if (m->prev)
|
||||
m->prev->next = m->next;
|
||||
else
|
||||
{
|
||||
assert(list->head == m);
|
||||
list->head = m->next;
|
||||
}
|
||||
/* Set this to NULL does matter */
|
||||
m->next = m->prev = NULL;
|
||||
list->length--;
|
||||
|
||||
return(m);
|
||||
}
|
||||
}
|
||||
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
extern dlink_list callback_list; /* listing/debugging purposes */
|
||||
|
||||
typedef void *CBFUNC(va_list);
|
||||
|
||||
struct Callback
|
||||
{
|
||||
char *name;
|
||||
dlink_list chain;
|
||||
dlink_node node;
|
||||
unsigned int called;
|
||||
time_t last;
|
||||
};
|
||||
|
||||
extern struct Callback *register_callback(const char *, CBFUNC *);
|
||||
extern void *execute_callback(struct Callback *, ...);
|
||||
extern struct Callback *find_callback(const char *);
|
||||
extern dlink_node *install_hook(struct Callback *, CBFUNC *);
|
||||
extern void uninstall_hook(struct Callback *, CBFUNC *);
|
||||
extern void *pass_callback(dlink_node *, ...);
|
||||
extern void stats_hooks(struct Client *);
|
||||
|
||||
#define is_callback_present(c) (!!dlink_list_length(&c->chain))
|
||||
|
||||
/* Hybrid Support Headers End */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* tests show that about 7 fds are not registered by fdlist.c, these
|
||||
* include std* descriptors + some others (by OpenSSL etc.). Note this is
|
||||
* intentionally too high, we don't want to eat fds up to the last one */
|
||||
#define LEAKED_FDS 10
|
||||
|
||||
/* how many (privileged) clients can exceed max_clients */
|
||||
#define MAX_BUFFER 60
|
||||
|
||||
#define MAXCLIENTS_MAX (hard_fdlimit - LEAKED_FDS - MAX_BUFFER)
|
||||
#define MAXCLIENTS_MIN 32
|
||||
|
||||
#define FD_DESC_SZ 128 /* hostlen + comment */
|
||||
|
||||
/* enums better then defines for debugging issue */
|
||||
enum {
|
||||
COMM_OK,
|
||||
COMM_ERR_BIND,
|
||||
COMM_ERR_DNS,
|
||||
COMM_ERR_TIMEOUT,
|
||||
COMM_ERR_CONNECT,
|
||||
COMM_ERROR,
|
||||
COMM_ERR_MAX
|
||||
};
|
||||
|
||||
/* This is to get around the fact that some implementations have ss_len and
|
||||
* others do not
|
||||
*/
|
||||
struct irc_ssaddr
|
||||
{
|
||||
struct sockaddr_storage ss;
|
||||
unsigned char ss_len;
|
||||
in_port_t ss_port;
|
||||
};
|
||||
|
||||
|
||||
/* For Callback functions arguments */
|
||||
struct _fde;
|
||||
|
||||
/* Callback for completed IO events */
|
||||
typedef void PF(struct _fde *, void *);
|
||||
|
||||
/* Callback for completed connections */
|
||||
/* int fd, int status, void * */
|
||||
typedef void CNCB(struct _fde *, int, void *);
|
||||
|
||||
typedef struct _fde {
|
||||
/* New-school stuff, again pretty much ripped from squid */
|
||||
/*
|
||||
* Yes, this gives us only one pending read and one pending write per
|
||||
* filedescriptor. Think though: when do you think we'll need more?
|
||||
*/
|
||||
int fd; /* So we can use the fde_t as a callback ptr */
|
||||
int comm_index; /* where in the poll list we live */
|
||||
int evcache; /* current fd events as set up by the underlying I/O */
|
||||
char desc[FD_DESC_SZ];
|
||||
PF *read_handler;
|
||||
void *read_data;
|
||||
PF *write_handler;
|
||||
void *write_data;
|
||||
PF *timeout_handler;
|
||||
void *timeout_data;
|
||||
time_t timeout;
|
||||
PF *flush_handler;
|
||||
void *flush_data;
|
||||
time_t flush_timeout;
|
||||
/* struct DNSQuery *dns_query; at hybrid 7.2.2 */
|
||||
struct DNSReq *dns_query;
|
||||
struct {
|
||||
unsigned int open:1;
|
||||
unsigned int is_socket:1;
|
||||
#ifdef USE_SSL
|
||||
unsigned int pending_read:1;
|
||||
#endif
|
||||
} flags;
|
||||
|
||||
struct {
|
||||
/* We don't need the host here ? */
|
||||
struct irc_ssaddr S;
|
||||
struct irc_ssaddr hostaddr;
|
||||
CNCB *callback;
|
||||
void *data;
|
||||
/* We'd also add the retry count here when we get to that -- adrian */
|
||||
} connect;
|
||||
#ifdef USE_SSL
|
||||
SSL *ssl;
|
||||
#endif
|
||||
struct _fde *hnext;
|
||||
} fde_t;
|
||||
|
||||
#define CLIENT_HEAP_SIZE 1024
|
||||
#define FD_HASH_SIZE CLIENT_HEAP_SIZE
|
||||
|
||||
extern int number_fd;
|
||||
extern int hard_fdlimit;
|
||||
extern fde_t *fd_hash[];
|
||||
extern fde_t *fd_next_in_loop;
|
||||
extern struct Callback *fdlimit_cb;
|
||||
|
||||
extern void fdlist_init(void);
|
||||
extern fde_t *lookup_fd(int);
|
||||
extern void fd_open(fde_t *, int, int, const char *);
|
||||
extern void fd_close(fde_t *);
|
||||
extern void fd_dump(struct Client *);
|
||||
#ifndef __GNUC__
|
||||
extern void fd_note(fde_t *, const char *format, ...);
|
||||
#else
|
||||
extern void fd_note(fde_t *, const char *format, ...)
|
||||
__attribute__((format (printf, 2, 3)));
|
||||
#endif
|
||||
extern void close_standard_fds(void);
|
||||
extern void close_fds(fde_t *);
|
||||
extern void recalc_fdlimit(void *);
|
||||
|
||||
#endif /* ifndef NEW_IO */
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
|
||||
+66
-51
@@ -49,9 +49,9 @@ extern TS check_pings(TS now);
|
||||
extern TS TS2ts(char *s);
|
||||
extern MODVAR time_t timeofday;
|
||||
/* newconf */
|
||||
#define get_sendq(x) ((x)->class ? (x)->class->sendq : MAXSENDQLENGTH)
|
||||
#define get_sendq(x) ((x)->cclass ? (x)->cclass->sendq : MAXSENDQLENGTH)
|
||||
/* get_recvq is only called in send.c for local connections */
|
||||
#define get_recvq(x) ((x)->class->recvq ? (x)->class->recvq : CLIENT_FLOOD)
|
||||
#define get_recvq(x) ((x)->cclass->recvq ? (x)->cclass->recvq : CLIENT_FLOOD)
|
||||
|
||||
#define CMD_FUNC(x) int (x) (aClient *cptr, aClient *sptr, int parc, char *parv[])
|
||||
|
||||
@@ -104,9 +104,7 @@ extern MODVAR ConfigItem_offchans *conf_offchans;
|
||||
extern int completed_connection(aClient *);
|
||||
extern void clear_unknown();
|
||||
extern EVENT(e_unload_module_delayed);
|
||||
#ifdef THROTTLING
|
||||
extern EVENT(e_clean_out_throttling_buckets);
|
||||
#endif
|
||||
|
||||
extern void module_loadall(int module_load);
|
||||
extern long set_usermode(char *umode);
|
||||
@@ -123,6 +121,7 @@ ConfigItem_ulines *Find_uline(char *host);
|
||||
ConfigItem_except *Find_except(aClient *, char *host, short type);
|
||||
ConfigItem_tld *Find_tld(aClient *cptr, char *host);
|
||||
ConfigItem_link *Find_link(char *username, char *hostname, char *ip, char *servername);
|
||||
ConfigItem_cgiirc *Find_cgiirc(char *username, char *hostname, char *ip, CGIIRCType type);
|
||||
ConfigItem_ban *Find_ban(aClient *, char *host, short type);
|
||||
ConfigItem_ban *Find_banEx(aClient *,char *host, short type, short type2);
|
||||
ConfigItem_vhost *Find_vhost(char *name);
|
||||
@@ -187,7 +186,13 @@ extern long get_access(aClient *, aChannel *);
|
||||
extern int is_chan_op(aClient *, aChannel *);
|
||||
extern int has_voice(aClient *, aChannel *);
|
||||
extern int is_chanowner(aClient *, aChannel *);
|
||||
#ifndef DISABLE_EXTBAN_STACKING
|
||||
extern int ban_check_mask(aClient *, aChannel *, char *, int, int);
|
||||
extern int extban_is_ok_nuh_extban(aClient *, aChannel *, char *, int, int, int);
|
||||
extern char* extban_conv_param_nuh_extban(char *);
|
||||
#endif
|
||||
extern Ban *is_banned(aClient *, aChannel *, int);
|
||||
extern Ban *is_banned_with_nick(aClient *, aChannel *, int, char *);
|
||||
extern int parse_help(aClient *, char *, char *);
|
||||
|
||||
extern void ircd_log(int, char *, ...) __attribute__((format(printf,2,3)));
|
||||
@@ -207,33 +212,33 @@ extern void reset_help();
|
||||
extern MODVAR char *debugmode, *configfile, *sbrk0;
|
||||
extern char *getfield(char *);
|
||||
extern void get_sockhost(aClient *, char *);
|
||||
#ifndef _WIN32
|
||||
extern char *strerror(int);
|
||||
#else
|
||||
#ifdef _WIN32
|
||||
extern MODFUNC char *sock_strerror(int);
|
||||
#endif
|
||||
extern int dgets(int, char *, int);
|
||||
extern char *inetntoa(char *);
|
||||
|
||||
#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF)
|
||||
/* #ifndef _WIN32 XXX why was this?? -- Syzop. */
|
||||
#ifndef HAVE_SNPRINTF
|
||||
extern int snprintf (char *str, size_t count, const char *fmt, ...);
|
||||
#endif
|
||||
#ifndef HAVE_VSNPRINTF
|
||||
extern int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
|
||||
/* #endif */
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
extern MODVAR int dbufalloc, dbufblocks, debuglevel;
|
||||
#else
|
||||
extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno;
|
||||
extern int dbufalloc, dbufblocks, debuglevel;
|
||||
#endif
|
||||
|
||||
extern MODVAR short LastSlot; /* last used index in local client array */
|
||||
extern MODVAR int OpenFiles; /* number of files currently open */
|
||||
extern MODVAR int debuglevel, portnum, debugtty, maxusersperchannel;
|
||||
extern MODVAR int debuglevel, debugtty, maxusersperchannel;
|
||||
extern MODVAR int readcalls, udpfd, resfd;
|
||||
|
||||
#ifndef NEW_IO
|
||||
extern aClient *add_connection(aClient *, int);
|
||||
extern int add_listener(aConfItem *);
|
||||
extern void add_local_domain(char *, int);
|
||||
extern int check_client(aClient *, char *);
|
||||
extern int check_server(aClient *, struct hostent *, aConfItem *,
|
||||
aConfItem *, int);
|
||||
@@ -245,16 +250,16 @@ extern void get_my_name(aClient *, char *, int);
|
||||
extern int get_sockerr(aClient *);
|
||||
extern int inetport(aClient *, char *, int);
|
||||
extern void init_sys();
|
||||
extern void init_modef();
|
||||
|
||||
#ifdef NO_FDLIST
|
||||
extern int read_message(time_t);
|
||||
#else
|
||||
extern int read_message(time_t, fdlist *);
|
||||
#endif
|
||||
|
||||
extern void report_error(char *, aClient *);
|
||||
extern void set_non_blocking(int, aClient *);
|
||||
#else /* ifndef NEW_IO */
|
||||
#endif /* ifndef NEW_IO */
|
||||
extern int setup_ping();
|
||||
|
||||
extern void start_auth(aClient *);
|
||||
@@ -263,15 +268,12 @@ extern void send_authports(aClient *);
|
||||
|
||||
|
||||
extern void restart(char *);
|
||||
extern void send_channel_modes(aClient *, aChannel *);
|
||||
extern void server_reboot(char *);
|
||||
extern void terminate(), write_pidfile();
|
||||
extern void *MyMallocEx(size_t size);
|
||||
extern int advanced_check(char *userhost, int ipstat);
|
||||
extern int send_queued(aClient *);
|
||||
/* i know this is naughty but :P --stskeeps */
|
||||
extern void send_channel_modes_sjoin(aClient *cptr, aChannel *chptr);
|
||||
extern void send_channel_modes_sjoin3(aClient *cptr, aChannel *chptr);
|
||||
extern void sendto_locfailops(char *pattern, ...) __attribute__((format(printf,1,2)));
|
||||
extern void sendto_connectnotice(char *nick, anUser *user, aClient *sptr, int disconnect, char *comment);
|
||||
extern void sendto_serv_butone_nickcmd(aClient *one, aClient *sptr, char *nick, int hopcount,
|
||||
@@ -319,20 +321,10 @@ extern void sendto_snomask_normal_global(int snomask, char *pattern, ...) __attr
|
||||
extern void sendnotice(aClient *to, char *pattern, ...) __attribute__((format(printf,2,3)));
|
||||
extern MODVAR int writecalls, writeb[];
|
||||
extern int deliver_it(aClient *, char *, int);
|
||||
extern int check_for_chan_flood(aClient *cptr, aClient *sptr, aChannel *chptr);
|
||||
extern int check_for_target_limit(aClient *sptr, void *target, const char *name);
|
||||
extern char *stripbadwords_message(char *str, int *);
|
||||
extern char *stripbadwords_channel(char *str, int *);
|
||||
extern char *stripbadwords_quit(char *str, int *);
|
||||
extern char *stripbadwords(char *, ConfigItem_badword *, int *);
|
||||
extern unsigned char *StripColors(unsigned char *);
|
||||
extern const char *StripControlCodes(unsigned char *text);
|
||||
extern char *canonize(char *buffer);
|
||||
extern int webtv_parse(aClient *sptr, char *string);
|
||||
extern ConfigItem_deny_dcc *dcc_isforbidden(aClient *sptr, char *filename);
|
||||
extern ConfigItem_deny_dcc *dcc_isdiscouraged(aClient *sptr, char *filename);
|
||||
extern int check_registered(aClient *);
|
||||
extern int check_registered_user(aClient *);
|
||||
extern char *get_client_name(aClient *, int);
|
||||
extern char *get_client_host(aClient *);
|
||||
extern char *myctime(time_t), *date(time_t);
|
||||
@@ -340,6 +332,7 @@ extern int exit_client(aClient *, aClient *, aClient *, char *);
|
||||
extern void initstats(), tstats(aClient *, char *);
|
||||
extern char *check_string(char *);
|
||||
extern char *make_nick_user_host(char *, char *, char *);
|
||||
extern inline char *make_nick_user_host_r(char *namebuf, char *nick, char *name, char *host);
|
||||
extern char *make_user_host(char *, char *);
|
||||
extern int parse(aClient *, char *, char *);
|
||||
extern int do_numeric(int, aClient *, aClient *, int, char **);
|
||||
@@ -347,7 +340,6 @@ extern int hunt_server(aClient *, aClient *, char *, int, int, char **);
|
||||
extern int hunt_server_token(aClient *, aClient *, char *, char *, char *, int, int, char **);
|
||||
extern int hunt_server_token_quiet(aClient *, aClient *, char *, char *, char *, int, int, char **);
|
||||
extern aClient *next_client(aClient *, char *);
|
||||
extern int m_names(aClient *, aClient *, int, char **);
|
||||
extern int m_server_estab(aClient *);
|
||||
extern void umode_init(void);
|
||||
extern long umode_get(char, int, int (*)(aClient *, int));
|
||||
@@ -364,14 +356,12 @@ extern void send_umode_out(aClient *, aClient *, long);
|
||||
extern void free_client(aClient *);
|
||||
extern void free_link(Link *);
|
||||
extern void free_ban(Ban *);
|
||||
extern void free_class(aClass *);
|
||||
extern void free_user(anUser *, aClient *);
|
||||
extern int find_str_match_link(Link *, char *);
|
||||
extern void free_str_list(Link *);
|
||||
extern Link *make_link();
|
||||
extern Ban *make_ban();
|
||||
extern anUser *make_user(aClient *);
|
||||
extern aClass *make_class();
|
||||
extern aServer *make_server();
|
||||
extern aClient *make_client(aClient *, aClient *);
|
||||
extern Link *find_user_link(Link *, aClient *);
|
||||
@@ -385,7 +375,7 @@ extern struct hostent *get_res(char *);
|
||||
extern struct hostent *gethost_byaddr(char *, Link *);
|
||||
extern struct hostent *gethost_byname(char *, Link *);
|
||||
extern void flush_cache();
|
||||
extern void init_resolver(void);
|
||||
extern void init_resolver(int firsttime);
|
||||
extern time_t timeout_query_list(time_t);
|
||||
extern time_t expire_cache(time_t);
|
||||
extern void del_queries(char *);
|
||||
@@ -397,7 +387,7 @@ extern int add_to_client_hash_table(char *, aClient *);
|
||||
extern int del_from_client_hash_table(char *, aClient *);
|
||||
extern int add_to_channel_hash_table(char *, aChannel *);
|
||||
extern int del_from_channel_hash_table(char *, aChannel *);
|
||||
extern int add_to_watch_hash_table(char *, aClient *);
|
||||
extern int add_to_watch_hash_table(char *, aClient *, int);
|
||||
extern int del_from_watch_hash_table(char *, aClient *);
|
||||
extern int hash_check_watch(aClient *, int);
|
||||
extern int hash_del_watch_list(aClient *);
|
||||
@@ -485,7 +475,6 @@ extern int dopacket(aClient *, char *, int);
|
||||
extern void debug(int, char *, ...);
|
||||
#if defined(DEBUGMODE)
|
||||
extern void send_usage(aClient *, char *);
|
||||
extern void send_listinfo(aClient *, char *);
|
||||
extern void count_memory(aClient *, char *);
|
||||
extern int checkprotoflags(aClient *, int, char *, int);
|
||||
#endif
|
||||
@@ -550,10 +539,9 @@ extern aClient *find_server_b64_or_real(char *name);
|
||||
extern aClient *find_server_by_base64(char *b64);
|
||||
extern int is_chanownprotop(aClient *cptr, aChannel *chptr);
|
||||
extern int is_skochanop(aClient *cptr, aChannel *chptr);
|
||||
extern char *make_virthost(char *curr, char *new, int mode);
|
||||
extern char *make_virthost(aClient *sptr, char *curr, char *newhost, int mode);
|
||||
extern int channel_canjoin(aClient *sptr, char *name);
|
||||
extern char *collapse(char *pattern);
|
||||
extern void send_list(aClient *cptr, int numsend);
|
||||
extern void dcc_sync(aClient *sptr);
|
||||
extern void report_flines(aClient *sptr);
|
||||
extern void report_network(aClient *sptr);
|
||||
@@ -576,6 +564,7 @@ extern void flag_del(char ch);
|
||||
extern void init_dynconf(void);
|
||||
extern char *pretty_time_val(long);
|
||||
extern int init_conf(char *filename, int rehash);
|
||||
extern int global_test();
|
||||
extern void validate_configuration(void);
|
||||
extern void run_configuration(void);
|
||||
extern void rehash_motdrules();
|
||||
@@ -585,8 +574,10 @@ extern CMD_FUNC(m_server_remote);
|
||||
extern void send_proto(aClient *, ConfigItem_link *);
|
||||
extern char *xbase64enc(long i);
|
||||
extern void unload_all_modules(void);
|
||||
#ifndef NEW_IO
|
||||
extern void flush_fdlist_connections(fdlist * listp);
|
||||
extern int set_blocking(int fd);
|
||||
#else /* ifndef NEW_IO */
|
||||
#endif /* ifndef NEW_IO */
|
||||
extern void set_sock_opts(int fd, aClient *cptr);
|
||||
extern void iCstrip(char *line);
|
||||
extern time_t rfc2time(char *s);
|
||||
@@ -614,22 +605,19 @@ extern int extcmode_default_requirechop(aClient *, aChannel *, char *, int, int)
|
||||
extern int extcmode_default_requirehalfop(aClient *, aChannel *, char *, int, int);
|
||||
extern Cmode_t extcmode_get(Cmode *);
|
||||
extern void extcmode_init(void);
|
||||
extern CmodeParam *extcmode_get_struct(CmodeParam *, char);
|
||||
extern void *extcmode_get_struct(aChannel *, char);
|
||||
extern void make_extcmodestr();
|
||||
extern CmodeParam *extcmode_duplicate_paramlist(CmodeParam *);
|
||||
extern void extcmode_free_paramlist(CmodeParam *);
|
||||
extern void extcmode_duplicate_paramlist(void **xi, void **xo);
|
||||
extern void extcmode_free_paramlist(void **ar);
|
||||
#endif
|
||||
extern int do_chanflood(ChanFloodProt *, int);
|
||||
extern void do_chanflood_action(aChannel *, int, char *);
|
||||
extern char *channel_modef_string(ChanFloodProt *);
|
||||
extern void chmode_str(struct ChMode, char *, char *);
|
||||
extern char *get_cptr_status(aClient *);
|
||||
extern char *get_snostr(long);
|
||||
#ifdef _WIN32
|
||||
extern void InitDebug(void);
|
||||
extern int InitwIRCD(int argc, char **);
|
||||
extern void SocketLoop(void *);
|
||||
#endif
|
||||
extern void SocketLoop(void *);
|
||||
#ifdef STATIC_LINKING
|
||||
extern int l_commands_Init(ModuleInfo *);
|
||||
extern int l_commands_Test(ModuleInfo *);
|
||||
@@ -639,6 +627,7 @@ extern void sendto_chmodemucrap(aClient *, aChannel *, char *);
|
||||
extern void verify_opercount(aClient *, char *);
|
||||
extern int valid_host(char *host);
|
||||
extern int count_oper_sessions(char *);
|
||||
extern int file_exists(char* file);
|
||||
extern char *unreal_mktemp(char *dir, char *suffix);
|
||||
extern char *unreal_getpathname(char *filepath, char *path);
|
||||
extern char *unreal_getfilename(char *path);
|
||||
@@ -666,7 +655,6 @@ extern char *our_strcasestr(char *haystack, char *needle);
|
||||
extern int spamfilter_getconftargets(char *s);
|
||||
extern void remove_oper_snomasks(aClient *sptr);
|
||||
extern char *spamfilter_inttostring_long(int v);
|
||||
extern int check_channelmask(aClient *, aClient *, char *);
|
||||
extern aChannel *get_channel(aClient *cptr, char *chname, int flag);
|
||||
extern MODVAR char backupbuf[];
|
||||
extern void add_invite(aClient *, aChannel *);
|
||||
@@ -684,7 +672,10 @@ extern char *unreal_encodespace(char *s);
|
||||
extern char *unreal_decodespace(char *s);
|
||||
extern MODVAR Link *helpign;
|
||||
extern MODVAR aMotd *rules;
|
||||
#ifndef NEW_IO
|
||||
extern MODVAR fdlist default_fdlist, busycli_fdlist, serv_fdlist, oper_fdlist;
|
||||
#else /* ifndef NEW_IO */
|
||||
#endif /* ifndef NEW_IO */
|
||||
extern void DCCdeny_add(char *filename, char *reason, int type, int type2);
|
||||
extern void DCCdeny_del(ConfigItem_deny_dcc *deny);
|
||||
extern void dcc_wipe_services(void);
|
||||
@@ -729,24 +720,29 @@ extern MODVAR aTKline *(*tkl_expire)(aTKline * tmp);
|
||||
extern MODVAR EVENT((*tkl_check_expire));
|
||||
extern MODVAR int (*find_tkline_match)(aClient *cptr, int xx);
|
||||
extern MODVAR int (*find_shun)(aClient *cptr);
|
||||
extern MODVAR int (*find_spamfilter_user)(aClient *sptr);
|
||||
extern MODVAR int (*find_spamfilter_user)(aClient *sptr, int flags);
|
||||
extern MODVAR aTKline *(*find_qline)(aClient *cptr, char *nick, int *ishold);
|
||||
extern MODVAR int (*find_tkline_match_zap)(aClient *cptr);
|
||||
extern MODVAR int (*find_tkline_match_zap_ex)(aClient *cptr, aTKline **rettk);
|
||||
extern MODVAR void (*tkl_stats)(aClient *cptr, int type, char *para);
|
||||
extern MODVAR void (*tkl_synch)(aClient *sptr);
|
||||
extern MODVAR int (*m_tkl)(aClient *cptr, aClient *sptr, int parc, char *parv[]);
|
||||
extern MODVAR int (*place_host_ban)(aClient *sptr, int action, char *reason, long duration);
|
||||
extern MODVAR int (*dospamfilter)(aClient *sptr, char *str_in, int type, char *target);
|
||||
extern MODVAR int (*dospamfilter)(aClient *sptr, char *str_in, int type, char *target, int flags, aTKline **rettk);
|
||||
extern MODVAR int (*dospamfilter_viruschan)(aClient *sptr, aTKline *tk, int type);
|
||||
extern MODVAR void (*send_list)(aClient *cptr, int numsend);
|
||||
extern MODVAR char *(*stripbadwords)(char *str, ConfigItem_badword *start_bw, int *blocked);
|
||||
extern MODVAR unsigned char *(*StripColors)(unsigned char *text);
|
||||
extern MODVAR const char *(*StripControlCodes)(unsigned char *text);
|
||||
extern MODVAR void (*spamfilter_build_user_string)(char *buf, char *nick, aClient *acptr);
|
||||
extern MODVAR int (*is_silenced)(aClient *sptr, aClient *acptr);
|
||||
/* /Efuncs */
|
||||
extern MODVAR aMotd *opermotd, *svsmotd, *motd, *botmotd, *smotd;
|
||||
extern MODVAR int max_connection_count;
|
||||
extern int add_listmode(Ban **list, aClient *cptr, aChannel *chptr, char *banid);
|
||||
extern int del_listmode(Ban **list, aChannel *chptr, char *banid);
|
||||
extern int Halfop_mode(long mode);
|
||||
extern void chanfloodtimer_add(aChannel *chptr, char mflag, long mbit, time_t when);
|
||||
extern void chanfloodtimer_del(aChannel *chptr, char mflag, long mbit);
|
||||
extern char *clean_ban_mask(char *, int, aClient *);
|
||||
extern void chanfloodtimer_stopchantimers(aChannel *chptr);
|
||||
extern int find_invex(aChannel *chptr, aClient *sptr);
|
||||
extern void DoMD5(unsigned char *mdout, unsigned char *src, unsigned long n);
|
||||
#ifdef JOINTHROTTLE
|
||||
@@ -761,10 +757,29 @@ extern void charsys_addallowed(char *s);
|
||||
extern void charsys_reset(void);
|
||||
extern MODVAR char langsinuse[4096];
|
||||
extern MODVAR aTKline *tklines[TKLISTLEN];
|
||||
extern char *cmdname_by_spamftarget(int target);
|
||||
extern int isipv6(struct IN_ADDR *addr);
|
||||
extern void inet4_to_inet6(const void *src_in, void *dst_in);
|
||||
extern void unrealdns_delreq_bycptr(aClient *cptr);
|
||||
extern void inet6_to_inet4(const void *src, void *dst);
|
||||
extern void sendtxtnumeric(aClient *to, char *pattern, ...);
|
||||
extern void sendtxtnumeric(aClient *to, char *pattern, ...) __attribute__((format(printf,2,3)));;
|
||||
extern void unrealdns_gethostbyname_link(char *name, ConfigItem_link *conf);
|
||||
extern void unrealdns_delasyncconnects(void);
|
||||
extern int is_autojoin_chan(char *chname);
|
||||
extern void unreal_free_hostent(struct hostent *he);
|
||||
extern int match_esc(const char *mask, const char *name);
|
||||
extern int iplist_onlist(IPList *iplist, char *ip);
|
||||
extern struct hostent *unreal_create_hostent(char *name, struct IN_ADDR *addr);
|
||||
extern char *unreal_time_synch_error(void);
|
||||
extern int unreal_time_synch(int timeout);
|
||||
extern int extban_is_banned_helper(char *buf);
|
||||
extern char *getcloak(aClient *sptr);
|
||||
extern unsigned char param_to_slot_mapping[256];
|
||||
extern char *cm_getparameter(aChannel *chptr, char mode);
|
||||
extern void cm_putparameter(aChannel *chptr, char mode, char *str);
|
||||
extern void cm_freeparameter(aChannel *chptr, char mode);
|
||||
extern char *cm_getparameter_ex(void **p, char mode);
|
||||
extern void cm_putparameter_ex(void **p, char mode, char *str);
|
||||
extern void cm_freeparameter_ex(void **p, char mode, char *str);
|
||||
extern void kick_insecure_users(aChannel *);
|
||||
extern void free_motd(aMotd *m);
|
||||
|
||||
@@ -63,9 +63,7 @@ typedef struct hashentry {
|
||||
/*
|
||||
* Throttling
|
||||
*/
|
||||
#ifdef THROTTLING
|
||||
#define THROTTLING_HASH_SIZE 1019 /* prime number */
|
||||
#endif
|
||||
|
||||
|
||||
#define NullChn ((aChannel *)0)
|
||||
|
||||
@@ -57,3 +57,30 @@ extern __u_l inet_network();
|
||||
extern __u_l inet_lnaof();
|
||||
#endif
|
||||
#undef __u_l
|
||||
|
||||
#ifndef HAVE_STRUCT_SOCKADDR_STORAGE
|
||||
#ifdef SOCKADDR_IN_HAS_LEN /* BSD style sockaddr_storage for BSD style
|
||||
sockaddr_in */
|
||||
struct sockaddr_storage {
|
||||
unsigned char ss_len;
|
||||
sa_family_t ss_family;
|
||||
char __ss_pad1[((sizeof(int64_t)) - sizeof(unsigned char) -
|
||||
sizeof(sa_family_t) )];
|
||||
int64_t __ss_align;
|
||||
char __ss_pad2[(128 - sizeof(unsigned char) - sizeof(sa_family_t) -
|
||||
((sizeof(int64_t)) - sizeof(unsigned char) -
|
||||
sizeof(sa_family_t)) - (sizeof(int64_t)))];
|
||||
};
|
||||
#else /* Linux style for everything else (for now) */
|
||||
struct sockaddr_storage
|
||||
{
|
||||
sa_family_t ss_family;
|
||||
u_int32_t __ss_align;
|
||||
char __ss_padding[(128 - (2 * sizeof (u_int32_t)))];
|
||||
};
|
||||
#endif /* SOCKADDR_IN_HAS_LEN */
|
||||
#endif /* HAVE_STRUCT_SOCKADDR_STORAGE */
|
||||
|
||||
#ifndef INADDR_NONE
|
||||
#define INADDR_NONE 0xffffffff
|
||||
#endif
|
||||
|
||||
+67
-24
@@ -22,9 +22,9 @@
|
||||
#define MODULES_H
|
||||
#include "types.h"
|
||||
#define MAXCUSTOMHOOKS 30
|
||||
#define MAXHOOKTYPES 100
|
||||
#define MAXHOOKTYPES 150
|
||||
#define MAXCALLBACKS 30
|
||||
#define MAXEFUNCTIONS 60
|
||||
#define MAXEFUNCTIONS 100
|
||||
#if defined(_WIN32)
|
||||
#define MOD_EXTENSION "dll"
|
||||
#define DLLFUNC _declspec(dllexport)
|
||||
@@ -135,6 +135,7 @@ typedef struct {
|
||||
#define EXSJ_SAME 0 /* Parameters are the same */
|
||||
#define EXSJ_WEWON 1 /* We won! w00t */
|
||||
#define EXSJ_THEYWON 2 /* They won :( */
|
||||
#define EXSJ_MERGE 3 /* Merging of modes.. neither won nor lost (merged params are in 'our' on return) */
|
||||
|
||||
/* return values for EXCHK_ACCESS*: */
|
||||
#define EX_DENY 0 /* Disallowed, except in case of operoverride */
|
||||
@@ -149,13 +150,6 @@ typedef struct {
|
||||
*/
|
||||
typedef unsigned long Cmode_t;
|
||||
|
||||
#define EXTCM_PAR_HEADER struct _CmodeParam *prev, *next; char flag;
|
||||
|
||||
typedef struct _CmodeParam {
|
||||
EXTCM_PAR_HEADER
|
||||
/** other fields are placed after this header in your own paramstruct */
|
||||
} CmodeParam;
|
||||
|
||||
typedef struct {
|
||||
/** mode character (like 'Z') */
|
||||
char flag;
|
||||
@@ -181,36 +175,40 @@ typedef struct {
|
||||
/** Store parameter in memory for channel.
|
||||
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
|
||||
* char *: the parameter.
|
||||
* return value: the head of the list, RTFS if you wonder why.
|
||||
* RETURNS: nothing! ;p
|
||||
* design notes: only alloc a new paramstruct if you need to, search for
|
||||
* any current one first (like in case of mode +y 5 and then +y 6 later without -y).
|
||||
*/
|
||||
CmodeParam * (*put_param)(CmodeParam *, char *);
|
||||
void *(*put_param)(void *, char *);
|
||||
|
||||
/** Get readable string version" of the stored parameter.
|
||||
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
|
||||
* void *: the param data
|
||||
* return value: a pointer to the string (temp. storage)
|
||||
*/
|
||||
char * (*get_param)(CmodeParam *);
|
||||
char * (*get_param)(void *);
|
||||
|
||||
/** Convert input parameter to output.
|
||||
* Like +l "1aaa" becomes "1".
|
||||
* char *: the input parameter.
|
||||
* aClient *: the client that the mode request came from:
|
||||
* 1. Can be NULL (eg: if called for set::modes-on-join
|
||||
* 2. Probably only used in rare cases, see also next remark
|
||||
* 3. ERRORS SHOULD NOT BE SENT BY conv_param BUT BY is_ok!
|
||||
* return value: pointer to output string (temp. storage)
|
||||
*/
|
||||
char * (*conv_param)(char *);
|
||||
char * (*conv_param)(char *, aClient *);
|
||||
|
||||
/** free and remove parameter from list.
|
||||
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
|
||||
*/
|
||||
void (*free_param)(CmodeParam *);
|
||||
void (*free_param)(void *);
|
||||
|
||||
/** duplicate a struct and return a pointer to duplicate.
|
||||
* This is usually just a malloc + memcpy.
|
||||
* aExtCMtableParam *: source struct itself (no list).
|
||||
* return value: pointer to newly allocated struct.
|
||||
*/
|
||||
CmodeParam * (*dup_struct)(CmodeParam *);
|
||||
void * (*dup_struct)(void *);
|
||||
|
||||
/** Compares 2 parameters and decides who wins the sjoin fight.
|
||||
* When syncing channel modes (m_sjoin) a parameter conflict may occur, things like
|
||||
@@ -221,20 +219,43 @@ typedef struct {
|
||||
* aExtCMtableParam *: our parameter
|
||||
* aExtCMtableParam *: their parameter
|
||||
*/
|
||||
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
||||
int (*sjoin_check)(aChannel *, void *, void *);
|
||||
|
||||
/* Slot#.. Can be used instead of GETPARAMSLOT() */
|
||||
int slot;
|
||||
} Cmode;
|
||||
|
||||
typedef struct {
|
||||
char flag;
|
||||
int paracount;
|
||||
int (*is_ok)(aClient *,aChannel *, char *para, int, int);
|
||||
CmodeParam * (*put_param)(CmodeParam *, char *);
|
||||
char * (*get_param)(CmodeParam *);
|
||||
char * (*conv_param)(char *);
|
||||
void (*free_param)(CmodeParam *);
|
||||
CmodeParam * (*dup_struct)(CmodeParam *);
|
||||
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
||||
void * (*put_param)(void *, char *);
|
||||
char * (*get_param)(void *);
|
||||
char * (*conv_param)(char *, aClient *);
|
||||
void (*free_param)(void *);
|
||||
void * (*dup_struct)(void *);
|
||||
int (*sjoin_check)(aChannel *, void *, void *);
|
||||
} CmodeInfo;
|
||||
|
||||
/* Get a slot# for a param.. eg... GETPARAMSLOT('k') ;p */
|
||||
#define GETPARAMSLOT(x) param_to_slot_mapping[x]
|
||||
|
||||
/* Get a cmode handler by slot.. for example for [dont use this]: GETPARAMHANDLERBYSLOT(5)->get_param(chptr) */
|
||||
#define GETPARAMHANDLERBYSLOT(slotid) ParamTable[slotid]
|
||||
|
||||
/* Same as GETPARAMHANDLERBYSLOT but then by letter.. like [dont use this]: GETPARAMHANDLERBYSLOT('k')->get_param(chptr) */
|
||||
#define GETPARAMHANDLERBYLETTER(x) ParamTable[GETPARAMSLOT(x)]
|
||||
|
||||
/* Get paramter data struct.. for like: ((aModejEntry *)GETPARASTRUCT(chptr, 'j'))->t */
|
||||
#define GETPARASTRUCT(mychptr, mychar) chptr->mode.extmodeparams[GETPARAMSLOT(mychar)]
|
||||
|
||||
#define GETPARASTRUCTEX(v, mychar) v[GETPARAMSLOT(mychar)]
|
||||
|
||||
#define CMP_GETSLOT(x) GETPARAMSLOT(x)
|
||||
#define CMP_GETHANDLERBYSLOT(x) GETPARAMHANDLERBYSLOT(x)
|
||||
#define CMP_GETHANDLERBYLETTER(x) GETPARAMHANDLERBYLETTER(x)
|
||||
#define CMP_GETSTRUCT(x,y) GETPARASTRUCT(x,y)
|
||||
|
||||
#endif
|
||||
|
||||
/*** Extended bans ***/
|
||||
@@ -420,6 +441,7 @@ struct _Module
|
||||
unsigned char errorcode;
|
||||
char *tmp_file;
|
||||
unsigned long mod_sys_version;
|
||||
unsigned int compiler_version;
|
||||
};
|
||||
/*
|
||||
* Symbol table
|
||||
@@ -525,6 +547,7 @@ Isupport *IsupportFind(const char *token);
|
||||
#define add_HookX(hooktype, func1, func2, func3) HookAddMain(NULL, hooktype, func1, func2, func3)
|
||||
|
||||
Hook *HookAddMain(Module *module, int hooktype, int (*intfunc)(), void (*voidfunc)(), char *(*pcharfunc)());
|
||||
Hook *HookAddCfg(Module *module, int hooktype, int (*intfunc)(ConfigFile *cf, ConfigEntry *ce, int type, int *errs));
|
||||
Hook *HookDel(Hook *hook);
|
||||
|
||||
Hooktype *HooktypeAdd(Module *module, char *string, int *type);
|
||||
@@ -580,7 +603,8 @@ extern Callback *CallbackDel(Callback *cb);
|
||||
extern Efunction *EfunctionAddMain(Module *module, int eftype, int (*intfunc)(), void (*voidfunc)(), void *(*pvoidfunc)(), char *(*pcharfunc)());
|
||||
extern Efunction *EfunctionDel(Efunction *cb);
|
||||
|
||||
Command *CommandAdd(Module *module, char *cmd, char *tok, int (*func)(), unsigned char params, int flags);
|
||||
Command *CommandAdd(Module *module, char *cmd, char *tok, int (*func)(aClient*, aClient*, int, char**), unsigned char params, int flags);
|
||||
Command *CommandAdd_Alias(Module *module, char *cmd, char *tok, int (*func)(aClient*, aClient*, int, char**, char *sentcmd), unsigned char params, int flags);
|
||||
void CommandDel(Command *command);
|
||||
int CommandExists(char *name);
|
||||
Cmdoverride *CmdoverrideAdd(Module *module, char *cmd, iFP function);
|
||||
@@ -635,6 +659,16 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
#define HOOKTYPE_REMOTE_PART 44
|
||||
#define HOOKTYPE_REMOTE_KICK 45
|
||||
#define HOOKTYPE_LOCAL_SPAMFILTER 46
|
||||
#define HOOKTYPE_SILENCED 47
|
||||
#define HOOKTYPE_CAN_JOIN 48
|
||||
#define HOOKTYPE_CAN_SEND 49
|
||||
#define HOOKTYPE_CLEANUP_CLIENT 50
|
||||
#define HOOKTYPE_CLEANUP_USER 51
|
||||
#define HOOKTYPE_CLEANUP_USER2 52
|
||||
#define HOOKTYPE_PRE_CHANMSG 53
|
||||
#define HOOKTYPE_KNOCK 54
|
||||
#define HOOKTYPE_MODECHAR_FIXME 55
|
||||
#define HOOKTYPE_CAN_KICK 56
|
||||
|
||||
/* Hook return values */
|
||||
#define HOOK_CONTINUE 0
|
||||
@@ -644,6 +678,7 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
/* Callback types */
|
||||
#define CALLBACKTYPE_CLOAK 1
|
||||
#define CALLBACKTYPE_CLOAKKEYCSUM 2
|
||||
#define CALLBACKTYPE_CLOAK_EX 3
|
||||
|
||||
/* Efunction types */
|
||||
#define EFUNC_DO_JOIN 1
|
||||
@@ -670,6 +705,14 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
#define EFUNC_M_TKL 22
|
||||
#define EFUNC_PLACE_HOST_BAN 23
|
||||
#define EFUNC_DOSPAMFILTER 24
|
||||
#define EFUNC_DOSPAMFILTER_VIRUSCHAN 25
|
||||
#define EFUNC_FIND_TKLINE_MATCH_ZAP_EX 26
|
||||
#define EFUNC_SEND_LIST 27
|
||||
#define EFUNC_STRIPBADWORDS 28
|
||||
#define EFUNC_STRIPCOLORS 29
|
||||
#define EFUNC_STRIPCONTROLCODES 30
|
||||
#define EFUNC_SPAMFILTER_BUILD_USER_STRING 31
|
||||
#define EFUNC_IS_SILENCED 32
|
||||
|
||||
/* Module flags */
|
||||
#define MODFLAG_NONE 0x0000
|
||||
|
||||
+18
-5
@@ -80,12 +80,25 @@
|
||||
#define MYTOKEN_INET6 ""
|
||||
#endif
|
||||
|
||||
#ifdef UNREALCORE
|
||||
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
#ifdef __GNUC__
|
||||
#if defined(__GNUC_PATCHLEVEL__)
|
||||
#define GCCVER ((__GNUC__ << 16) + (__GNUC_MINOR__ << 8) + __GNUC_PATCHLEVEL__)
|
||||
#else
|
||||
#define GCCVER ((__GNUC__ << 16) + (__GNUC_MINOR__ << 8))
|
||||
#endif
|
||||
#else
|
||||
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
#define GCCVER 0
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef UNREALCORE
|
||||
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
unsigned int our_compiler_version = GCCVER;
|
||||
#else
|
||||
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
DLLFUNC unsigned int compiler_version = GCCVER;
|
||||
#endif
|
||||
|
||||
@@ -303,8 +303,6 @@ extern int m_error();
|
||||
extern int m_dns();
|
||||
extern int m_info(), m_summon();
|
||||
extern int m_users(), m_version();
|
||||
extern int m_names();
|
||||
extern int m_service();
|
||||
extern int m_dalinfo();
|
||||
extern int m_credits();
|
||||
extern int m_license();
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
#define ERR_SUMMONDISABLED 445
|
||||
#define ERR_USERSDISABLED 446
|
||||
#define ERR_NONICKCHANGE 447
|
||||
#define ERR_FORBIDDENCHANNEL 448
|
||||
|
||||
|
||||
#define ERR_NOTREGISTERED 451
|
||||
@@ -336,6 +337,8 @@
|
||||
* These are also in the range 600-799.
|
||||
*/
|
||||
|
||||
#define RPL_GONEAWAY 598
|
||||
#define RPL_NOTAWAY 599
|
||||
#define RPL_LOGON 600
|
||||
#define RPL_LOGOFF 601
|
||||
#define RPL_WATCHOFF 602
|
||||
@@ -344,6 +347,8 @@
|
||||
#define RPL_NOWOFF 605
|
||||
#define RPL_WATCHLIST 606
|
||||
#define RPL_ENDOFWATCHLIST 607
|
||||
#define RPL_CLEARWATCH 608
|
||||
#define RPL_NOWISAWAY 609
|
||||
|
||||
#define RPL_DCCSTATUS 617
|
||||
#define RPL_DCCLIST 618
|
||||
@@ -354,6 +359,8 @@
|
||||
#define RPL_DUMPRPL 641
|
||||
#define RPL_EODUMP 642
|
||||
|
||||
#define RPL_SPAMCMDFWD 659
|
||||
|
||||
#define RPL_WHOISSECURE 671
|
||||
|
||||
#define ERR_CANNOTDOCOMMAND 972
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
int sendmodeto_one(aClient *cptr, char *from, char *name, char *mode, char *param, TS creationtime);
|
||||
void make_cmodestr(void);
|
||||
|
||||
/* lusers.c */
|
||||
void init_ircstats(void);
|
||||
|
||||
/* match.c */
|
||||
char *collapse(char *pattern);
|
||||
|
||||
|
||||
+1
-1
@@ -77,6 +77,6 @@ struct _dnsstats {
|
||||
|
||||
extern ares_channel resolver_channel;
|
||||
|
||||
extern void init_resolver(void);
|
||||
extern void init_resolver(int);
|
||||
|
||||
struct hostent *unrealdns_doclient(aClient *cptr);
|
||||
|
||||
+3
-6
@@ -183,12 +183,6 @@
|
||||
/* Define if you have crypt */
|
||||
#undef HAVE_CRYPT
|
||||
|
||||
/* Local hostname of the server */
|
||||
#undef DOMAINNAME
|
||||
|
||||
/* The OS name and version of the server */
|
||||
#undef MYOSNAME
|
||||
|
||||
/* The default permissions for configuration files */
|
||||
#undef DEFAULT_PERMISSIONS
|
||||
|
||||
@@ -243,6 +237,9 @@
|
||||
/* Define if you want to disable /set* and /chg* */
|
||||
#undef DISABLE_USERMOD
|
||||
|
||||
/* Define to disable extended ban stacking (~q:~c:#chan, etc) */
|
||||
#undef DISABLE_STACKED_EXTBANS
|
||||
|
||||
/* Define if your system prepends an underscore to symbols */
|
||||
#undef UNDERSCORE
|
||||
|
||||
|
||||
+81
-66
@@ -65,7 +65,7 @@
|
||||
#endif
|
||||
#include "auth.h"
|
||||
#ifndef _WIN32
|
||||
#include "tre/regex.h"
|
||||
#include "pcreposix.h"
|
||||
#else
|
||||
#include "win32/regex.h"
|
||||
#endif
|
||||
@@ -109,6 +109,7 @@ typedef struct _configitem_allow_dcc ConfigItem_allow_dcc;
|
||||
typedef struct _configitem_vhost ConfigItem_vhost;
|
||||
typedef struct _configitem_except ConfigItem_except;
|
||||
typedef struct _configitem_link ConfigItem_link;
|
||||
typedef struct _configitem_cgiirc ConfigItem_cgiirc;
|
||||
typedef struct _configitem_ban ConfigItem_ban;
|
||||
typedef struct _configitem_badword ConfigItem_badword;
|
||||
typedef struct _configitem_deny_dcc ConfigItem_deny_dcc;
|
||||
@@ -137,13 +138,11 @@ typedef struct Server aServer;
|
||||
typedef struct SLink Link;
|
||||
typedef struct SBan Ban;
|
||||
typedef struct SMode Mode;
|
||||
typedef struct SChanFloodProt ChanFloodProt;
|
||||
typedef struct SRemoveFld RemoveFld;
|
||||
typedef struct ListOptions LOpts;
|
||||
typedef struct FloodOpt aFloodOpt;
|
||||
typedef struct MotdItem aMotd;
|
||||
typedef struct trecord aTrecord;
|
||||
typedef struct Command aCommand;
|
||||
typedef struct IRCCommand aCommand;
|
||||
typedef struct _cmdoverride Cmdoverride;
|
||||
typedef struct SMember Member;
|
||||
typedef struct SMembership Membership;
|
||||
@@ -159,7 +158,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#endif
|
||||
|
||||
#ifndef VMSP
|
||||
#include "class.h"
|
||||
#include "dbuf.h" /* THIS REALLY SHOULDN'T BE HERE!!! --msa */
|
||||
#endif
|
||||
|
||||
@@ -171,14 +169,12 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define REALLEN 50
|
||||
#define TOPICLEN 307
|
||||
#define CHANNELLEN 32
|
||||
#define PASSWDLEN 32 /* orig. 20, changed to 32 for nickpasswords */
|
||||
#define PASSWDLEN 48 /* was 20, then 32, now 48. */
|
||||
#define KEYLEN 23
|
||||
#define LINKLEN 32
|
||||
#define BUFSIZE 512 /* WARNING: *DONT* CHANGE THIS!!!! */
|
||||
#define MAXRECIPIENTS 20
|
||||
#define MAXKILLS 20
|
||||
#define MAXBANS 60
|
||||
#define MAXBANLENGTH 1024
|
||||
#define MAXSILELENGTH NICKLEN+USERLEN+HOSTLEN+10
|
||||
#define UMODETABLESZ (sizeof(long) * 8)
|
||||
/*
|
||||
@@ -290,6 +286,8 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OPT_NOT_TKLEXT 0x8000
|
||||
#define OPT_NICKIP 0x10000
|
||||
#define OPT_NOT_NICKIP 0x20000
|
||||
#define OPT_CLK 0x10000
|
||||
#define OPT_NOT_CLK 0x20000
|
||||
|
||||
/* client->flags (32 bits): 28 used, 4 free */
|
||||
#define FLAGS_PINGSENT 0x0001 /* Unreplied ping sent */
|
||||
@@ -307,7 +305,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define FLAGS_GOTID 0x1000 /* successful ident lookup achieved */
|
||||
#define FLAGS_DOID 0x2000 /* I-lines say must use ident return */
|
||||
#define FLAGS_NONL 0x4000 /* No \n in buffer */
|
||||
#define FLAGS_TS8 0x8000 /* Why do you want to know? */
|
||||
#define FLAGS_CGIIRC 0x8000 /* CGI IRC host: flag set = ip/host data has been filled in already */
|
||||
#define FLAGS_ULINE 0x10000 /* User/server is considered U-lined */
|
||||
#define FLAGS_SQUIT 0x20000 /* Server has been /squit by an oper */
|
||||
#define FLAGS_PROTOCTL 0x40000 /* Received a PROTOCTL message */
|
||||
@@ -325,7 +323,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#ifdef USE_SSL
|
||||
#define FLAGS_SSL 0x10000000
|
||||
#endif
|
||||
#define FLAGS_UNOCCUP4 0x20000000 /* [FREE] */
|
||||
#define FLAGS_NOFAKELAG 0x20000000 /* Exception from fake lag */
|
||||
#define FLAGS_DCCBLOCK 0x40000000 /* Block all DCC send requests */
|
||||
#define FLAGS_MAP 0x80000000 /* Show this entry in /map */
|
||||
/* Dec 26th, 1997 - added flags2 when I ran out of room in flags -DuffJ */
|
||||
@@ -358,8 +356,9 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define PROTO_SJB64 0x0800
|
||||
#define PROTO_TKLEXT 0x1000 /* TKL extension: 10 parameters instead of 8 (3.2RC2) */
|
||||
#define PROTO_NICKIP 0x2000 /* Send IP addresses in the NICK command */
|
||||
|
||||
/* note: client->proto is currently a 'short' (max is 0x8000) */
|
||||
#define PROTO_NAMESX 0x4000 /* Send all rights in NAMES output */
|
||||
#define PROTO_CLK 0x8000 /* Send cloaked host in the NICK command (regardless of +x/-x) */
|
||||
#define PROTO_UHNAMES 0x10000 /* Send n!u@h in NAMES */
|
||||
|
||||
/*
|
||||
* flags macros.
|
||||
@@ -405,14 +404,14 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define IsOutgoing(x) ((x)->flags & FLAGS_OUTGOING)
|
||||
#define GotNetInfo(x) ((x)->flags & FLAGS_NETINFO)
|
||||
#define SetNetInfo(x) ((x)->flags |= FLAGS_NETINFO)
|
||||
#define IsCGIIRC(x) ((x)->flags & FLAGS_CGIIRC)
|
||||
|
||||
#define IsShunned(x) ((x)->flags & FLAGS_SHUNNED)
|
||||
#define SetShunned(x) ((x)->flags |= FLAGS_SHUNNED)
|
||||
#define ClearShunned(x) ((x)->flags &= ~FLAGS_SHUNNED)
|
||||
#define IsVirus(x) ((x)->flags & FLAGS_VIRUS)
|
||||
#define SetVirus(x) ((x)->flags |= FLAGS_VIRUS)
|
||||
#define ClearVirus(x) ((x)->flags |= FLAGS_VIRUS)
|
||||
|
||||
#define ClearVirus(x) ((x)->flags &= ~FLAGS_VIRUS)
|
||||
#ifdef USE_SSL
|
||||
#define IsSecure(x) ((x)->flags & FLAGS_SSL)
|
||||
#else
|
||||
@@ -427,10 +426,16 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define IsZipStart(x) (0)
|
||||
#endif
|
||||
|
||||
/* Fake lag exception */
|
||||
#define IsNoFakeLag(x) ((x)->flags & FLAGS_NOFAKELAG)
|
||||
#define SetNoFakeLag(x) ((x)->flags |= FLAGS_NOFAKELAG)
|
||||
#define ClearNoFakeLag(x) ((x)->flags &= ~FLAGS_NOFAKELAG)
|
||||
|
||||
#define IsHybNotice(x) ((x)->flags & FLAGS_HYBNOTICE)
|
||||
#define SetHybNotice(x) ((x)->flags |= FLAGS_HYBNOTICE)
|
||||
#define ClearHybNotice(x) ((x)->flags &= ~FLAGS_HYBNOTICE)
|
||||
#define IsHidden(x) ((x)->umodes & UMODE_HIDE)
|
||||
#define IsSetHost(x) ((x)->umodes & UMODE_SETHOST)
|
||||
#define IsHideOper(x) ((x)->umodes & UMODE_HIDEOPER)
|
||||
#ifdef USE_SSL
|
||||
#define IsSSL(x) IsSecure(x)
|
||||
@@ -462,6 +467,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define SetAccess(x) ((x)->flags |= FLAGS_CHKACCESS); Debug((DEBUG_DEBUG, "SetAccess(%s)", (x)->name))
|
||||
#define SetBlocked(x) ((x)->flags |= FLAGS_BLOCKED)
|
||||
#define SetOutgoing(x) do { x->flags |= FLAGS_OUTGOING; } while(0)
|
||||
#define SetCGIIRC(x) do { x->flags |= FLAGS_CGIIRC; } while(0)
|
||||
#define DoingAuth(x) ((x)->flags & FLAGS_AUTH)
|
||||
#define NoNewLine(x) ((x)->flags & FLAGS_NONL)
|
||||
#define IsDCCNotice(x) ((x)->flags & FLAGS_DCCNOTICE)
|
||||
@@ -517,6 +523,9 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define SupportSJ3(x) (CHECKPROTO(x, PROTO_SJ3))
|
||||
#define SupportVHP(x) (CHECKPROTO(x, PROTO_VHP))
|
||||
#define SupportTKLEXT(x) (CHECKPROTO(x, PROTO_TKLEXT))
|
||||
#define SupportNAMESX(x) (CHECKPROTO(x, PROTO_NAMESX))
|
||||
#define SupportCLK(x) (CHECKPROTO(x, PROTO_CLK))
|
||||
#define SupportUHNAMES(x) (CHECKPROTO(x, PROTO_UHNAMES))
|
||||
|
||||
#define SetSJOIN(x) ((x)->proto |= PROTO_SJOIN)
|
||||
#define SetNoQuit(x) ((x)->proto |= PROTO_NOQUIT)
|
||||
@@ -529,6 +538,9 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define SetSJ3(x) ((x)->proto |= PROTO_SJ3)
|
||||
#define SetVHP(x) ((x)->proto |= PROTO_VHP)
|
||||
#define SetTKLEXT(x) ((x)->proto |= PROTO_TKLEXT)
|
||||
#define SetNAMESX(x) ((x)->proto |= PROTO_NAMESX)
|
||||
#define SetCLK(x) ((x)->proto |= PROTO_CLK)
|
||||
#define SetUHNAMES(x) ((x)->proto |= PROTO_UHNAMES)
|
||||
|
||||
#define ClearSJOIN(x) ((x)->proto &= ~PROTO_SJOIN)
|
||||
#define ClearNoQuit(x) ((x)->proto &= ~PROTO_NOQUIT)
|
||||
@@ -560,7 +572,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OFLAG_LNOTICE 0x00004000 /* Oper can send local serv notices */
|
||||
#define OFLAG_GNOTICE 0x00008000 /* Oper can send global notices */
|
||||
#define OFLAG_ADMIN 0x00010000 /* Admin */
|
||||
#define OFLAG_ADDLINE 0x00020000 /* Oper can use /addline */
|
||||
/* 0x00020000 is free, previously addline */
|
||||
#define OFLAG_ZLINE 0x00080000 /* Oper can use /zline and /unzline */
|
||||
#define OFLAG_NETADMIN 0x00200000 /* netadmin gets +N */
|
||||
#define OFLAG_COADMIN 0x00800000 /* co admin gets +C */
|
||||
@@ -584,7 +596,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OPCanDCCDeny(x) ((x)->oflag & OFLAG_DCCDENY)
|
||||
#define OPCanTKL(x) ((x)->oflag & OFLAG_TKL)
|
||||
#define OPCanGZL(x) ((x)->oflag & OFLAG_GZL)
|
||||
#define OPCanAddline(x) ((x)->oflag & OFLAG_ADDLINE)
|
||||
#define OPCanZline(x) ((x)->oflag & OFLAG_ZLINE)
|
||||
#define OPCanRehash(x) ((x)->oflag & OFLAG_REHASH)
|
||||
#define OPCanDie(x) ((x)->oflag & OFLAG_DIE)
|
||||
@@ -606,6 +617,11 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OPIsNetAdmin(x) ((x)->oflag & OFLAG_NETADMIN)
|
||||
#define OPIsCoAdmin(x) ((x)->oflag & OFLAG_COADMIN)
|
||||
#define OPIsWhois(x) ((x)->oflag & OFLAG_WHOIS)
|
||||
#ifdef SHOW_SECRET
|
||||
#define OPCanSeeSecret(x) IsAnOper(x)
|
||||
#else
|
||||
#define OPCanSeeSecret(x) IsNetAdmin(x)
|
||||
#endif
|
||||
|
||||
#define OPSetRehash(x) ((x)->oflag |= OFLAG_REHASH)
|
||||
#define OPSetDie(x) ((x)->oflag |= OFLAG_DIE)
|
||||
@@ -666,13 +682,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
/* blah */
|
||||
#define IsSkoAdmin(sptr) (IsAdmin(sptr) || IsNetAdmin(sptr) || IsSAdmin(sptr))
|
||||
|
||||
/*
|
||||
* defines for curses in client
|
||||
*/
|
||||
#define DUMMY_TERM 0
|
||||
#define CURSES_TERM 1
|
||||
#define TERMCAP_TERM 2
|
||||
|
||||
/* Dcc deny types (see src/s_extra.c) */
|
||||
#define DCCDENY_HARD 0
|
||||
#define DCCDENY_SOFT 1
|
||||
@@ -741,6 +750,7 @@ struct User {
|
||||
unsigned short joined; /* number of channels joined */
|
||||
char username[USERLEN + 1];
|
||||
char realhost[HOSTLEN + 1];
|
||||
char cloakedhost[HOSTLEN + 1]; /* cloaked host (masked host for caching). NOT NECESSARILY THE SAME AS virthost. */
|
||||
char *virthost;
|
||||
char *server;
|
||||
char *swhois; /* special whois thing */
|
||||
@@ -763,6 +773,7 @@ struct User {
|
||||
#ifdef JOINTHROTTLE
|
||||
aJFlood *jflood;
|
||||
#endif
|
||||
TS lastaway;
|
||||
};
|
||||
|
||||
struct Server {
|
||||
@@ -818,6 +829,9 @@ struct Server {
|
||||
#define SPAMF_AWAY 0x0100 /* a */
|
||||
#define SPAMF_TOPIC 0x0200 /* t */
|
||||
|
||||
/* Other flags only for function calls: */
|
||||
#define SPAMFLAG_NOWARN 0x0001
|
||||
|
||||
struct _spamfilter {
|
||||
unsigned short action; /* see BAN_ACT* */
|
||||
regex_t expr;
|
||||
@@ -883,7 +897,6 @@ extern void CmodeDel(Cmode *cmode);
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
EXTCM_PAR_HEADER
|
||||
unsigned short num;
|
||||
unsigned short t;
|
||||
} aModejEntry;
|
||||
@@ -891,9 +904,7 @@ typedef struct {
|
||||
#define LISTENER_NORMAL 0x000001
|
||||
#define LISTENER_CLIENTSONLY 0x000002
|
||||
#define LISTENER_SERVERSONLY 0x000004
|
||||
#define LISTENER_REMOTEADMIN 0x000008
|
||||
#define LISTENER_JAVACLIENT 0x000010
|
||||
#define LISTENER_MASK 0x000020
|
||||
#define LISTENER_SSL 0x000040
|
||||
#define LISTENER_BOUND 0x000080
|
||||
|
||||
@@ -947,7 +958,7 @@ struct Client {
|
||||
#ifdef NOSPOOF
|
||||
u_int32_t nospoof; /* Anti-spoofing random number */
|
||||
#endif
|
||||
short proto; /* ProtoCtl options */
|
||||
int proto; /* ProtoCtl options */
|
||||
long sendM; /* Statistics: protocol messages send */
|
||||
long sendK; /* Statistics: total k-bytes send */
|
||||
long receiveM; /* Statistics: protocol messages received */
|
||||
@@ -969,7 +980,7 @@ struct Client {
|
||||
u_short sendB; /* counters to count upto 1-k lots of bytes */
|
||||
u_short receiveB; /* sent and received. */
|
||||
aClient *listener;
|
||||
ConfigItem_class *class; /* Configuration record associated */
|
||||
ConfigItem_class *cclass; /* Configuration record associated */
|
||||
int authfd; /* fd for rfc931 authentication */
|
||||
short slot; /* my offset in the local fd table */
|
||||
struct IN_ADDR ip; /* keep real ip# too */
|
||||
@@ -1063,6 +1074,7 @@ struct _configflag_tld
|
||||
#define BAN_ACT_BLOCK 8
|
||||
#define BAN_ACT_DCCBLOCK 9
|
||||
#define BAN_ACT_VIRUSCHAN 10
|
||||
#define BAN_ACT_WARN 11
|
||||
|
||||
|
||||
#define CRULE_ALL 0
|
||||
@@ -1088,8 +1100,10 @@ struct _configitem_admin {
|
||||
ConfigFlag flag;
|
||||
char *line;
|
||||
};
|
||||
|
||||
#ifdef FAKELAG_CONFIGURABLE
|
||||
#define CLASS_OPT_NOFAKELAG 0x1
|
||||
#endif
|
||||
#define CLASS_OPT_NOTARGETLAG 0x2
|
||||
|
||||
struct _configitem_class {
|
||||
ConfigItem *prev, *next;
|
||||
@@ -1107,6 +1121,7 @@ struct _configflag_allow {
|
||||
unsigned useip :1;
|
||||
unsigned ssl :1;
|
||||
unsigned nopasscont :1;
|
||||
unsigned wrongpasscont :1;
|
||||
};
|
||||
|
||||
struct _configitem_allow {
|
||||
@@ -1116,7 +1131,7 @@ struct _configitem_allow {
|
||||
anAuthStruct *auth;
|
||||
unsigned short maxperip;
|
||||
int port;
|
||||
ConfigItem_class *class;
|
||||
ConfigItem_class *cclass;
|
||||
struct irc_netmask *netmask;
|
||||
ConfigFlag_allow flags;
|
||||
};
|
||||
@@ -1126,7 +1141,7 @@ struct _configitem_oper {
|
||||
ConfigFlag flag;
|
||||
char *name, *swhois, *snomask;
|
||||
anAuthStruct *auth;
|
||||
ConfigItem_class *class;
|
||||
ConfigItem_class *cclass;
|
||||
ConfigItem *from;
|
||||
unsigned long modes;
|
||||
long oflags;
|
||||
@@ -1137,6 +1152,7 @@ struct _configitem_oper_from {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *name;
|
||||
struct irc_netmask *netmask;
|
||||
};
|
||||
|
||||
struct _configitem_drpass {
|
||||
@@ -1188,7 +1204,7 @@ struct _configitem_link {
|
||||
u_short port, options;
|
||||
unsigned char leafdepth;
|
||||
int refcount;
|
||||
ConfigItem_class *class;
|
||||
ConfigItem_class *cclass;
|
||||
struct IN_ADDR ipnum;
|
||||
time_t hold;
|
||||
#ifdef USE_SSL
|
||||
@@ -1201,6 +1217,19 @@ struct _configitem_link {
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
CGIIRC_PASS=1, CGIIRC_WEBIRC=2
|
||||
} CGIIRCType;
|
||||
|
||||
struct _configitem_cgiirc {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
CGIIRCType type;
|
||||
char *username;
|
||||
char *hostname;
|
||||
anAuthStruct *auth;
|
||||
};
|
||||
|
||||
struct _configitem_except {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag_except flag;
|
||||
@@ -1217,13 +1246,18 @@ struct _configitem_ban {
|
||||
unsigned short action;
|
||||
};
|
||||
|
||||
#ifdef FAST_BADWORD_REPLACE
|
||||
typedef struct _iplist IPList;
|
||||
struct _iplist {
|
||||
IPList *prev, *next;
|
||||
char *mask;
|
||||
/* struct irc_netmask *netmask; */
|
||||
};
|
||||
|
||||
#define BADW_TYPE_INVALID 0x0
|
||||
#define BADW_TYPE_FAST 0x1
|
||||
#define BADW_TYPE_FAST_L 0x2
|
||||
#define BADW_TYPE_FAST_R 0x4
|
||||
#define BADW_TYPE_REGEX 0x8
|
||||
#endif
|
||||
|
||||
#define BADWORD_REPLACE 1
|
||||
#define BADWORD_BLOCK 2
|
||||
@@ -1232,9 +1266,7 @@ struct _configitem_badword {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *word, *replace;
|
||||
#ifdef FAST_BADWORD_REPLACE
|
||||
unsigned short type;
|
||||
#endif
|
||||
char action;
|
||||
regex_t expr;
|
||||
};
|
||||
@@ -1282,6 +1314,7 @@ struct _configitem_log {
|
||||
char *file;
|
||||
long maxsize;
|
||||
int flags;
|
||||
int logfd;
|
||||
};
|
||||
|
||||
struct _configitem_unknown {
|
||||
@@ -1301,7 +1334,7 @@ struct _configitem_unknown_ext {
|
||||
|
||||
|
||||
typedef enum {
|
||||
ALIAS_SERVICES=1, ALIAS_STATS, ALIAS_NORMAL, ALIAS_COMMAND, ALIAS_CHANNEL
|
||||
ALIAS_SERVICES=1, ALIAS_STATS, ALIAS_NORMAL, ALIAS_COMMAND, ALIAS_CHANNEL, ALIAS_REAL
|
||||
} AliasType;
|
||||
|
||||
struct _configitem_alias {
|
||||
@@ -1310,6 +1343,7 @@ struct _configitem_alias {
|
||||
ConfigItem_alias_format *format;
|
||||
char *alias, *nick;
|
||||
AliasType type;
|
||||
unsigned int spamfilter:1;
|
||||
};
|
||||
|
||||
struct _configitem_alias_format {
|
||||
@@ -1333,6 +1367,7 @@ struct _configitem_include {
|
||||
#ifdef USE_LIBCURL
|
||||
char *url;
|
||||
char *errorbuf;
|
||||
char *bind_ip;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -1418,36 +1453,22 @@ struct ListOptions {
|
||||
|
||||
#define NUMFLD 6 /* 6 flood types */
|
||||
|
||||
struct SRemoveFld {
|
||||
struct SRemoveFld *prev, *next;
|
||||
aChannel *chptr;
|
||||
char m; /* mode to be removed */
|
||||
time_t when; /* scheduled at */
|
||||
};
|
||||
|
||||
struct SChanFloodProt {
|
||||
unsigned short per; /* setting: per <XX> seconds */
|
||||
time_t t[NUMFLD]; /* runtime: timers */
|
||||
unsigned short c[NUMFLD]; /* runtime: counters */
|
||||
unsigned short l[NUMFLD]; /* setting: limit */
|
||||
unsigned char a[NUMFLD]; /* setting: action */
|
||||
unsigned char r[NUMFLD]; /* setting: remove-after <this> minutes */
|
||||
unsigned long timer_flags; /* if a "-m timer" is running this is & MODE_MODERATED etc.. */
|
||||
};
|
||||
/* Number of maximum paramter modes to allow.
|
||||
* Don't set it unnecessarily high.. we only use k, l, L, j and f at the moment. (FIXME)
|
||||
*/
|
||||
#define MAXPARAMMODES 12
|
||||
|
||||
/* mode structure for channels */
|
||||
struct SMode {
|
||||
long mode;
|
||||
#ifdef EXTCMODE
|
||||
Cmode_t extmode;
|
||||
CmodeParam *extmodeparam;
|
||||
void *extmodeparams[MAXPARAMMODES+1];
|
||||
#endif
|
||||
int limit;
|
||||
char key[KEYLEN + 1];
|
||||
char link[LINKLEN + 1];
|
||||
#ifdef NEWCHFLOODPROT
|
||||
ChanFloodProt *floodprot;
|
||||
#else
|
||||
#if 0
|
||||
/* x:y */
|
||||
unsigned short msgs; /* x */
|
||||
unsigned short per; /* y */
|
||||
@@ -1600,11 +1621,9 @@ struct liststruct {
|
||||
#define MODE_NOCOLOR 0x40000
|
||||
#define MODE_OPERONLY 0x80000
|
||||
#define MODE_ADMONLY 0x100000
|
||||
#define MODE_NOKICKS 0x200000
|
||||
#define MODE_STRIP 0x400000
|
||||
#define MODE_NOKNOCK 0x800000
|
||||
#define MODE_NOINVITE 0x1000000
|
||||
#define MODE_FLOODLIMIT 0x2000000
|
||||
#define MODE_MODREG 0x4000000
|
||||
#define MODE_INVEX 0x8000000
|
||||
#define MODE_NOCTCP 0x10000000
|
||||
@@ -1652,7 +1671,7 @@ struct liststruct {
|
||||
*/
|
||||
#define MyConnect(x) ((x)->fd != -256)
|
||||
#define MyClient(x) (MyConnect(x) && IsClient(x))
|
||||
#define MyOper(x) (MyConnect(x) && IsOper(x))
|
||||
#define MyOper(x) (MyConnect(x) && IsAnOper(x))
|
||||
|
||||
#ifdef CLEAN_COMPILE
|
||||
#define TStime() (time(NULL) + TSoffset)
|
||||
@@ -1715,7 +1734,7 @@ extern MODVAR char *gnulicense[];
|
||||
#endif
|
||||
#define EVENT_HASHES EVENT_DRUGS
|
||||
#include "events.h"
|
||||
struct Command {
|
||||
struct IRCCommand {
|
||||
aCommand *prev, *next;
|
||||
char *cmd;
|
||||
int (*func) ();
|
||||
@@ -1724,7 +1743,7 @@ struct Command {
|
||||
unsigned parameters : 5;
|
||||
unsigned long bytes;
|
||||
Module *owner;
|
||||
aCommand *friend; /* cmd if token, token if cmd */
|
||||
aCommand *partner; /* cmd if token, token if cmd */
|
||||
Cmdoverride *overriders;
|
||||
Cmdoverride *overridetail;
|
||||
#ifdef DEBUGMODE
|
||||
@@ -1740,8 +1759,6 @@ struct _cmdoverride {
|
||||
int (*func)();
|
||||
};
|
||||
|
||||
#ifdef THROTTLING
|
||||
|
||||
struct ThrottlingBucket
|
||||
{
|
||||
struct ThrottlingBucket *prev, *next;
|
||||
@@ -1800,8 +1817,6 @@ void add_throttling_bucket(struct IN_ADDR *in);
|
||||
void del_throttling_bucket(struct ThrottlingBucket *bucket);
|
||||
int throttle_can_connect(aClient *, struct IN_ADDR *in);
|
||||
|
||||
#endif
|
||||
|
||||
#define VERIFY_OPERCOUNT(clnt,tag) { if (IRCstats.operators < 0) verify_opercount(clnt,tag); } while(0)
|
||||
|
||||
#define MARK_AS_OFFICIAL_MODULE(modinf) do { if (modinf && modinf->handle) ModuleSetOptions(modinfo->handle, MOD_OPT_OFFICIAL); } while(0)
|
||||
|
||||
+1
-1
@@ -143,9 +143,9 @@ typedef unsigned long u_long;
|
||||
typedef unsigned int u_int;
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#define MYOSNAME OSName
|
||||
extern char OSName[256];
|
||||
#ifdef _WIN32
|
||||
#define PATH_MAX MAX_PATH
|
||||
#endif
|
||||
#ifdef DEBUGMODE
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@
|
||||
|
||||
int MODFUNC url_is_valid(char *);
|
||||
char MODFUNC *url_getfilename(char *);
|
||||
char MODFUNC *download_file(char *, char **);
|
||||
void MODFUNC download_file_async(char *, time_t, vFP);
|
||||
char MODFUNC *download_file(char *, char **, char *);
|
||||
void MODFUNC download_file_async(char *, time_t, vFP, char *);
|
||||
void MODFUNC url_do_transfers_async(void);
|
||||
void MODFUNC url_init(void);
|
||||
|
||||
|
||||
+27
-5
@@ -23,13 +23,35 @@
|
||||
#endif
|
||||
/**/
|
||||
#define COMPILEINFO DEBUGMODESET DEBUGSET
|
||||
/*
|
||||
* Version Unreal3.2.2
|
||||
|
||||
/* Version info follows, current: Unreal3.2.3
|
||||
* Please be sure to update ALL fields when changing the version.
|
||||
* Also don't forget to bump the protocol version every release.
|
||||
*/
|
||||
#define UnrealProtocol 2306
|
||||
|
||||
/** These UNREAL_VERSION_* macros can be used so (3rd party) modules
|
||||
* can easily distinguish versions.
|
||||
*/
|
||||
|
||||
/** The generation version number (eg: 3 for Unreal3*) */
|
||||
#define UNREAL_VERSION_GENERATION 3
|
||||
|
||||
/** The major version number (eg: 3 for Unreal3.2*) */
|
||||
#define UNREAL_VERSION_MAJOR 3
|
||||
|
||||
/** The minor version number (eg: 1 for Unreal3.2.1), negative numbers for unstable/alpha/beta */
|
||||
#define UNREAL_VERSION_MINOR -99
|
||||
|
||||
/** Year + week of the year (with Monday as first day of the week).
|
||||
* Can be useful if the above 3 versionids are insufficient for you (eg: you want to support CVS).
|
||||
* This is updated automatically on the CVS server every Monday. so don't touch it.
|
||||
*/
|
||||
#define UNREAL_VERSION_TIME 200631
|
||||
|
||||
#define UnrealProtocol 2308
|
||||
#define PATCH1 "3"
|
||||
#define PATCH2 ".2"
|
||||
#define PATCH3 ".3"
|
||||
#define PATCH2 ".3"
|
||||
#define PATCH3 "-willneverbereleased"
|
||||
#define PATCH4 ""
|
||||
#define PATCH5 ""
|
||||
#define PATCH6 ""
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this
|
||||
* software and its documentation for any purpose and without
|
||||
* fee is hereby granted, provided that the above copyright
|
||||
* notice appear in all copies and that both that copyright
|
||||
* notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of M.I.T. not be used in
|
||||
* advertising or publicity pertaining to distribution of the
|
||||
* software without specific, written prior permission.
|
||||
* M.I.T. makes no representations about the suitability of
|
||||
* this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef ARES__H
|
||||
#define ARES__H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
||||
#if defined(_AIX) || defined(NETWARE)
|
||||
/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
|
||||
libc5-based Linux systems. Only include it on system that are known to
|
||||
require it! */
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#if defined(WATT32)
|
||||
#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#include <tcp.h>
|
||||
#elif defined(WIN32)
|
||||
#include <winsock.h>
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ARES_SUCCESS 0
|
||||
|
||||
/* Server error codes (ARES_ENODATA indicates no relevant answer) */
|
||||
#define ARES_ENODATA 1
|
||||
#define ARES_EFORMERR 2
|
||||
#define ARES_ESERVFAIL 3
|
||||
#define ARES_ENOTFOUND 4
|
||||
#define ARES_ENOTIMP 5
|
||||
#define ARES_EREFUSED 6
|
||||
|
||||
/* Locally generated error codes */
|
||||
#define ARES_EBADQUERY 7
|
||||
#define ARES_EBADNAME 8
|
||||
#define ARES_EBADFAMILY 9
|
||||
#define ARES_EBADRESP 10
|
||||
#define ARES_ECONNREFUSED 11
|
||||
#define ARES_ETIMEOUT 12
|
||||
#define ARES_EOF 13
|
||||
#define ARES_EFILE 14
|
||||
#define ARES_ENOMEM 15
|
||||
#define ARES_EDESTRUCTION 16
|
||||
#define ARES_EBADSTR 17
|
||||
|
||||
/* ares_getnameinfo error codes */
|
||||
#define ARES_EBADFLAGS 18
|
||||
|
||||
/* Flag values */
|
||||
#define ARES_FLAG_USEVC (1 << 0)
|
||||
#define ARES_FLAG_PRIMARY (1 << 1)
|
||||
#define ARES_FLAG_IGNTC (1 << 2)
|
||||
#define ARES_FLAG_NORECURSE (1 << 3)
|
||||
#define ARES_FLAG_STAYOPEN (1 << 4)
|
||||
#define ARES_FLAG_NOSEARCH (1 << 5)
|
||||
#define ARES_FLAG_NOALIASES (1 << 6)
|
||||
#define ARES_FLAG_NOCHECKRESP (1 << 7)
|
||||
|
||||
/* Option mask values */
|
||||
#define ARES_OPT_FLAGS (1 << 0)
|
||||
#define ARES_OPT_TIMEOUT (1 << 1)
|
||||
#define ARES_OPT_TRIES (1 << 2)
|
||||
#define ARES_OPT_NDOTS (1 << 3)
|
||||
#define ARES_OPT_UDP_PORT (1 << 4)
|
||||
#define ARES_OPT_TCP_PORT (1 << 5)
|
||||
#define ARES_OPT_SERVERS (1 << 6)
|
||||
#define ARES_OPT_DOMAINS (1 << 7)
|
||||
#define ARES_OPT_LOOKUPS (1 << 8)
|
||||
|
||||
/* Nameinfo flag values */
|
||||
#define ARES_NI_NOFQDN (1 << 0)
|
||||
#define ARES_NI_NUMERICHOST (1 << 1)
|
||||
#define ARES_NI_NAMEREQD (1 << 2)
|
||||
#define ARES_NI_NUMERICSERV (1 << 3)
|
||||
#define ARES_NI_DGRAM (1 << 4)
|
||||
#define ARES_NI_TCP 0
|
||||
#define ARES_NI_UDP ARES_NI_DGRAM
|
||||
#define ARES_NI_SCTP (1 << 5)
|
||||
#define ARES_NI_DCCP (1 << 6)
|
||||
#define ARES_NI_NUMERICSCOPE (1 << 7)
|
||||
#define ARES_NI_LOOKUPHOST (1 << 8)
|
||||
#define ARES_NI_LOOKUPSERVICE (1 << 9)
|
||||
/* Reserved for future use */
|
||||
#define ARES_NI_IDN (1 << 10)
|
||||
#define ARES_NI_ALLOW_UNASSIGNED (1 << 11)
|
||||
#define ARES_NI_USE_STD3_ASCII_RULES (1 << 12)
|
||||
|
||||
struct ares_options {
|
||||
int flags;
|
||||
int timeout;
|
||||
int tries;
|
||||
int ndots;
|
||||
unsigned short udp_port;
|
||||
unsigned short tcp_port;
|
||||
struct in_addr *servers;
|
||||
int nservers;
|
||||
char **domains;
|
||||
int ndomains;
|
||||
char *lookups;
|
||||
};
|
||||
|
||||
/** Public available config (readonly) interface for ares_get_config(). */
|
||||
struct ares_config_info {
|
||||
int timeout;
|
||||
int tries;
|
||||
int numservers;
|
||||
char **servers;
|
||||
};
|
||||
|
||||
struct hostent;
|
||||
struct timeval;
|
||||
struct sockaddr;
|
||||
struct ares_channeldata;
|
||||
typedef struct ares_channeldata *ares_channel;
|
||||
typedef void (*ares_callback)(void *arg, int status, unsigned char *abuf,
|
||||
int alen);
|
||||
typedef void (*ares_host_callback)(void *arg, int status,
|
||||
struct hostent *hostent);
|
||||
typedef void (*ares_nameinfo_callback)(void *arg, int status,
|
||||
char *node, char *service);
|
||||
|
||||
int ares_init(ares_channel *channelptr);
|
||||
int ares_init_options(ares_channel *channelptr, struct ares_options *options,
|
||||
int optmask);
|
||||
void ares_destroy(ares_channel channel);
|
||||
void ares_cancel(ares_channel channel);
|
||||
void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen,
|
||||
ares_callback callback, void *arg);
|
||||
void ares_query(ares_channel channel, const char *name, int dnsclass,
|
||||
int type, ares_callback callback, void *arg);
|
||||
void ares_search(ares_channel channel, const char *name, int dnsclass,
|
||||
int type, ares_callback callback, void *arg);
|
||||
void ares_gethostbyname(ares_channel channel, const char *name, int family,
|
||||
ares_host_callback callback, void *arg);
|
||||
void ares_gethostbyaddr(ares_channel channel, const void *addr, int addrlen,
|
||||
int family, ares_host_callback callback, void *arg);
|
||||
void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
|
||||
socklen_t salen, int flags, ares_nameinfo_callback callback,
|
||||
void *arg);
|
||||
int ares_fds(ares_channel channel, fd_set *read_fds, fd_set *write_fds);
|
||||
struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv,
|
||||
struct timeval *tv);
|
||||
void ares_process(ares_channel channel, fd_set *read_fds, fd_set *write_fds);
|
||||
|
||||
int ares_mkquery(const char *name, int dnsclass, int type, unsigned short id,
|
||||
int rd, unsigned char **buf, int *buflen);
|
||||
int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
|
||||
int alen, char **s, long *enclen);
|
||||
int ares_expand_string(const unsigned char *encoded, const unsigned char *abuf,
|
||||
int alen, unsigned char **s, long *enclen);
|
||||
int ares_parse_a_reply(const unsigned char *abuf, int alen,
|
||||
struct hostent **host);
|
||||
int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
|
||||
struct hostent **host);
|
||||
int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr,
|
||||
int addrlen, int family, struct hostent **host);
|
||||
void ares_free_string(void *str);
|
||||
void ares_free_hostent(struct hostent *host);
|
||||
const char *ares_strerror(int code);
|
||||
int ares_get_config(struct ares_config_info *d, ares_channel c);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ARES__H */
|
||||
@@ -0,0 +1,17 @@
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef ARES__VERSION_H
|
||||
#define ARES__VERSION_H
|
||||
|
||||
#define ARES_VERSION_MAJOR 1
|
||||
#define ARES_VERSION_MINOR 3
|
||||
#define ARES_VERSION_PATCH 0
|
||||
#define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\
|
||||
(ARES_VERSION_MINOR<<8)|\
|
||||
(ARES_VERSION_PATCH))
|
||||
#define ARES_VERSION_STR "1.3.0"
|
||||
|
||||
const char *ares_version(int *version);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
#ifndef ARES_SETUP_H
|
||||
#define ARES_SETUP_H
|
||||
|
||||
/* Copyright (C) 2004 - 2005 by Daniel Stenberg et al
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and its
|
||||
* documentation for any purpose and without fee is hereby granted, provided
|
||||
* that the above copyright notice appear in all copies and that both that
|
||||
* copyright notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of M.I.T. not be used in advertising or
|
||||
* publicity pertaining to distribution of the software without specific,
|
||||
* written prior permission. M.I.T. makes no representations about the
|
||||
* suitability of this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#else
|
||||
/* simple work-around for now, for systems without configure support */
|
||||
#define ssize_t int
|
||||
#define socklen_t int
|
||||
#endif
|
||||
|
||||
/* Recent autoconf versions define these symbols in config.h. We don't want
|
||||
them (since they collide with the libcurl ones when we build
|
||||
--enable-debug) so we undef them again here. */
|
||||
#undef PACKAGE_STRING
|
||||
#undef PACKAGE_TARNAME
|
||||
#undef PACKAGE_VERSION
|
||||
#undef PACKAGE_BUGREPORT
|
||||
#undef PACKAGE_NAME
|
||||
#undef VERSION
|
||||
#undef PACKAGE
|
||||
|
||||
/* now typedef our socket type */
|
||||
#if defined(WIN32) && !defined(WATT32)
|
||||
#include <winsock.h>
|
||||
typedef SOCKET ares_socket_t;
|
||||
#define ARES_SOCKET_BAD INVALID_SOCKET
|
||||
#else
|
||||
typedef int ares_socket_t;
|
||||
#define ARES_SOCKET_BAD -1
|
||||
#endif
|
||||
|
||||
/* Assume a few thing unless they're set by configure
|
||||
*/
|
||||
#if !defined(HAVE_SYS_TIME_H) && !defined(_MSC_VER)
|
||||
#define HAVE_SYS_TIME_H
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_UNISTD_H) && !defined(_MSC_VER)
|
||||
#define HAVE_UNISTD_H 1
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_SYS_UIO_H) && !defined(WIN32) && !defined(MSDOS)
|
||||
#define HAVE_SYS_UIO_H
|
||||
#endif
|
||||
|
||||
#if (defined(WIN32) || defined(WATT32)) && \
|
||||
!(defined(__MINGW32__) || defined(NETWARE))
|
||||
/* protos for the functions we provide in windows_port.c */
|
||||
int ares_strncasecmp(const char *s1, const char *s2, int n);
|
||||
int ares_strcasecmp(const char *s1, const char *s2);
|
||||
|
||||
/* use this define magic to prevent us from adding symbol names to the library
|
||||
that is a high-risk to collide with another libraries' attempts to do the
|
||||
same */
|
||||
#define strncasecmp(a,b,c) ares_strncasecmp(a,b,c)
|
||||
#define strcasecmp(a,b) ares_strcasecmp(a,b)
|
||||
#endif
|
||||
|
||||
/* IPv6 compatibility */
|
||||
#if !defined(HAVE_AF_INET6)
|
||||
#if defined(HAVE_PF_INET6)
|
||||
#define AF_INET6 PF_INET6
|
||||
#else
|
||||
#define AF_INET6 AF_MAX+1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* ARES_SETUP_H */
|
||||
@@ -43,9 +43,14 @@
|
||||
#undef TIMES_2
|
||||
#undef GETRUSAGE_2
|
||||
#define HAVE_ALLOCA
|
||||
/* vc 2005 */
|
||||
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
||||
# define HAVE_VSNPRINTF
|
||||
# define HAVE_SNPRINTF
|
||||
# define snprintf _snprintf
|
||||
#endif
|
||||
#define SPATH "."
|
||||
#define DPATH "."
|
||||
#define DOMAINNAME "irc.net"
|
||||
#define NO_U_TYPES
|
||||
#define NEED_U_INT32_T
|
||||
#define PREFIX_AQ
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@
|
||||
# These values shouldn't need to be changed
|
||||
|
||||
# The path to the ircd binary
|
||||
ircdexe="@BINDIR@"
|
||||
ircdexe="@BINDIR@/ircd"
|
||||
|
||||
# The path to the ircd pid file
|
||||
ircdname="@IRCDDIR@/ircd.pid"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/************************************************************************
|
||||
* Unreal Internet Relay Chat Daemon, src/lusers.c
|
||||
* (C) Carsten Munk <stskeeps@tspre.org> 2000
|
||||
/*
|
||||
* IRC - Internet Relay Chat, src/modules/%FILE%
|
||||
* (C) 2005 The UnrealIRCd Team
|
||||
*
|
||||
* See file AUTHORS in IRC package for additional names of
|
||||
* the programmers.
|
||||
* the programmers.
|
||||
*
|
||||
* 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
|
||||
@@ -19,14 +19,16 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include "config.h"
|
||||
#include "struct.h"
|
||||
#include "common.h"
|
||||
#include "sys.h"
|
||||
#include "numeric.h"
|
||||
#include "msg.h"
|
||||
#include "proto.h"
|
||||
#include "channel.h"
|
||||
#include "version.h"
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
@@ -37,26 +39,46 @@
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
#include "h.h"
|
||||
|
||||
ID_Copyright("(C) Carsten Munk 2000");
|
||||
|
||||
ircstats IRCstats;
|
||||
|
||||
#ifdef IRC_COMMENT
|
||||
int clients; /* total */
|
||||
int invisible; /* invisible */
|
||||
int servers; /* servers */
|
||||
int operators; /* operators */
|
||||
int unknown; /* unknown local connections */
|
||||
int channels; /* channels */
|
||||
int me_clients; /* my clients */
|
||||
int me_servers; /* my servers */
|
||||
int me_max; /* local max */
|
||||
int global_max; /* global max */
|
||||
#ifdef STRIPBADWORDS
|
||||
#include "badwords.h"
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#include "version.h"
|
||||
#endif
|
||||
|
||||
void init_ircstats(void)
|
||||
{
|
||||
bzero(&IRCstats, sizeof(IRCstats));
|
||||
IRCstats.servers = 1;
|
||||
}
|
||||
extern "C" DLLFUNC CMD_FUNC(m_COMMAND);
|
||||
|
||||
#define MSG_UCOMMAND "UCOMMAND"
|
||||
#define TOK_UCOMMAND "%%"
|
||||
|
||||
ModuleHeader MOD_HEADER(m_COMMAND)
|
||||
= {
|
||||
"m_COMMAND",
|
||||
"$Id$",
|
||||
"command /COMMAND",
|
||||
"3.2-b8-1",
|
||||
NULL
|
||||
};
|
||||
|
||||
extern "C" DLLFUNC int MOD_INIT(m_COMMAND)(ModuleInfo *modinfo)
|
||||
{
|
||||
CommandAdd(modinfo->handle, MSG_UCOMMAND, TOK_UCOMMAND, m_COMMAND, MAXPARA, M_USER|M_SERVER);
|
||||
MARK_AS_OFFICIAL_MODULE(modinfo);
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
extern "C" DLLFUNC int MOD_LOAD(m_COMMAND)(int module_load)
|
||||
{
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
extern "C" DLLFUNC int MOD_UNLOAD(m_COMMAND)(int module_unload)
|
||||
{
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
extern "C" DLLFUNC CMD_FUNC(m_COMMAND)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
+46
-42
@@ -54,11 +54,19 @@ RC=rc
|
||||
#
|
||||
######### END SSL ########
|
||||
|
||||
###### RELEASE BUILD #####
|
||||
#To make a release build comment out the next line a release build
|
||||
#does not contain debugging symbols and can not be used to locate
|
||||
#the source of a crash or bug
|
||||
DEBUG=1
|
||||
###### _EXTRA_ DEBUGGING #####
|
||||
# We always build releases with debugging information, since otherwise
|
||||
# we cannot trace the source of a crash. Plus we do not mind the extra
|
||||
# performance hit caused by not enabling super-optimization, tracing
|
||||
# crashes properly is more important.
|
||||
# You can choose (at your own risk) to enable EVEN MORE debugging,
|
||||
# note that this causes /MDd to be used instead of /MD which can make
|
||||
# libraries incompatible, plus all the other side-effects such as
|
||||
# requiring a different dll we do not ship (and maybe you are not even
|
||||
# allowed to ship due to license agreements), etc...
|
||||
# In any case, this probably should not be used, unless debugging a
|
||||
# problem locally, in which case it can be useful.
|
||||
#DEBUGEXTRA=1
|
||||
#
|
||||
#
|
||||
#### END RELEASE BUILD ###
|
||||
@@ -100,25 +108,26 @@ OPENSSL_LIB=/LIBPATH:"$(OPENSSL_LIB_DIR)"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
!IFDEF DEBUG
|
||||
DBGCFLAG=/MD /Zi
|
||||
DBGLFLAG=/debug /debugtype:BOTH
|
||||
MODDBGCFLAG=/LDd /MD /Zi
|
||||
!IFDEF DEBUGEXTRA
|
||||
DBGCFLAG=/MDd /Zi /Od
|
||||
DBGLFLAG=/debug
|
||||
MODDBGCFLAG=/LDd /MDd /Zi
|
||||
!ELSE
|
||||
DBGCFLAG=/MD /O2 /G5
|
||||
MODDBGCFLAG=/LD /MD
|
||||
DBGCFLAG=/MD /Zi
|
||||
DBGLFLAG=/debug
|
||||
MODDBGCFLAG=/LDd /MD /Zi
|
||||
!ENDIF
|
||||
|
||||
FD_SETSIZE=/D FD_SETSIZE=16384
|
||||
CFLAGS=$(DBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
|
||||
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c
|
||||
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
||||
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \
|
||||
dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(ZLIB_LIB) $(ZIPLIB) \
|
||||
$(OPENSSL_LIB) $(SSLLIBS) $(LIBCURL_LIB) $(CURLLIB) /def:wircd.def /implib:wircd.lib \
|
||||
/nologo $(DBGLFLAG) /out:WIRCD.EXE
|
||||
MODCFLAGS=$(MODDBGCFLAG) $(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /J /Fesrc/modules/ \
|
||||
/Fosrc/modules/ /nologo $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /I ./INCLUDE /D \
|
||||
DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE
|
||||
DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
||||
MODLFLAGS=/link /def:src/modules/module.def wircd.lib $(OPENSSL_LIB) $(SSLLIBS) \
|
||||
$(ZLIB_LIB) $(ZIPLIB) $(LIBCURL_LIB) $(CURLLIB)
|
||||
|
||||
@@ -134,11 +143,11 @@ EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \
|
||||
SRC/S_DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \
|
||||
SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/S_BSD.OBJ \
|
||||
SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/CHARSYS.OBJ \
|
||||
SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \
|
||||
SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/BADWORDS.OBJ SRC/WEBTV.OBJ SRC/RES.OBJ SRC/MODULES.OBJ \
|
||||
SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ \
|
||||
SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/RES.OBJ SRC/MODULES.OBJ \
|
||||
SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/CIDR.OBJ SRC/SSL.OBJ \
|
||||
SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ \
|
||||
SRC/EXTBANS.OBJ $(ZIPOBJ) $(CURLOBJ)
|
||||
SRC/EXTBANS.OBJ SRC/TIMESYNCH.OBJ $(ZIPOBJ) $(CURLOBJ)
|
||||
|
||||
OBJ_FILES=$(EXP_OBJ_FILES) SRC/GUI.OBJ SRC/SERVICE.OBJ SRC/DEBUG.OBJ SRC/RTF.OBJ \
|
||||
SRC/EDITOR.OBJ SRC/WIN32.OBJ
|
||||
@@ -150,7 +159,7 @@ MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C
|
||||
SRC/MODULES/M_SVSNOOP.C SRC/MODULES/M_MKPASSWD.C SRC/MODULES/M_SVSO.C \
|
||||
SRC/MODULES/M_SVSNICK.C SRC/MODULES/M_ADMINCHAT.C SRC/MODULES/M_AKILL.C \
|
||||
SRC/MODULES/M_CHGNAME.C SRC/MODULES/M_GUEST.C SRC/MODULES/M_HTM.C SRC/MODULES/M_LAG.C \
|
||||
SRC/MODULES/M_MESSAGE.C SRC/MODULES/M_NACHAT.C SRC/MODULES/M_OPER.C \
|
||||
SRC/MODULES/M_MESSAGE.C SRC/MODULES/WEBTV.C SRC/MODULES/M_NACHAT.C SRC/MODULES/M_OPER.C \
|
||||
SRC/MODULES/M_PINGPONG.C SRC/MODULES/M_QUIT.C SRC/MODULES/M_RAKILL.C SRC/MODULES/M_RPING.C \
|
||||
SRC/MODULES/M_SENDUMODE.C SRC/MODULES/M_SQLINE.C SRC/MODULES/M_KILL.C \
|
||||
SRC/MODULES/M_TSCTL.C SRC/MODULES/M_UNKLINE.C SRC/MODULES/M_UNSQLINE.C \
|
||||
@@ -163,7 +172,7 @@ MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C
|
||||
SRC/MODULES/M_KNOCK.C SRC/MODULES/M_UMODE2.C SRC/MODULES/M_SQUIT.C \
|
||||
SRC/MODULES/M_PROTOCTL.C SRC/MODULES/M_SJOIN.C SRC/MODULES/M_PASS.C \
|
||||
SRC/MODULES/M_USERHOST.C SRC/MODULES/M_ISON.C SRC/MODULES/M_SILENCE.C \
|
||||
SRC/MODULES/M_ADDLINE.C SRC/MODULES/M_ADDMOTD.C SRC/MODULES/M_ADDOMOTD.C \
|
||||
SRC/MODULES/M_ADDMOTD.C SRC/MODULES/M_ADDOMOTD.C \
|
||||
SRC/MODULES/M_WALLOPS.C SRC/MODULES/M_GLOBOPS.C SRC/MODULES/M_LOCOPS.C \
|
||||
SRC/MODULES/M_CHATOPS.C SRC/MODULES/M_ADMIN.C SRC/MODULES/M_TRACE.C \
|
||||
SRC/MODULES/M_NETINFO.C SRC/MODULES/M_LINKS.C SRC/MODULES/M_HELP.C \
|
||||
@@ -174,7 +183,7 @@ MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C
|
||||
SRC/MODULES/M_NICK.C SRC/MODULES/M_USER.C SRC/MODULES/M_MODE.C \
|
||||
SRC/MODULES/M_WATCH.C SRC/MODULES/M_PART.C SRC/MODULES/M_JOIN.C \
|
||||
SRC/MODULES/M_MOTD.C SRC/MODULES/M_OPERMOTD.C SRC/MODULES/M_BOTMOTD.C \
|
||||
SRC/MODULES/M_LUSERS.C
|
||||
SRC/MODULES/M_LUSERS.C SRC/MODULES/M_NAMES.C SRC/MODULES/M_SVSNOLAG.C
|
||||
|
||||
DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDENT.DLL \
|
||||
SRC/MODULES/M_SETNAME.DLL SRC/MODULES/M_SETHOST.DLL SRC/MODULES/M_CHGIDENT.DLL \
|
||||
@@ -197,7 +206,7 @@ DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDE
|
||||
SRC/MODULES/M_TIME.DLL SRC/MODULES/M_SVSKILL.DLL SRC/MODULES/M_KNOCK.DLL \
|
||||
SRC/MODULES/M_UMODE2.DLL SRC/MODULES/M_SQUIT.DLL SRC/MODULES/M_PROTOCTL.DLL \
|
||||
SRC/MODULES/M_SJOIN.DLL SRC/MODULES/M_PASS.DLL SRC/MODULES/M_USERHOST.DLL \
|
||||
SRC/MODULES/M_ISON.DLL SRC/MODULES/M_SILENCE.DLL SRC/MODULES/M_ADDLINE.DLL \
|
||||
SRC/MODULES/M_ISON.DLL SRC/MODULES/M_SILENCE.DLL \
|
||||
SRC/MODULES/M_ADDMOTD.DLL SRC/MODULES/M_ADDOMOTD.DLL SRC/MODULES/M_WALLOPS.DLL \
|
||||
SRC/MODULES/M_GLOBOPS.DLL SRC/MODULES/M_LOCOPS.DLL SRC/MODULES/M_CHATOPS.DLL \
|
||||
SRC/MODULES/M_ADMIN.DLL SRC/MODULES/M_TRACE.DLL SRC/MODULES/M_NETINFO.DLL \
|
||||
@@ -209,7 +218,7 @@ DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDE
|
||||
SRC/MODULES/M_NICK.DLL SRC/MODULES/M_USER.DLL SRC/MODULES/M_MODE.DLL \
|
||||
SRC/MODULES/M_WATCH.DLL SRC/MODULES/M_PART.DLL SRC/MODULES/M_JOIN.DLL \
|
||||
SRC/MODULES/M_MOTD.DLL SRC/MODULES/M_OPERMOTD.DLL SRC/MODULES/M_BOTMOTD.DLL \
|
||||
SRC/MODULES/M_LUSERS.DLL \
|
||||
SRC/MODULES/M_LUSERS.DLL SRC/MODULES/M_NAMES.DLL SRC/MODULES/M_SVSNOLAG.DLL \
|
||||
SRC/MODULES/CLOAK.DLL
|
||||
|
||||
|
||||
@@ -230,7 +239,7 @@ CLEAN:
|
||||
-@erase src\modules\*.ilk >NUL
|
||||
|
||||
./UNREAL.EXE: SRC/UNREAL.OBJ SRC/WIN32/UNREAL.RES
|
||||
$(LINK) advapi32.lib src/unreal.obj src/win32/unreal.res
|
||||
$(LINK) $(DBGLFLAG) advapi32.lib src/unreal.obj src/win32/unreal.res
|
||||
|
||||
CONF:
|
||||
-@copy include\win32\setup.h include\setup.h >NUL
|
||||
@@ -242,10 +251,10 @@ CONF:
|
||||
./WIRCD.EXE: $(OBJ_FILES) SRC/win32/WIN32.RES
|
||||
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES SRC/WIN32/TRE.LIB SRC/WIN32/ARESLIB.LIB /MAPINFO:LINES /MAP
|
||||
-@erase src\win32\win32.res
|
||||
!IFNDEF DEBUG
|
||||
@echo Non Debug version built
|
||||
!IFNDEF DEBUGEXTRA
|
||||
@echo Standard version built
|
||||
!ELSE
|
||||
@echo Debug version built ...
|
||||
@echo Extra-Debug version built ...
|
||||
!ENDIF
|
||||
|
||||
#Source files
|
||||
@@ -256,12 +265,6 @@ src/version.obj: src/version.c
|
||||
src/parse.obj: src/parse.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/parse.c
|
||||
|
||||
src/badwords.obj: src/badwords.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/badwords.c
|
||||
|
||||
src/webtv.obj: src/webtv.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/webtv.c
|
||||
|
||||
src/socket.obj: src/socket.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/socket.c
|
||||
|
||||
@@ -293,12 +296,6 @@ src/support.obj: src/support.c $(INCLUDES)
|
||||
src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h
|
||||
$(CC) $(CFLAGS) src/channel.c
|
||||
|
||||
src/class.obj: src/class.c $(INCLUDES) ./include/class.h
|
||||
$(CC) $(CFLAGS) src/class.c
|
||||
|
||||
src/lusers.obj: src/lusers.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/lusers.c
|
||||
|
||||
src/aln.obj: src/aln.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/aln.c
|
||||
|
||||
@@ -311,6 +308,9 @@ src/list.obj: src/list.c $(INCLUDES)
|
||||
src/res.obj: src/res.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/res.c
|
||||
|
||||
src/timesynch.obj: src/timesynch.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/timesynch.c
|
||||
|
||||
src/s_bsd.obj: src/s_bsd.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/s_bsd.c
|
||||
|
||||
@@ -458,7 +458,8 @@ MODULES: $(DLL_FILES)
|
||||
src/modules/commands.dll: $(MOD_FILES) $(INCLUDES)
|
||||
$(CC) $(MODDBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /nologo \
|
||||
$(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /Fosrc/modules/ \
|
||||
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE $(MOD_FILES) \
|
||||
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE \
|
||||
/D _USE_32BIT_TIME_T $(MOD_FILES) \
|
||||
$(MODLFLAGS) src/win32/tre.lib /OUT:src/modules/commands.dll
|
||||
|
||||
src/modules/m_chghost.dll: src/modules/m_chghost.c $(INCLUDES)
|
||||
@@ -534,7 +535,7 @@ src/modules/m_lag.dll: src/modules/m_lag.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_lag.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_message.dll: src/modules/m_message.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_message.c $(MODLFLAGS)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_message.c src/modules/webtv.c $(MODLFLAGS) src/win32/tre.lib
|
||||
|
||||
src/modules/m_nachat.dll: src/modules/m_nachat.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_nachat.c $(MODLFLAGS)
|
||||
@@ -656,9 +657,6 @@ src/modules/m_squit.dll: src/modules/m_squit.c $(INCLUDES)
|
||||
src/modules/m_protoctl.dll: src/modules/m_protoctl.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_protoctl.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_addline.dll: src/modules/m_addline.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_addline.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_addmotd.dll: src/modules/m_addmotd.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_addmotd.c $(MODLFLAGS)
|
||||
|
||||
@@ -761,9 +759,15 @@ src/modules/m_botmotd.dll: src/modules/m_botmotd.c $(INCLUDES)
|
||||
src/modules/m_lusers.dll: src/modules/m_lusers.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_lusers.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_names.dll: src/modules/m_names.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_names.c $(MODLFLAGS)
|
||||
|
||||
src/modules/cloak.dll: src/modules/cloak.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/cloak.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_svsnolag.dll: src/modules/m_svsnolag.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_svsnolag.c $(MODLFLAGS)
|
||||
|
||||
dummy:
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* AwesomeChristians Chat Network (irc.awesomechristians.com) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 31 December 2001 15:25
|
||||
* Author: ChildLikeFaith
|
||||
* Email: childlikefaith@awesomechristians.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "AwesomeChristians Chat Network";
|
||||
default-server "irc.awesomechristians.com";
|
||||
services-server "services.awesomechristians.com";
|
||||
stats-server "services.awesomechristians.com";
|
||||
help-channel "#operhelp";
|
||||
hiddenhost-prefix "awesome";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "ircop.awesomechristians.net";
|
||||
global "ircop.awesomechristians.net";
|
||||
coadmin "co.admin.awesomechristians.net";
|
||||
admin "admin.awesomechristians.net";
|
||||
servicesadmin "services.admin.awesomechristians.net";
|
||||
netadmin "network.admin.awesomechristians.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* AXEnet (irc.axenet.org) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Axenet";
|
||||
default-server "irc.axenet.org";
|
||||
services-server "services.axenet.org";
|
||||
stats-server "stats.axenet.org";
|
||||
help-channel "#axenethelp";
|
||||
hiddenhost-prefix "axe";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.axenet.org";
|
||||
global "ircop.axenet.org";
|
||||
coadmin "coadmin.axenet.org";
|
||||
admin "admin.axenet.org";
|
||||
servicesadmin "csop.axenet.org";
|
||||
netadmin "netadmin.axenet.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Bunker7.net Network Configuration File
|
||||
* -----------------------------------------
|
||||
* Added-at: 17 August 1999 12:34 CT
|
||||
* Author: Rogue
|
||||
* E-Mail: rogue@bunker7.net
|
||||
* $Id$
|
||||
*-----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "bunker7";
|
||||
default-server "irc.bunker7.net";
|
||||
services-server "services.bunker7.net";
|
||||
stats-server "stats.bunker7.net";
|
||||
help-channel "#bunker7";
|
||||
hiddenhost-prefix "bunker7";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "local.bunker7.net";
|
||||
global "global.bunker7.net";
|
||||
coadmin "coadmin.bunker7.net";
|
||||
admin "admin.bunker7.net";
|
||||
servicesadmin "sadm.bunker7.net";
|
||||
netadmin "netadmin.bunker7.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* BuRnNET (irc.burncycl.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 03 April 2001 03:31
|
||||
* Author: BuRnCycL
|
||||
* Email: burncycl@burncycl.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "BuRnNET";
|
||||
default-server "irc.burncycl.net";
|
||||
services-server "services.burncycl.net";
|
||||
stats-server "stats.burncycl.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "hide";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.burncycl.net";
|
||||
global "oper.burncycl.net";
|
||||
coadmin "coadmin.burncycl.net";
|
||||
admin "admin.burncycl.net";
|
||||
servicesadmin "csop.burncycl.net";
|
||||
netadmin "netadmin.burncycl.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* CaboNet (irc.cabonet.org) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 03 February 2001 15:38
|
||||
* Author: Nandin
|
||||
* Email: nandin@cabonet.org
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "CaboNet";
|
||||
default-server "irc.cabonet.org";
|
||||
services-server "services.cabonet.org";
|
||||
stats-server "stats.cabonet.org";
|
||||
help-channel "#cabonet";
|
||||
hiddenhost-prefix "cnet";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "local.cabonet.org";
|
||||
global "oper.cabonet.org";
|
||||
coadmin "coadmin.cabonet.org";
|
||||
admin "admin.cabonet.org";
|
||||
servicesadmin "csop.cabonet.org";
|
||||
netadmin "netadmin.cabonet.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Added-at: 25 november 2000 17:35 GMT
|
||||
* Author: Highlander (J.S. Morrison)
|
||||
* E-Mail: highlander@chatcrap.com
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "ChatCrap";
|
||||
default-server "irc.chatcrap.com";
|
||||
services-server "services.cabonet.org";
|
||||
stats-server "stats.chatcrap.com";
|
||||
help-channel "#operhelp";
|
||||
hiddenhost-prefix "chatcrap";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.chatcrap.com";
|
||||
global "ircop.chatcrap.com";
|
||||
coadmin "coadmin.chatcrap.com";
|
||||
admin "admin.chatcrap.com";
|
||||
servicesadmin "serviceop.chatcrap.com";
|
||||
netadmin "netadmin.chatcrap.com";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* ChatUniverse (irc.chatuniverse.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 16 March 2001 13:02
|
||||
* Author: PeTrArChY
|
||||
* Email: bradbury@rebeldev.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "ChatUniverse";
|
||||
default-server "irc.chatuniverse.net";
|
||||
services-server "services.chatuniverse.net";
|
||||
stats-server "stats.chatuniverse.net";
|
||||
help-channel "#chatuniverse";
|
||||
hiddenhost-prefix "CU";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.chatuniverse.net";
|
||||
global "oper.chatuniverse.net";
|
||||
coadmin "coadmin.chatuniverse.net";
|
||||
admin "admin.chatuniverse.net";
|
||||
servicesadmin "csop.chatuniverse.net";
|
||||
netadmin "netadmin.chatuniverse.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* CTCP Networks (irc.ctcp.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 12 February 2002 19:54
|
||||
* Author: Mark
|
||||
* Email: mark@ctcp.net
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "CTCP Networks";
|
||||
default-server "irc.ctcp.net";
|
||||
services-server "services.ctcp.net";
|
||||
stats-server "stats.ctcp.net";
|
||||
help-channel "#opers";
|
||||
hiddenhost-prefix "ctcp";
|
||||
hosts {
|
||||
local "locop.ctcp.net";
|
||||
global "oper.ctcp.net";
|
||||
coadmin "coadmin.ctcp.net";
|
||||
admin "admin.ctcp.net";
|
||||
servicesadmin "csop.ctcp.net";
|
||||
netadmin "netadmin.ctcp.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Dark Kaos Network (irc.darkkaos.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 04 February 2002 03:15
|
||||
* Author: ka0t1c_m4n
|
||||
* Email: drk_kaos@yahoo.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Dark Kaos Network";
|
||||
default-server "irc.darkkaos.net";
|
||||
services-server "services.darkkaos.net";
|
||||
stats-server "stats.darkkaos.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "hide";
|
||||
hosts {
|
||||
local "localop.darkkaos.net";
|
||||
global "would.u.like.to.be.me.com";
|
||||
coadmin "ircop.darkkaos.net";
|
||||
admin "i.hate.terr.oists.net";
|
||||
servicesadmin "Csop.darkkaos.net";
|
||||
netadmin "netadmin.darkkaos.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
set {
|
||||
network-name "DigitalIRC.Net";
|
||||
default-server "irc.digitalirc.net";
|
||||
services-server "Services.DigitalIRC.Net";
|
||||
stats-server "Statistics.DigitalIRC.com";
|
||||
help-channel "#Digitalirc";
|
||||
hiddenhost-prefix "NN";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LocOper.DigitalIRC.Net";
|
||||
global "Oper.DigitalIRC.Net";
|
||||
coadmin "NetAdmin.DigitalIRC.Net";
|
||||
admin "Admin.DigitalIRC.Net";
|
||||
servicesadmin "ServicesOp.DigitalIRC.Net";
|
||||
netadmin "NetAdmin.DigitalIRC.Net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Discussioni.Org (IRC.Discussioni.Org) Network Configuration File
|
||||
*
|
||||
* Added-at: 17 January 2002 22:39
|
||||
* Author: Jollino
|
||||
* Email: jollino@discussioni.org
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Discussioni.Org";
|
||||
default-server "IRC.Discussioni.Org";
|
||||
services-server "Services.Discussioni.Org";
|
||||
stats-server "Stats.Discussioni.Org";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "DISCUSSIONI";
|
||||
hosts {
|
||||
local "LocOp.Discussioni.Org";
|
||||
global "Oper.Discussioni.Org";
|
||||
coadmin "Co-Admin.Discussioni.Org";
|
||||
admin "Admin.Discussioni.Org";
|
||||
servicesadmin "ServOper.Discussioni.Org";
|
||||
netadmin "NetAdmin.Discussioni.Org";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
set {
|
||||
network-name "DragonWings";
|
||||
default-server "irc.dragonwings.org";
|
||||
services-server "saturn.dragonwings.org";
|
||||
stats-server "stats.dragonwings.org";
|
||||
help-channel "#DragonWings";
|
||||
hiddenhost-prefix "dw";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.dragonwings.org";
|
||||
global "ircop.dragonwings.org";
|
||||
coadmin "coadmin.dragonwings.org";
|
||||
admin "admin.dragonwings.org";
|
||||
servicesadmin "serviceop.dragonwings.org";
|
||||
netadmin "netadmin.dragonwings.org";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* GamesCafe (irc.gamerscafe.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 22 August 2001 01:17
|
||||
* Author: Osiris
|
||||
* Email: daniel@linux.ws
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "GamesCafe";
|
||||
default-server "irc.gamerscafe.net";
|
||||
services-server "Services.GamersCafe.Net";
|
||||
stats-server "Services.GamersCafe.Net";
|
||||
help-channel "#GamersCafe";
|
||||
hiddenhost-prefix "GC";
|
||||
hosts {
|
||||
local "localoper.gamerscafe.net";
|
||||
global "oper.gamerscafe.net";
|
||||
coadmin "coadmin.gamerscafe.net";
|
||||
admin "admin.gamerscafe.net";
|
||||
servicesadmin "csop.gamerscafe.net";
|
||||
netadmin "network-admin.gamerscafe.net";
|
||||
host-on-oper yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* German-Elite (irc.german-elite.net) Network Configuration File
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "German-Elite";
|
||||
default-server "irc.german-elite.net";
|
||||
services-server "services.german-elite.net";
|
||||
stats-server "stats.german-elite.net";
|
||||
help-channel "#german-elite";
|
||||
hiddenhost-prefix "GE";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.german-elite.net";
|
||||
global "ircop.german-elite.net";
|
||||
coadmin "coadmin.german-elite.net";
|
||||
admin "admin.german-elite.net";
|
||||
servicesadmin "csop.german-elite.net";
|
||||
netadmin "netadmin.german-elite.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Network Configuration File Template
|
||||
* -----------------------------------------
|
||||
* Added-at: August 2000
|
||||
* Author: Anonymos
|
||||
* E-Mail: Anonymos@Global-IRC.de
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Global";
|
||||
default-server "IRC.Global-IRC.de";
|
||||
services-server "Service.Global-IRC.de";
|
||||
stats-server "Stats.Global-IRC.de";
|
||||
help-channel "#Global-IRC-World";
|
||||
hiddenhost-prefix "GL-IRC";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "Local-IRC-OP.Global-IRC.de";
|
||||
global "Global-IRC-OP.Global-IRC.de";
|
||||
coadmin "CoAdmin.Global-IRC.de";
|
||||
admin "ServerAdmin.Global-IRC.de";
|
||||
servicesadmin "ServiceAdmin.Global-IRC.de";
|
||||
netadmin "NetworkAdmin.Global-IRC.de";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Global-IRC.net Network Configuration File
|
||||
* -----------------------------------------
|
||||
* Added-at: 14 July 1999 00:00 GMT
|
||||
* Author: Stskeeps (Carsten Munk)
|
||||
* E-Mail: stskeeps@global-irc.net
|
||||
* $Id$
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Global-IRC";
|
||||
default-server "irc.global-irc.net";
|
||||
services-server "services.global-irc.net";
|
||||
stats-server "stats.global-irc.net";
|
||||
help-channel "#Global";
|
||||
hiddenhost-prefix "global";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.global-irc.net";
|
||||
global "ircop.global-irc.net";
|
||||
coadmin "coadmin.global-irc.net";
|
||||
admin "admin.global-irc.net";
|
||||
servicesadmin "serviceop.global-irc.net";
|
||||
netadmin "netadmin.global-irc.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* GlobalChat (irc.Globalchat.ca) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 13 March 2001 19:38
|
||||
* Author: WebbyBoy
|
||||
* Email: nykoo@singnet.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "GlobalChat";
|
||||
default-server "irc.Globalchat.ca";
|
||||
services-server "services.globalchat.ca";
|
||||
stats-server "services.globalchat.ca";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "GC";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "Locop.AsiaCom.GlobalChat.ca";
|
||||
global "Oper.AsiaCom.GlobalChat.ca";
|
||||
coadmin "CoAdmin.AsiaCom.GlobalChat.ca";
|
||||
admin "Admin.AsiaCom.GlobalChat.ca";
|
||||
servicesadmin "Csop.AsiaCom.GlobalChat.ca";
|
||||
netadmin "NetAdmin.AsiaCom.GlobalChat.ca";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* IceChat (irc.icechat.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 19 February 2002 16:55
|
||||
* Author: Rosco
|
||||
* Email: pssystem@home.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "IceChat";
|
||||
default-server "irc.icechat.net";
|
||||
services-server "services.icechat.net";
|
||||
stats-server "stats.icechat.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "00";
|
||||
hosts {
|
||||
local "locop.icechat.net";
|
||||
global "oper.icechat.net";
|
||||
coadmin "coadmin.icechat.net";
|
||||
admin "admin.icechat.net";
|
||||
servicesadmin "csop.icechat.net";
|
||||
netadmin "netadmin.icechat.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
set {
|
||||
network-name "Infinity-IRC.org";
|
||||
default-server "irc.infinity-irc.org";
|
||||
services-server "services.infinity-irc.org";
|
||||
stats-server "stats.infinity-irc.org";
|
||||
help-channel "#Infinity";
|
||||
hiddenhost-prefix "Infinity";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LOCop.Infinity-IRC.org";
|
||||
global "IRCop.Infinity-IRC.org";
|
||||
coadmin "IRCop-CoAdmin.Infinity-IRC.org";
|
||||
admin "IRCop-Admin.Infinity-IRC.org";
|
||||
servicesadmin "IRCop-ServiceAdmin.Infinity-IRC.org";
|
||||
netadmin "IRCop-NetAdmin.Infinity-IRC.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* ROXnet (irc.rox.za.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 14 July 1999 00:00 GMT
|
||||
* Author: Stskeeps (Carsten Munk)
|
||||
* E-Mail: stskeeps@roxnet.org
|
||||
* $Id$
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "IRCsystems";
|
||||
default-server "irc.ircsystems.net";
|
||||
services-server "services.ircsystems.net";
|
||||
stats-server "stats.ircsystems.net";
|
||||
help-channel "#IRCsystems";
|
||||
hiddenhost-prefix "rox";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.ircsystems.net";
|
||||
global "ircop.ircsystems.net";
|
||||
coadmin "coadmin.ircsystems.net";
|
||||
admin "admin.ircsystems.net";
|
||||
servicesadmin "csops.ircsystems.net";
|
||||
netadmin "netadmin.ircsystems.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Isno (irc.isno.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 11 mars 2001 22:05
|
||||
* Author: Shad
|
||||
* Email: olivier@isno.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Isno";
|
||||
default-server "irc.isno.net";
|
||||
services-server "services.isno.net";
|
||||
stats-server "stats.isno.net";
|
||||
help-channel "#aide";
|
||||
hiddenhost-prefix "isno";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.phazenet.com";
|
||||
global "oper.isno.net";
|
||||
coadmin "coadmin.isno.net";
|
||||
admin "admin.isno.net";
|
||||
servicesadmin "csop.isno.net";
|
||||
netadmin "netadmin.isno.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* l33t-irc.com (irc.l33t-irc.com) Network Configuration File
|
||||
*
|
||||
* Added-at: 04 January 2002 15:46
|
||||
* Author: [LW]FlOwBiE
|
||||
* Email: flowbie@l33t-irc.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "l33t-irc.com";
|
||||
default-server "irc.l33t-irc.com";
|
||||
services-server "services.l33t-irc.com";
|
||||
stats-server "stats.l33t-irc.com";
|
||||
help-channel "#l33t-irc.com";
|
||||
hiddenhost-prefix "l33t-irc.com";
|
||||
hosts {
|
||||
local "local.l33t-irc.com";
|
||||
global "l33t-irc";
|
||||
coadmin "coadmin.l33t-irc.com";
|
||||
admin "admin.l33t-irc.com";
|
||||
servicesadmin "servicesadmin.l33t-irc.com";
|
||||
netadmin "netadmin.l33t-irc.com";
|
||||
host-on-oper no;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* LCIrc (irc.lcirc.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 16 June 2001 11:22
|
||||
* Author: RaYmAn
|
||||
* Email: rayman@skumler.net
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "LCIrc";
|
||||
default-server "irc.lcirc.net";
|
||||
services-server "services.lcirc.net";
|
||||
stats-server "stats.lcirc.net";
|
||||
help-channel "#lcirc";
|
||||
hiddenhost-prefix "lcirc";
|
||||
hosts {
|
||||
local "locop.lcirc.net";
|
||||
global "oper.lcirc.net";
|
||||
coadmin "coadmin.lcirc.net";
|
||||
admin "admin.lcirc.net";
|
||||
servicesadmin "csop.lcirc.net";
|
||||
netadmin "netadmin.lcirc.net";
|
||||
host-on-oper no;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,250 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# makenet v1.0 - generates a network file for UnrealIRCd
|
||||
#
|
||||
# you may freely use this file with any other program as
|
||||
# long as the credits remain intact
|
||||
#
|
||||
# (c) 2000 codemastr (Dominick Meglio) and the UnrealIRCd Team
|
||||
|
||||
VERSION="2.2"
|
||||
DATE=`date "+%d %B %Y %H:%M"`
|
||||
FILE="mynet.network"
|
||||
EXISTS="y"
|
||||
NICK="MyNick"
|
||||
EMAIL="me@mynet.org"
|
||||
NETWORK="My IRC Network"
|
||||
DEFSERV="irc.mynet.org"
|
||||
SERVICES_NAME="services.mynet.org"
|
||||
OPER_HOST="oper.mynet.org"
|
||||
ADMIN_HOST="admin.mynet.org"
|
||||
LOCOP_HOST="locop.mynet.org"
|
||||
CSOP_HOST="csop.mynet.org"
|
||||
NETADMIN_HOST="netadmin.mynet.org"
|
||||
COADMIN_HOST="coadmin.mynet.org"
|
||||
HIDDEN_HOST="hide"
|
||||
NETDOMAIN="mynet.org"
|
||||
HELPCHAN="#help"
|
||||
STATS_SERVER="stats.mynet.org"
|
||||
INAH="1"
|
||||
SUBMIT="y"
|
||||
|
||||
# Checking out how to specify not to make a new line with the current OS
|
||||
c=''
|
||||
n=''
|
||||
2>/dev/null
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ]; then
|
||||
c='\c'
|
||||
else
|
||||
n='-n'
|
||||
fi
|
||||
|
||||
clear
|
||||
echo "Welcome to the UnrealIRCd network file generator"
|
||||
echo "If you need help to set the IRCd up,"
|
||||
echo "mail unreal-support@lists.sourceforge.net or ask"
|
||||
echo "at IRC: /server irc.ircsystems.net, /join #unrealircd"
|
||||
echo ""
|
||||
echo "For any sake, read Unreal.nfo and read doc/faq before asking"
|
||||
echo "questions"
|
||||
echo "[Enter to Begin]"
|
||||
read cc
|
||||
|
||||
echo ""
|
||||
echo "What do you want your network file to be called?"
|
||||
echo $n "[$FILE] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
FILE="$cc"
|
||||
fi
|
||||
|
||||
if [ -f $FILE ]; then
|
||||
echo ""
|
||||
echo "$FILE already exists do you want to override it?"
|
||||
echo $n "[$EXISTS] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
EXISTS="$cc"
|
||||
fi
|
||||
case "$EXISTS" in
|
||||
[Nn]*)
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your IRC nickname?"
|
||||
echo $n "[$NICK] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NICK="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your email address?"
|
||||
echo $n "[$EMAIL] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
EMAIL="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your IRC network?"
|
||||
echo $n "[$NETWORK] -> $c"
|
||||
read cc
|
||||
if [ ! -z "$cc" ]; then
|
||||
NETWORK="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the default server for your network?"
|
||||
echo $n "[$DEFSERV] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
DEFSERV="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your services server?"
|
||||
echo $n "[$SERVICES_NAME] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
SERVICES_NAME="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host opers will get when they oper up?"
|
||||
echo $n "[$OPER_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
OPER_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host services opers will get when they oper up?"
|
||||
echo $n "[$CSOP_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
CSOP_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host admins will get when they oper up?"
|
||||
echo $n "[$ADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
ADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host local opers will get when they oper up?"
|
||||
echo $n "[$LOCOP_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
LOCOP_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host coadmins will get when they oper up?"
|
||||
echo $n "[$COADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
COADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host netadmins will get when they oper up?"
|
||||
echo $n "[$NETADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NETADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What do you want the prefix for the hidden hosts to be?"
|
||||
echo $n "[$HIDDEN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
HIDDEN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your network's domain name?"
|
||||
echo $n "[$NETDOMAIN] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NETDOMAIN="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your network's help channel?"
|
||||
echo $n "[$HELPCHAN] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
HELPCHAN="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your stats server?"
|
||||
echo $n "[$STATS_SERVER] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
STATS_SERVER="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Do you want oper's hosts to be changed on /oper?"
|
||||
echo "1 = yes 0 = no"
|
||||
echo $n "[$INAH] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
INAH="$cc"
|
||||
fi
|
||||
|
||||
# write the actual conf
|
||||
|
||||
cat > $FILE << __EOF__
|
||||
/*
|
||||
* $NETWORK ($DEFSERV) Network Configuration File
|
||||
*
|
||||
* Added-at: $DATE
|
||||
* Author: $NICK
|
||||
* Email: $EMAIL
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "$NETWORK";
|
||||
default-server "$DEFSERV";
|
||||
services-server "$SERVICES_NAME";
|
||||
stats-server "$STATS_SERVER";
|
||||
help-channel "$HELPCHAN";
|
||||
hiddenhost-prefix "$HIDDEN_HOST";
|
||||
hosts {
|
||||
local "$LOCOP_HOST";
|
||||
global "$OPER_HOST";
|
||||
coadmin "$COADMIN_HOST";
|
||||
admin "$ADMIN_HOST";
|
||||
servicesadmin "$CSOP_HOST";
|
||||
netadmin "$NETADMIN_HOST";
|
||||
__EOF__
|
||||
if [ "$INAH" = "1" ]; then
|
||||
echo " host-on-oper-up yes;" >> $FILE
|
||||
fi
|
||||
if [ "$INAH" = "0" ]; then
|
||||
echo " host-on-oper-up no;" >> $FILE
|
||||
fi
|
||||
echo " };" >> $FILE
|
||||
echo "};" >> $FILE
|
||||
__EOF__
|
||||
|
||||
echo ""
|
||||
echo "" >> ../unrealircd.conf
|
||||
echo "// Added by makenet $DATE" >> ../unrealircd.conf
|
||||
echo "include \"networks/$FILE\";" >> ../unrealircd.conf
|
||||
echo "All done. I have added \"include \"networks/$FILE\"; to your unrealircd.conf"
|
||||
echo "You might want to edit it if you have done makenet before"
|
||||
echo "Thank you for choosing UnrealIRCd"
|
||||
exit
|
||||
@@ -1,38 +0,0 @@
|
||||
/* Networks index file - do not touch please
|
||||
* Please report outdated entries to unreal-networks@lists.sourceforge.net
|
||||
*
|
||||
* NOTE: These networks are in no way affiliated with UnrealIRCd other than the fact
|
||||
* that they use it. The UnrealIRCd Team takes no responsibility for the content
|
||||
* of these networks.
|
||||
*/
|
||||
|
||||
networks/awesomechristians.network: Awesome Christians Chat Network (http://www.awesomechristians.com)
|
||||
networks/axenet.network ..........: AXEnet (http://www.axenet.org)
|
||||
networks/bunker7.network .........: Bunker7 (http://www.bunker7.net)
|
||||
networks/burnnet.network .........: BuRnNET (http://www.burncycl.net)
|
||||
networks/cabonet.network .........: CaboNet (http://www.cabonet.org)
|
||||
networks/chatcrap.network ........: ChatCrap (http://www.chatcrap.com)
|
||||
networks/chatuniverse.network ....: ChatUniverse (http://www.chatuniverse.net)
|
||||
networks/ctcp.network ............: CTCP Networks (http://www.ctcp.net)
|
||||
networks/darkkaos.network ........: Dark Kaos Network (http://www.darkkaos.net)
|
||||
networks/digitalirc.network ......: DigitalIRC (http://www.digitalirc.net)
|
||||
networks/discussioni.network .....: Discussioni.org (http://www.discussioni.org)
|
||||
networks/dragonwings.network .....: DragonWings (http://www.dragonwings.org)
|
||||
networks/gamescafe.network .......: GamesCafe (http://www.gamerscafe.net)
|
||||
networks/german-elite.network ....: German-Elite (http://www.german-elite.net)
|
||||
networks/german-global-irc.network: German Global IRC (http://www.global-irc.de)
|
||||
networks/globalchat.network ......: GlobalChat (http://www.globalchat.ca)
|
||||
networks/global-irc.network ......: Global-IRC (http://www.global-irc.net)
|
||||
networks/icechat.network .........: IceChat (http://www.icechat.net)
|
||||
networks/infinity.network ........: Infinity-IRC.org (http://www.infinity-irc.org)
|
||||
networks/isno.network ............: Isno (http://www.isno.net)
|
||||
networks/l33t-irc.network ........: L33T-IRC (http://www.l33t-irc.com)
|
||||
networks/lcirc.network ...........: LCIrc (http://www.lcirc.net)
|
||||
networks/outsiderz.network .......: Outsiderz (http://www.outsiderz.com)
|
||||
networks/phazenet.network ........: PhazeNet (http://www.phazenet.com)
|
||||
networks/stormdancing.network ....: StormDancing (http://www.stormdancing.net)
|
||||
networks/thainet.network .........: Thai IRC Network
|
||||
networks/unitedirc-org.network ...: Unitedirc (http://www.unitedirc.org)
|
||||
networks/wazzza.network ..........: wazZza (http://www.wazzza.org)
|
||||
networks/x-irc.network ...........: x-irc (http://www.x-irc.net)
|
||||
networks/zirc.network ............: ZiRC (http://www.zirc.org)
|
||||
@@ -1,26 +0,0 @@
|
||||
*
|
||||
* Outsiderz.com (irc.Outsiderz.com) Network Configuration File
|
||||
*
|
||||
* Added-at: 29 January 2002 07:35
|
||||
* Author: DrDeath
|
||||
* Email: DrDeath@hotmail.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Outsiderz.com";
|
||||
default-server "irc.Outsiderz.com";
|
||||
services-server "services.outsiderz.com";
|
||||
stats-server "stats.outsiderz.com";
|
||||
help-channel "#Outsiderz";
|
||||
hiddenhost-prefix "Outsiderz";
|
||||
hosts {
|
||||
local "LocOP.Outsiderz.com";
|
||||
global "IrcOP.Outsiderz.com";
|
||||
coadmin "CoAdmin.Outsiderz.com";
|
||||
admin "Admin.Outsiderz.com";
|
||||
servicesadmin "CsOP.Outsiderz.com";
|
||||
netadmin "NetAdmin.Outsiderz.com";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* PhazeNet (irc.phazenet.com) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 01 March 2001 02:00
|
||||
* Author: Lady_Rusty
|
||||
* Email: ladyrusty@phazenet.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "PhazeNet";
|
||||
default-server "irc.phazenet.com";
|
||||
services-server "services.phazenet.com";
|
||||
stats-server "stats.phazenet.com";
|
||||
help-channel "#services";
|
||||
hiddenhost-prefix "PhazeNet";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.phazenet.com";
|
||||
global "oper.phazenet.com";
|
||||
coadmin "coadmin.phazenet.com";
|
||||
admin "admin.phazenet.com";
|
||||
servicesadmin "csop.phazenet.com";
|
||||
netadmin "netadmin.phazenet.com";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,20 +0,0 @@
|
||||
set {
|
||||
network-name "tormdancing.Net";
|
||||
default-server "irc.stormdancing.net";
|
||||
services-server "Services.Stormdancing.Net";
|
||||
stats-server "stats.ircnet.org";
|
||||
help-channel "#Help";
|
||||
hiddenhost-prefix "Stormdancing";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LocOp.Stormdancing.Net";
|
||||
global "IRCop.Stormdancing.Net";
|
||||
coadmin "CoAdmin.Stormdancing.Net";
|
||||
admin "Admin.Stormdancing.Net";
|
||||
servicesadmin "ServiceOp.Stormdancing.Net";
|
||||
netadmin "NetAdmin.Stormdancing.Net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user