1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-21 17:56:37 +02:00

240 Commits

Author SHA1 Message Date
Bram Matthys 45d04d8940 - Undid that. Version is now 3.3-willneverbereleased.
Added comment to changelog:
*****

THIS WAS THE DEVELOPMENT BRANCH FOR UNREAL3.3*. HOWEVER, 3.3* HAS BEEN
DISCONTINUED. FOCUS IS ON 4.* (NEXT-GEN IRCD) AND 3.2* (CURRENT STABLE
IRCD).
FOR 3.2* USE THE BRANCH 'unreal3_2_fixes'
DO NOT USE THIS 3.3* BRANCH FOR ANYTHING OTHER THAN COPYING FEATURES/FIXES
FROM 3.3* TO 3.2* !!

*****
2007-10-24 12:18:52 +00:00
stskeeps 2711cd2c86 - Changed version into 3.2.8 as this will be the target for devel branch 2007-07-18 11:25:14 +00:00
stskeeps a212fe9347 implementing multi service support 2007-07-15 14:21:29 +00:00
stskeeps ea303f149d - Small fix in s_conf.c and Velcro 2007-06-27 11:30:08 +00:00
aquanight ca86e3b898 Config -advanced for --with-moduleswhich 2007-06-22 15:17:22 +00:00
stskeeps 83384cef2a - Fixed typo in new module build switch 2007-06-22 14:30:47 +00:00
stskeeps 38c54cf5fb - Added Command *CommandAdd_Alias(Module *module, char *cmd, char *tok, int
(*func)(aClient*, aClient*, int, char**, char *sentcmd), unsigned char
  params, int flags), which will add a command that gets the command that
  the user sent along in sentcmd
2007-06-22 12:44:13 +00:00
stskeeps c5da05f68b - Added -b flag to install in make install, so src/ircd, INSTALL_CONFS,
src/modules/*.so and *.pem is backed up to name~ if already exists
2007-06-22 09:46:30 +00:00
stskeeps 5f7a7dc9b0 - Renamed spamfilter.conf to spamfilters.conf.sample, to have one less
problem with overwriting during install
2007-06-22 09:21:09 +00:00
stskeeps f84c1da01d #0003396 regarding not copying server.*pem 2007-06-22 08:25:42 +00:00
wolfsage dc69fdc2b7 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2446
diff -u -r1.1.1.1.2.1.2.1.2.2446 Changes
--- Changes	21 Jun 2007 19:37:46 -0000	1.1.1.1.2.1.2.1.2.2446
+++ Changes	22 Jun 2007 03:25:21 -0000
@@ -1809,3 +1809,5 @@
   a ./Config option. Default is commandsandmodules. Any takers?
 - Changed logging into not open/close constantly, #0002943. This may leaks
   fds and cause problems, so its a heads up
+- Some minor changes to unreal.in, to fix unreal stop, start, and
+  restart a bit.
2007-06-22 03:26:07 +00:00
stskeeps 81627d4e9e - Changed logging into not open/close constantly, #0002943. This may leaks
fds and cause problems, so its a heads up
2007-06-21 19:37:47 +00:00
stskeeps b4f2619a64 - Added configure --with-moduleswhich=PARA where PARA can be:
onlycommands = only build commands.so (plus chanmodes)
  onlymodules = only build m_* modules (plus chanmodes)
  commandsandmodules = build both. We still need to add this as a default or
  a ./Config option. Default is commandsandmodules. Any takers?
2007-06-21 19:02:46 +00:00
stskeeps 2944546c1d - #0003399 changing numeric 307 to has identified for this nickname 2007-06-21 18:13:06 +00:00
stskeeps 64b46a7123 - Fixed a MYOSNAME bug (ret is <0 if failure)
- Changed regexp engine to PCRE. Heads up: May severely break things. You
  need to ./Config -q; make clean all to get this working.
- Laid groundwork for seperated build (onlycommands, commandsandmodules,
  onlymodules)
2007-06-20 00:35:07 +00:00
aquanight cb7856a788 uname() vs uname #0001438 2007-06-17 22:38:55 +00:00
stskeeps 6f20433c8b - Made m_tkl use NULL instead of TOK_NONE 2007-06-17 12:56:23 +00:00
stskeeps 002b4478ee - #0003363 patched by adrianp, changing IRC_UID and IRC_GID into
defines IRC_USER, IRC_GROUP which is a string specifiying what user name/
  group name that should be changed into, instead of a hardcoded gid/uid.
  This should make it easier for packaged binary releases to work (even
  though this probably means Debian will take us in, ick .. Can't we pull
  a new fight with debian-legal again?)
2007-06-17 12:35:17 +00:00
stskeeps 920291f4ba *** empty log message *** 2007-06-15 19:40:12 +00:00
stskeeps 05074adef2 - #0001740 reported by Trocotronic, making the IRCd send ERROR : to all
links with possible reason for RESTART; like /die does it.
2007-06-12 21:36:20 +00:00
stskeeps 2eda2e95ca - #0002475 reported by aquanight on detecting \'s in module filenames on
win32 and not do ./module for it
2007-06-12 21:30:08 +00:00
stskeeps 925cf08021 - #0003177 patched by aegis, changing non-modular add_Command to
CommandAdd's through a huge patch. This may break some things, so heads
  up. From now on add_Command is unsafe land for modules and may be removed
  without warning.
2007-06-12 20:53:11 +00:00
stskeeps 112a576c9c - #0002172 reported by Stealth, patched by WolfSage, fixing if you have an
admin block, and forget a semicolon on a line, Unreal will proceed to use
  the block with no error, but the information will be incorrect/incomplete.
2007-06-11 22:26:07 +00:00
stskeeps 7d14f833e6 - Broke compile with portnum fix, fixed
- #0003027 reported by Trocotronic, regarding doing -l <para> on SJOIN,
  and not -l as supposed. This may have caused desyncs
2007-06-11 21:51:20 +00:00
stskeeps 36ba7623cf - Removed anything involving portnum global variable. Not proper in
newconf world
- #0002920 reported by aquanight, regarding command line mkpasswd,
  patched by BuHHunyx. Syntax: wircd.exe -P|-p authmethod password.
  If it is -p, it will get shown in a MessageBox, -P it will get copied
to clipboard
2007-06-11 18:36:05 +00:00
wolfsage 83a7cdd734 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2431
diff -u -r1.1.1.1.2.1.2.1.2.2431 Changes
--- Changes	10 Jun 2007 08:33:04 -0000	1.1.1.1.2.1.2.1.2.2431
+++ Changes	10 Jun 2007 18:25:29 -0000
@@ -1758,3 +1758,5 @@
 - #0002451 reported by GSF19 regarding *** Q: %s tried to kick you, when
   it should be *** q: %s. (Actually that's ugly too but at least it
   matches the umode for now)
+- #0002695 reported by w00t regarding unused check_registered and
+  check_registered_user calls in s_misc.c
2007-06-10 18:25:35 +00:00
wolfsage 9b866fa123 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2430
diff -u -r1.1.1.1.2.1.2.1.2.2430 Changes
--- Changes	10 Jun 2007 07:58:43 -0000	1.1.1.1.2.1.2.1.2.2430
+++ Changes	10 Jun 2007 08:33:01 -0000
@@ -1755,3 +1755,6 @@
 - #0001518 reported by Cnils regarding new WHO functionality: -c with
   no args now shows all users not in a channel if you are an IRCOp,
   and +c shows all users in at least 1 channel.
+- #0002451 reported by GSF19 regarding *** Q: %s tried to kick you, when
+  it should be *** q: %s. (Actually that's ugly too but at least it
+  matches the umode for now)
2007-06-10 08:33:05 +00:00
wolfsage b7a5fdb989 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2429
diff -u -r1.1.1.1.2.1.2.1.2.2429 Changes
--- Changes	10 Jun 2007 04:26:07 -0000	1.1.1.1.2.1.2.1.2.2429
+++ Changes	10 Jun 2007 07:58:39 -0000
@@ -1752,5 +1752,6 @@
 - #0001317 reported by thilo regarding removal of (username) being
   appended to topics set by U:Lined servers.
 - Added missing semicolons to some help.conf entries
-- #0001518 reported by Cnils regarding new WHO functionality: +c with
-  no args now shows all users not in a channel if you are an IRCOp
+- #0001518 reported by Cnils regarding new WHO functionality: -c with
+  no args now shows all users not in a channel if you are an IRCOp,
+  and +c shows all users in at least 1 channel.
2007-06-10 07:58:43 +00:00
wolfsage 7b2b77df4e Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2428
diff -u -r1.1.1.1.2.1.2.1.2.2428 Changes
--- Changes	10 Jun 2007 03:02:24 -0000	1.1.1.1.2.1.2.1.2.2428
+++ Changes	10 Jun 2007 04:26:04 -0000
@@ -1752,3 +1752,5 @@
 - #0001317 reported by thilo regarding removal of (username) being
   appended to topics set by U:Lined servers.
 - Added missing semicolons to some help.conf entries
+- #0001518 reported by Cnils regarding new WHO functionality: +c with
+  no args now shows all users not in a channel if you are an IRCOp
2007-06-10 04:26:08 +00:00
wolfsage 4238193d07 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2427
diff -u -r1.1.1.1.2.1.2.1.2.2427 Changes
--- Changes	10 Jun 2007 00:38:02 -0000	1.1.1.1.2.1.2.1.2.2427
+++ Changes	10 Jun 2007 03:02:19 -0000
@@ -1751,3 +1751,4 @@
 - Updated c-ares to latest release (1.4.0)
 - #0001317 reported by thilo regarding removal of (username) being
   appended to topics set by U:Lined servers.
+- Added missing semicolons to some help.conf entries
2007-06-10 03:02:24 +00:00
wolfsage 7e96a1c9ee Forgot to reference bug reporter 2007-06-10 00:38:02 +00:00
wolfsage 4458de5c5b Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2425
diff -u -r1.1.1.1.2.1.2.1.2.2425 Changes
--- Changes	9 Jun 2007 23:05:14 -0000	1.1.1.1.2.1.2.1.2.2425
+++ Changes	10 Jun 2007 00:32:44 -0000
@@ -1749,3 +1749,5 @@
 - #0003340 bug regarding compile warnings for lib/tre-parse.c. Upgraded
   tre to latest release (0.7.5)
 - Updated c-ares to latest release (1.4.0)
+- #0001317 reported by thilo regarding removal of (username) being
+  appended to topics set by U:Lined servers.
2007-06-10 00:33:19 +00:00
wolfsage d03f91e9b4 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2424
diff -u -r1.1.1.1.2.1.2.1.2.2424 Changes
--- Changes	9 Jun 2007 20:32:54 -0000	1.1.1.1.2.1.2.1.2.2424
+++ Changes	9 Jun 2007 23:04:41 -0000
@@ -1748,3 +1748,4 @@
 - #0003107 feature request by Sakkath regarding new WHO flag: +p <port>
 - #0003340 bug regarding compile warnings for lib/tre-parse.c. Upgraded
   tre to latest release (0.7.5)
+- Updated c-ares to latest release (1.4.0)
2007-06-09 23:05:15 +00:00
wolfsage fc2fad2c92 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2423
diff -u -r1.1.1.1.2.1.2.1.2.2423 Changes
--- Changes	9 Jun 2007 19:15:18 -0000	1.1.1.1.2.1.2.1.2.2423
+++ Changes	9 Jun 2007 20:32:30 -0000
@@ -1746,3 +1746,5 @@
 - #0003382 reported by stealth regarding nested C-style comments messing
 - up example.conf parsing
 - #0003107 feature request by Sakkath regarding new WHO flag: +p <port>
+- #0003340 bug regarding compile warnings for lib/tre-parse.c. Upgraded
+  tre to latest release (0.7.5)
2007-06-09 20:32:55 +00:00
wolfsage fcbb0fcd69 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2422
diff -u -r1.1.1.1.2.1.2.1.2.2422 Changes
--- Changes	9 Jun 2007 18:00:05 -0000	1.1.1.1.2.1.2.1.2.2422
+++ Changes	9 Jun 2007 19:15:14 -0000
@@ -1745,3 +1745,4 @@
   directive which loads velcro modules
 - #0003382 reported by stealth regarding nested C-style comments messing
 - up example.conf parsing
+- #0003107 feature request by Sakkath regarding new WHO flag: +p <port>
2007-06-09 19:15:18 +00:00
wolfsage f4850d25c0 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2421
diff -u -r1.1.1.1.2.1.2.1.2.2421 Changes
--- Changes	6 Jun 2007 17:50:32 -0000	1.1.1.1.2.1.2.1.2.2421
+++ Changes	9 Jun 2007 18:00:01 -0000
@@ -1743,4 +1743,5 @@
 - Some more Velcro changes to make it fit into 3.3
 - Some more actual working Velcro code, adding "loadmodule4" config
   directive which loads velcro modules
-
+- #0003382 reported by stealth regarding nested C-style comments messing
+- up example.conf parsing
2007-06-09 18:00:05 +00:00
stskeeps a0870fb76d - Some more actual working Velcro code, adding loadmodule4 config
directive which loads velcro modules
2007-06-06 17:50:33 +00:00
stskeeps 77317ec9f7 - Added HookAddCfg as a more typesafe way to add
HOOKTYPE_CONFIGRUN/CONFIGTEST. Was needed for Velcro and possibly other
  situations
- Some more Velcro changes to make it fit into 3.3
2007-06-06 15:36:40 +00:00
wolfsage 943d5ad6d5 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2418
diff -u -r1.1.1.1.2.1.2.1.2.2418 Changes
--- Changes	5 Jun 2007 19:46:32 -0000	1.1.1.1.2.1.2.1.2.2418
+++ Changes	5 Jun 2007 20:00:33 -0000
@@ -1735,3 +1735,5 @@
 - Changed Velcro/build to actually be able to compile to get included into
   u3 space
 - Patched #002531 by Stealth, removing /stats H
+- Fixed a bug introduced by another patch that caused log files to be
+  created without any permissions
2007-06-05 20:00:42 +00:00
stskeeps ca2b4ddecc - Changed Velcro/build to actually be able to compile to get included into
u3 space
- Patched #002531 by Stealth, removing /stats H
2007-06-05 19:46:32 +00:00
stskeeps 94d36995e5 - Changed Velcro/build script to fix a bug 2007-06-05 19:07:26 +00:00
stskeeps 5849092137 - Adding Velcro (the build system from unreal4), for some experimentation
with a new module API. Is currently not autoconf'ied, makefile'ed, etc.
  May the screaming commence.
2007-06-04 21:05:36 +00:00
stskeeps f119a2cea0 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2414
diff -u -r1.1.1.1.2.1.2.1.2.2414 Changes
--- Changes	30 May 2007 21:10:04 -0000	1.1.1.1.2.1.2.1.2.2414
+++ Changes	4 Jun 2007 17:21:12 -0000
@@ -1726,3 +1726,5 @@
   "UnrealIRCd is not running" as opposed to "kill: 3426: no such process" etc.
 - #0003368 patched by Stealth giving users access to do /module on remote
   servers
+- #0002677 reported by aquanight, removing listen::options::remoteadmin,
+  listen::options::mask, set::options::no-stealth
2007-06-04 17:21:21 +00:00
stskeeps 6357fb1f07 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2413
diff -u -r1.1.1.1.2.1.2.1.2.2413 Changes
--- Changes	27 May 2007 20:50:19 -0000	1.1.1.1.2.1.2.1.2.2413
+++ Changes	30 May 2007 21:09:43 -0000
@@ -1724,3 +1724,5 @@
 - #0002833 reported and patched by tabrisnet, implementing UHNAMES
 - #0003156 reported by Bricker: Made ./unreal dump some nicer errors eg
   "UnrealIRCd is not running" as opposed to "kill: 3426: no such process" etc.
+- #0003368 patched by Stealth giving users access to do /module on remote
+  servers
2007-05-30 21:10:04 +00:00
aquanight f880c03323 Nicer error messages for ./unreal 2007-05-27 20:50:19 +00:00
aquanight 52743f1871 Nicer error messages for ./unreal 2007-05-27 20:48:39 +00:00
stskeeps 56ce16788f Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2410
diff -u -r1.1.1.1.2.1.2.1.2.2410 Changes
--- Changes	20 May 2007 02:59:15 -0000	1.1.1.1.2.1.2.1.2.2410
+++ Changes	20 May 2007 21:18:59 -0000
@@ -1721,3 +1721,4 @@
   random keys 10 ~ 20 characters in length (doesn't (yet) work for Win32).
 - Misc fix for disabling extban chains, should've done stuff in our autoconf
   stuff instead of hacking configure directly :P .
+- #0002833 reported and patched by tabrisnet, implementing UHNAMES
2007-05-20 21:19:05 +00:00
aquanight 542fa2bcfc Added ./unreal gencloak 2007-05-20 02:59:16 +00:00
wolfsage ee77248055 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2408
diff -u -r1.1.1.1.2.1.2.1.2.2408 Changes
--- Changes	18 May 2007 08:02:32 -0000	1.1.1.1.2.1.2.1.2.2408
+++ Changes	20 May 2007 02:29:40 -0000
@@ -1715,4 +1715,5 @@
   originally by the inspircd team.
 - Fixed a number of compile errors/runtime errors on win32 (also a SSL
   brainfart regarding DH), #0003345, patched by fez
-
+- #0003350 - reported by aquanight regarding ./unreal restart not
+  working in 3.3*. Now works properly again.
2007-05-20 02:29:54 +00:00
stskeeps 50d7a4ecea Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2407
diff -u -r1.1.1.1.2.1.2.1.2.2407 Changes
--- Changes	17 May 2007 13:22:12 -0000	1.1.1.1.2.1.2.1.2.2407
+++ Changes	18 May 2007 08:02:21 -0000
@@ -1713,3 +1713,6 @@
 - Added set::ssl::dh to indicate DH parameters. These are needed to support
   DSA certificates and should probably make them work from now on. Code
   originally by the inspircd team.
+- Fixed a number of compile errors/runtime errors on win32 (also a SSL
+  brainfart regarding DH), #0003345, patched by fez
+
2007-05-18 08:02:33 +00:00
stskeeps c643895de7 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2406
diff -u -r1.1.1.1.2.1.2.1.2.2406 Changes
--- Changes	17 May 2007 11:38:07 -0000	1.1.1.1.2.1.2.1.2.2406
+++ Changes	17 May 2007 13:22:05 -0000
@@ -1710,3 +1710,6 @@
 - Added set::ssl::server-cipher-list, #002368 requested by Beastie
 - Added set::ssl::renegotiate-bytes, set::ssl:renegotiate-timeout, #0002971
   suggested by tabrisnet. Gets activated when >0. Please set sane values.
+- Added set::ssl::dh to indicate DH parameters. These are needed to support
+  DSA certificates and should probably make them work from now on. Code
+  originally by the inspircd team.
2007-05-17 13:22:13 +00:00
stskeeps 4b13535e28 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2405
diff -u -r1.1.1.1.2.1.2.1.2.2405 Changes
--- Changes	17 May 2007 10:52:42 -0000	1.1.1.1.2.1.2.1.2.2405
+++ Changes	17 May 2007 11:37:57 -0000
@@ -1708,3 +1708,5 @@
 - IRCd now also sets the &me fd as being non blocking (wasn't before, that
   was odd..)
 - Added set::ssl::server-cipher-list, #002368 requested by Beastie
+- Added set::ssl::renegotiate-bytes, set::ssl:renegotiate-timeout, #0002971
+  suggested by tabrisnet. Gets activated when >0. Please set sane values.
2007-05-17 11:38:08 +00:00
stskeeps bcd5d4a339 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2404
diff -u -r1.1.1.1.2.1.2.1.2.2404 Changes
--- Changes	17 May 2007 09:56:42 -0000	1.1.1.1.2.1.2.1.2.2404
+++ Changes	17 May 2007 10:52:33 -0000
@@ -1707,3 +1707,4 @@
   through this under load, and speeding up connection).
 - IRCd now also sets the &me fd as being non blocking (wasn't before, that
   was odd..)
+- Added set::ssl::server-cipher-list, #002368 requested by Beastie
2007-05-17 10:52:42 +00:00
stskeeps 832c612317 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2403
diff -u -r1.1.1.1.2.1.2.1.2.2403 Changes
--- Changes	15 May 2007 00:38:07 -0000	1.1.1.1.2.1.2.1.2.2403
+++ Changes	17 May 2007 09:56:36 -0000
@@ -1702,3 +1702,8 @@
   concept, so please tell me if some OS'es break bigtime.
 - #003075 - reported by aquanight regarding log block failing silently
   for non-creatable log files. Now fails with an error message.
+- Now using #0003028, with more intelligent accept() handling. The IRCd
+  will now attempt to accept() up to LISTEN_SIZE (possibly saving CPU
+  through this under load, and speeding up connection).
+- IRCd now also sets the &me fd as being non blocking (wasn't before, that
+  was odd..)
2007-05-17 09:56:42 +00:00
wolfsage c9d21d8ab0 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2402
diff -u -r1.1.1.1.2.1.2.1.2.2402 Changes
--- Changes	14 May 2007 20:47:03 -0000	1.1.1.1.2.1.2.1.2.2402
+++ Changes	15 May 2007 00:37:58 -0000
@@ -1700,3 +1700,5 @@
 - Added m_template.cpp and 'make custommodulecpp MODULEFILE=m_template'
   ability - meaning, C++ modules for Unreal. This is mostly a proof of
   concept, so please tell me if some OS'es break bigtime.
+- #003075 - reported by aquanight regarding log block failing silently
+  for non-creatable log files. Now fails with an error message.
2007-05-15 00:38:07 +00:00
stskeeps 0e87ac8aaf Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2401
diff -u -r1.1.1.1.2.1.2.1.2.2401 Changes
--- Changes	14 May 2007 19:26:07 -0000	1.1.1.1.2.1.2.1.2.2401
+++ Changes	14 May 2007 20:46:34 -0000
@@ -1695,3 +1695,8 @@
 - More cleanup - this may potentially break some OS'es, but let us catch
   this in testing
 - Fixed CommandAdd prototype a bit
+- Made autoconf detect c++ compiler, now availiable in CXX
+- Made the actual ircd be compiled by c++ compiler (linking, not source)
+- Added m_template.cpp and 'make custommodulecpp MODULEFILE=m_template'
+  ability - meaning, C++ modules for Unreal. This is mostly a proof of
+  concept, so please tell me if some OS'es break bigtime.
2007-05-14 20:47:05 +00:00
stskeeps 548cf88bce - Fixed CommandAdd prototype a bit 2007-05-14 19:26:07 +00:00
stskeeps e597f79e31 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2399
diff -u -r1.1.1.1.2.1.2.1.2.2399 Changes
--- Changes	14 May 2007 14:14:08 -0000	1.1.1.1.2.1.2.1.2.2399
+++ Changes	14 May 2007 14:22:31 -0000
@@ -1692,3 +1692,5 @@
 - Changed IRCCommand::friend into IRCCommand::partner
 - Removed an odd declaration in common.h regarding find_user_link
 - Changed make_virthost prototype to not include a C++ keyword
+- More cleanup - this may potentially break some OS'es, but let us catch
+  this in testing
2007-05-14 14:22:51 +00:00
stskeeps 9ac0513c56 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2398
diff -u -r1.1.1.1.2.1.2.1.2.2398 Changes
--- Changes	14 May 2007 13:41:57 -0000	1.1.1.1.2.1.2.1.2.2398
+++ Changes	14 May 2007 14:13:50 -0000
@@ -1690,3 +1690,5 @@
   This change should not break extban modules, and should need some more extensive testing.
 - Removed some more confusion in source (module IRC commands vs IRC commands)
 - Changed IRCCommand::friend into IRCCommand::partner
+- Removed an odd declaration in common.h regarding find_user_link
+- Changed make_virthost prototype to not include a C++ keyword
2007-05-14 14:14:09 +00:00
stskeeps 69095eb401 - Changed IRCCommand::friend into IRCCommand::partner 2007-05-14 13:41:57 +00:00
aquanight 2c7a3f2e66 Chained extbans support. 2007-05-13 23:09:24 +00:00
stskeeps ee3c5683db - Changed all references to 'class' to 'cclass' (connection class) - to
avoid some keyword confusion and other wacky ideas
2007-05-13 22:38:25 +00:00
wolfsage daf4161e12 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2394
diff -u -r1.1.1.1.2.1.2.1.2.2394 Changes
--- Changes	13 May 2007 16:48:38 -0000	1.1.1.1.2.1.2.1.2.2394
+++ Changes	13 May 2007 17:56:05 -0000
@@ -1666,3 +1666,4 @@
 - A bug was introduced in the patch for #0003139. Patched by WolfSage
 - #0002533 reported by Dodge_Ram, patched by WolfSage, regarding notices
   not being sent when /*line and /shun are used to request stats
+- Removed class.h and minor references to aClass. Patched by WolfSage
2007-05-13 17:56:31 +00:00
wolfsage 1a7c68a72b Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2393
diff -u -r1.1.1.1.2.1.2.1.2.2393 Changes
--- Changes	13 May 2007 16:02:53 -0000	1.1.1.1.2.1.2.1.2.2393
+++ Changes	13 May 2007 16:48:33 -0000
@@ -1664,4 +1664,5 @@
 - #0003333 reported by fbi, regarding a unreferenced and duplicate
   m_botmotd in core and modules
 - A bug was introduced in the patch for #0003139. Patched by WolfSage
-
+- #0002533 reported by Dodge_Ram, patched by WolfSage, regarding notices
+  not being sent when /*line and /shun are used to request stats
2007-05-13 16:48:38 +00:00
wolfsage 2c7a00d11f Let's see if it works this time 2007-05-13 16:27:52 +00:00
wolfsage ea630663f9 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2392
diff -u -r1.1.1.1.2.1.2.1.2.2392 Changes
--- Changes	13 May 2007 13:42:27 -0000	1.1.1.1.2.1.2.1.2.2392
+++ Changes	13 May 2007 16:02:50 -0000
@@ -1662,4 +1662,6 @@
 - #0003327 reported by fbi, regarding a unreferenced and duplicate
   m_opermotd/m_motd in core
 - #0003333 reported by fbi, regarding a unreferenced and duplicate
-  m_botmotd in core and modules
\ No newline at end of file
+  m_botmotd in core and modules
+- A bug was introduced in the patch for #0003139. Patched by WolfSage
+
2007-05-13 16:02:53 +00:00
stskeeps 7e87518dda Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2391
diff -u -r1.1.1.1.2.1.2.1.2.2391 Changes
--- Changes	10 May 2007 23:14:51 -0000	1.1.1.1.2.1.2.1.2.2391
+++ Changes	13 May 2007 13:41:57 -0000
@@ -1661,3 +1661,5 @@
   about SQUIT in help.conf
 - #0003327 reported by fbi, regarding a unreferenced and duplicate
   m_opermotd/m_motd in core
+- #0003333 reported by fbi, regarding a unreferenced and duplicate
+  m_botmotd in core and modules
\ No newline at end of file
2007-05-13 13:42:27 +00:00
stskeeps b7492458bf - #0003327 reported by fbi, regarding a unreferenced and duplicate
m_opermotd/m_motd in core
2007-05-10 23:14:51 +00:00
stskeeps ae2abd4f50 - #0002549 reported by Ostdeutschland, regarding lacking information
about SQUIT in help.conf
2007-05-04 15:38:11 +00:00
stskeeps ea36514f06 - #0003139 reported by vonitsanet, improving error messages on /connect
when trying to /connect to a server with wildcards (* and ?) in the link
  block. We also raise an error if link::options::autoconnect is used
  together with wildcards in hostname.
2007-05-04 14:59:39 +00:00
stskeeps a59bd57d5b - #0002318 reported by Stealth, regarding small error in oper block
documentation
2007-05-04 14:38:45 +00:00
stskeeps 59e80b2535 - #0002040 reported by aquanight, removing dependancy on +l for +L. This 2007-05-04 14:33:33 +00:00
stskeeps f8d18df440 - #0003313 reported by Stealth, regarding not erroring/warning when me::name
is bigger than HOSTLEN, from now it will error on config read.
2007-05-04 14:21:58 +00:00
stskeeps 97adf80062 +- #0003092 reported by tabrisnet, patched by WolfSage, regarding documentation says
+  link::bind-ip is optional, but not specifying it produces an error
2007-05-03 14:33:22 +00:00
stskeeps e73cb3e8f4 - #0003060 reported by Robby22, patched by WolfSage, regarding remote
rehashing -ssl / -garbage is not Global'd, and a bugfix to an earlier
  WolfSage patch
2007-05-01 08:27:56 +00:00
Bram Matthys 26eca67b82 - Disallowing channels with : in them, it's not worth to risk breakage of 32* to 33*,
services, and other things like odd-extbans and things we haven't thought about,
  all for allowing one silly character.
2007-04-29 22:41:00 +00:00
aquanight 0cd066d62d Fix SVSKILL sending illegal QUIT 2007-04-29 22:19:23 +00:00
stskeeps 5545cc49b9 ? Makefile
? Unreal.patch
? bindir.patch
? cert-swhois.patch.txt
? config.log
? config.settings
? config.status
? config_sslzipdirfix.patch
? dgets.patch
? diff-msg-wildcardfix
? diff-remove-addline
? diff-remove-unused-crap
? ircd.log
? ircd.pid
? ircd.tune
? locop.patch
? locops_see_ulines_in_map.patch
? login_page.php?return=%2Ffile_download.php?file_id=408
? myoper.patch
? pingseconds.patch
? quitreaderrormsg.patch
? readerrorquitmsg.patch
? s_conf.patch
? s_serv.patch
? server.cert.pem
? server.key.pem
? server.req.pem
? ssl.rnd
? tmp
? unreal
? unreal318fix.patch
? unrealircd.conf
? userip.patch
? extras/c-ares
? extras/c-ares-1.3.2
? extras/c-ares.tar
? extras/regexp
? extras/tre-0.7.2
? extras/tre.tar
? include/setup.h
? ircdcron/ircdchk
? src/ircd
? src/version.c
? src/modules/Makefile
? src/modules/m_cycle.cpp
? src/modules/test.cpp
? src/modules/chanmodes/Makefile
Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2380
diff -u -r1.1.1.1.2.1.2.1.2.2380 Changes
--- Changes	26 Apr 2007 12:55:16 -0000	1.1.1.1.2.1.2.1.2.2380
+++ Changes	26 Apr 2007 15:18:34 -0000
@@ -1632,3 +1632,6 @@
   Devel.WolfSage.org[192.168.2.97] closed the connection. This would
   probably have caused netsplits to go unnoticed.
 - #0002095 removing /helpop broadcasting
+- #0003298 reported by Stealth patched by WolfSage, regarding KICK now sends
+  proper channel name to other servers, Local KICK now displays proper
+  channel name from other servers
Index: src/modules/m_kick.c
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/modules/Attic/m_kick.c,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 m_kick.c
--- src/modules/m_kick.c	25 Apr 2007 17:37:05 -0000	1.1.2.6
+++ src/modules/m_kick.c	26 Apr 2007 15:18:35 -0000
@@ -149,10 +149,10 @@
 					goto attack;

 				/* Note for coders regarding oper override:
-				 * always let a remote kick (=from a user on another server) trough or
+				 * always let a remote kick (=from a user on another server) through or
 				 * else we will get desynched. In short this means all the denying should
 				 * always contain a && MyClient(sptr) [or sptr!=cptr] and at the end
-				 * a remote kick should always be allowed (pass trough). -- Syzop
+				 * a remote kick should always be allowed (pass through). -- Syzop
 				 */

 				/* applies to everyone (well except remote/ulines :p) */
@@ -336,12 +336,12 @@
 						/* NORMAL */
 						sendto_channel_butserv(chptr,
 						    sptr, ":%s KICK %s %s :%s",
-						    parv[0], name, who->name, comment);
+						    parv[0], chptr->chname, who->name, comment);
 					}
 				}
 				sendto_serv_butone_token(cptr, parv[0],
 				    MSG_KICK, TOK_KICK, "%s %s :%s",
-				    name, who->name, comment);
+				    chptr->chname, who->name, comment);
 				if (lp)
 				{
 					remove_user_from_channel(who, chptr);
2007-04-26 15:18:40 +00:00
stskeeps 017c87cd4d - #0002095 removing /helpop broadcasting 2007-04-26 12:55:18 +00:00
stskeeps 22c17e5009 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2378
diff -u -r1.1.1.1.2.1.2.1.2.2378 Changes
--- Changes	25 Apr 2007 17:37:04 -0000	1.1.1.1.2.1.2.1.2.2378
+++ Changes	26 Apr 2007 05:32:14 -0000
@@ -1627,3 +1627,8 @@
   variable to determine what should be copied.
 - #0003281 regarding removing masked channels, this will make channels with
   :'s in them not be backwards compatible with 3.2.*, patch by WolfSage
+- #0003301 regarding sending @1 ]:Server %s closed the connection
+  Devel.WolfSage.org[192.168.2.97] instead of @1 ] :Server
+  Devel.WolfSage.org[192.168.2.97] closed the connection. This would
+  probably have caused netsplits to go unnoticed.
+
2007-04-26 05:32:22 +00:00
stskeeps 054a30e061 - #0003281 regarding removing masked channels, this will make channels with
:'s in them not be backwards compatible with 3.2.*, patch by WolfSage
2007-04-25 17:37:05 +00:00
stskeeps 68ed7aee77 - #0003294 reported by Bock, patched by aegis regarding a problem with make
install, that also cleans up the stuff to install a bit, with adding a
  variable to determine what should be copied.
2007-04-25 17:01:44 +00:00
stskeeps c3d01a03de - #0003288 patched by fbi, read error prefix in quit msg if socket error on
read and write for write
2007-04-24 19:43:48 +00:00
stskeeps 07c8d7604f - #0003000 reported and patched by Stealth, regarding Send TKL updates to G snomask 2007-04-24 11:51:55 +00:00
stskeeps 3ca6c4d3bc - Patch by WolfSage to make /rehash -all case insensitive. 2007-04-24 11:47:55 +00:00
stskeeps cf6965e9e2 - #0003223 reported by JasonTik patched by WolfSage, regarding undocumented
max link pass length. This now -WARNS- when there is a password bigger
  than PASSWDLEN.
2007-04-24 11:36:33 +00:00
stskeeps 7e6ca53e67 - #0002301 reported by vonitsanet patched by WolfSage, regarding adding oper
username to /whois, visible if you are an oper
2007-04-24 11:29:08 +00:00
stskeeps 8481b9da1d - Implemented #0002990, changing 432 into: %s 432 %s %s :%s, 2007-04-24 11:21:15 +00:00
stskeeps b6879d2b63 - #0003272 patched by w00t, regarding remove restrictions on NOTICE/PRIVMSG for opers. 2007-04-24 11:04:07 +00:00
stskeeps 4db5289ea6 - #0003232 reported by vonitsanet patched by djGrr, regarding /map is not shown u:lined servers to local opers and /links does. 2007-04-24 10:59:02 +00:00
stskeeps 1e0c422213 - #0002685 reported by w00t, patched by WolfSage, regarding useless if () in m_help.c 2007-04-24 10:53:20 +00:00
stskeeps c9ea9a7251 - #0002846 reported by alex323, patched by WolfSage, regarding local ircop cannot issue CLOSE command 2007-04-24 10:46:16 +00:00
stskeeps ad9c35029e - #0003287 reported and patched by satmd regarding 318 end of /whois list
breaks RFC
- Fixed a typo in #003091 related patch
2007-04-24 10:41:36 +00:00
stskeeps f21c338460 - #0003216 patched by djGrrr, regarding when you run ./Config for a second
time after settings are saved in config.settings, the SSLDIR and ZIPLINKSDIR
  defaults are basically completely ignored.
2007-04-24 10:20:47 +00:00
stskeeps d776eb39e2 - #0003091,#0003068,#003290 reported by Bock, aegis, WolfSage and patched by aegis, regarding
Makefile.in includes networks* files/dirs, Problems when specifying
  different directory for binary in Config, error on 'make install' if path
  to binary not exist
2007-04-24 10:16:48 +00:00
stskeeps 49e4360cde - #0003212 patched by Grunt, regarding /userip <someone_else> seemingly
shows my (cloaked) IP
2007-04-24 10:09:57 +00:00
stskeeps e136f05517 - #0003285 patched by w00t, removing add_local_domain and other useless
stuff
2007-04-24 09:43:02 +00:00
stskeeps 8650bb40f9 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2360
diff -u -r1.1.1.1.2.1.2.1.2.2360 Changes
--- Changes	24 Apr 2007 08:54:04 -0000	1.1.1.1.2.1.2.1.2.2360
+++ Changes	24 Apr 2007 09:03:21 -0000
@@ -1591,3 +1591,6 @@
 - #0003146 reported by vonitsanet, regarding Modes O,S (etc) not rejected for modes-on-connect
   fixed by djGrrr
 - #0003289 suggested and patched by fbi, adding (Ping timeout: 182 seconds)
+- #0002932 reported by therock247uk, patched by WolfSage, regarding Local
+  opers can /chghost /chgident /chgname on someone thats on another server on
+  the network
2007-04-24 09:03:26 +00:00
stskeeps e979619d0c Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2359
diff -u -r1.1.1.1.2.1.2.1.2.2359 Changes
--- Changes	18 Apr 2007 13:40:02 -0000	1.1.1.1.2.1.2.1.2.2359
+++ Changes	24 Apr 2007 08:53:59 -0000
@@ -1590,3 +1590,4 @@
   allows cloakkey 1 and 3 to be identical.
 - #0003146 reported by vonitsanet, regarding Modes O,S (etc) not rejected for modes-on-connect
   fixed by djGrrr
+- #0003289 suggested and patched by fbi, adding (Ping timeout: 182 seconds)
2007-04-24 08:54:05 +00:00
stskeeps 353e366445 ? Makefile
? config.log
? config.settings
? config.status
? dgets.patch
? diff-remove-addline
? ircd.log
? ircd.pid
? ircd.tune
? login_page.php?return=%2Ffile_download.php?file_id=408
? server.cert.pem
? server.key.pem
? server.req.pem
? ssl.rnd
? tmp
? unreal
? unrealircd.conf
? extras/c-ares
? extras/c-ares-1.3.2
? extras/c-ares.tar
? extras/regexp
? extras/tre-0.7.2
? extras/tre.tar
? include/setup.h
? ircdcron/ircdchk
? src/ircd
? src/version.c
? src/modules/Makefile
? src/modules/m_cycle.cpp
? src/modules/test.cpp
? src/modules/chanmodes/Makefile
Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2358
diff -u -r1.1.1.1.2.1.2.1.2.2358 Changes
--- Changes	18 Apr 2007 13:21:03 -0000	1.1.1.1.2.1.2.1.2.2358
+++ Changes	18 Apr 2007 13:38:36 -0000
@@ -1586,5 +1586,7 @@
 - #0002420 reported by KnuX fixed by WolfSage
 - #0003147 reported by vonitsanet, fixed by djGrrr regarding making
   spamfilters work in case of /setname
-- #0002157 repoted by Dukat, fixed by djGrrr regarding cloaking module
+- #0002157 reported by Dukat, fixed by djGrrr regarding cloaking module
   allows cloakkey 1 and 3 to be identical.
+- #0003146 reported by vonitsanet, regarding Modes O,S (etc) not rejected for modes-on-connect
+  fixed by djGrrr
Index: src/s_conf.c
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/s_conf.c,v
retrieving revision 1.1.1.1.6.1.2.374
diff -u -r1.1.1.1.6.1.2.374 s_conf.c
--- src/s_conf.c	16 Apr 2007 17:05:47 -0000	1.1.1.1.6.1.2.374
+++ src/s_conf.c	18 Apr 2007 13:38:47 -0000
@@ -6940,23 +6940,17 @@
 			}
 		}
 		else if (!strcmp(cep->ce_varname, "modes-on-connect")) {
+			char *p;
 			CheckNull(cep);
 			CheckDuplicate(cep, modes_on_connect, "modes-on-connect");
-			if (strchr(cep->ce_vardata, 'z'))
-			{
-				config_error("%s:%i: set::modes-on-connect may not have +z",
-					cep->ce_fileptr->cf_filename, cep->ce_varlinenum);
-				errors++;
-			}
+			for (p = cep->ce_vardata; *p; p++)
+				if (strchr("oOaANCrzSgHhqtW", *p))
+				{
+					config_error("%s:%i: set::modes-on-connect may not include mode '%c'",
+						cep->ce_fileptr->cf_filename, cep->ce_varlinenum, *p);
+					errors++;
+				}
 			templong = (long) set_usermode(cep->ce_vardata);
-			if (templong & UMODE_OPER)
-			{
-				config_error("%s:%i: set::modes-on-connect contains +o",
-					cep->ce_fileptr->cf_filename,
-					cep->ce_varlinenum);
-				errors++;
-				continue;
-			}
 		}
 		else if (!strcmp(cep->ce_varname, "modes-on-join")) {
 			char *c;
2007-04-18 13:40:02 +00:00
stskeeps 0f38bad303 - #0002157 repoted by Dukat, fixed by djGrrr regarding cloaking module
allows cloakkey 1 and 3 to be identical.
2007-04-18 13:21:04 +00:00
stskeeps 3897fada86 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2356
diff -u -r1.1.1.1.2.1.2.1.2.2356 Changes
--- Changes	16 Apr 2007 17:21:19 -0000	1.1.1.1.2.1.2.1.2.2356
+++ Changes	17 Apr 2007 17:21:10 -0000
@@ -1583,4 +1583,6 @@
 - #0002844 reported by RandomNumber: Spamfilter bawks on capitalizing actions
 - #0002404 reported by White_Magic, patched by w00t, removing /addline
   (which the bug report wasnt about)
-- #0002420 reported by KnuX fixed by .. not sure
+- #0002420 reported by KnuX fixed by WolfSage
+- #0003147 reported by vonitsanet, fixed by djGrrr regarding making
+  spamfilters work in case of /setname
2007-04-17 17:21:22 +00:00
stskeeps b61dee6561 - #0002420 reported by KnuX fixed by .. not sure 2007-04-16 17:21:19 +00:00
stskeeps 9c23d3d80d Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2354
diff -u -r1.1.1.1.2.1.2.1.2.2354 Changes
--- Changes	16 Apr 2007 16:47:15 -0000	1.1.1.1.2.1.2.1.2.2354
+++ Changes	16 Apr 2007 17:05:37 -0000
@@ -1581,3 +1581,5 @@
 - #0003159 reported by aegis and Bock, regarding typos in documentation
 - #0002560 reported and patched by w00t, regarding a typo in /SAMODE
 - #0002844 reported by RandomNumber: Spamfilter bawks on capitalizing actions
+- #0002404 reported by White_Magic, patched by w00t, removing /addline
+  (which the bug report wasnt about)
2007-04-16 17:05:48 +00:00
stskeeps e62959f1fe - #0002844 reported by RandomNumber: Spamfilter bawks on capitalizing actions 2007-04-16 16:47:15 +00:00
stskeeps f332d8754a Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2352
diff -u -r1.1.1.1.2.1.2.1.2.2352 Changes
--- Changes	16 Apr 2007 16:19:06 -0000	1.1.1.1.2.1.2.1.2.2352
+++ Changes	16 Apr 2007 16:33:46 -0000
@@ -1579,3 +1579,4 @@
 - #0002842 reported by Zell, fixed by WolfSage regarding glitch in rehash
   output glitch
 - #0003159 reported by aegis and Bock, regarding typos in documentation
+- #0002560 reported and patched by w00t, regarding a typo in /SAMODE
2007-04-16 16:33:50 +00:00
stskeeps a1e8de34f8 - #0003159 reported by aegis and Bock, regarding typos in documentation 2007-04-16 16:19:07 +00:00
stskeeps ebab7885c8 - #0002842 reported by Zell, fixed by WolfSage regarding glitch in rehash
output glitch
2007-04-16 16:11:50 +00:00
stskeeps 2e993427c6 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2349
diff -u -r1.1.1.1.2.1.2.1.2.2349 Changes
--- Changes	15 Apr 2007 22:42:35 -0000	1.1.1.1.2.1.2.1.2.2349
+++ Changes	16 Apr 2007 06:36:23 -0000
@@ -1574,3 +1574,5 @@
 - Fixed #0003171 reported by danieldg (typo)
 - #0003118 reported by vonitsanet (typo in ADDOMOTD), fixed by WolfSage
 - #0003272 reported and fixed by WolfSage (addmotd, addomotd in help.conf)
+- #0003274 reported by Stealth regarding using actual nick and not given
+  nick in SAPART
2007-04-16 06:36:26 +00:00
stskeeps 7778376e80 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2348
diff -u -r1.1.1.1.2.1.2.1.2.2348 Changes
--- Changes	15 Apr 2007 22:21:09 -0000	1.1.1.1.2.1.2.1.2.2348
+++ Changes	15 Apr 2007 22:42:31 -0000
@@ -1573,3 +1573,4 @@
 MOTDs
 - Fixed #0003171 reported by danieldg (typo)
 - #0003118 reported by vonitsanet (typo in ADDOMOTD), fixed by WolfSage
+- #0003272 reported and fixed by WolfSage (addmotd, addomotd in help.conf)
2007-04-15 22:42:35 +00:00
stskeeps 6efe4637a8 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2347
diff -u -r1.1.1.1.2.1.2.1.2.2347 Changes
--- Changes	15 Apr 2007 21:29:31 -0000	1.1.1.1.2.1.2.1.2.2347
+++ Changes	15 Apr 2007 22:21:05 -0000
@@ -1572,3 +1572,4 @@
 - Fixed #0003002 reported by DelGurth, fixed by WolfSage regarding trailing \'s in
 MOTDs
 - Fixed #0003171 reported by danieldg (typo)
+- #0003118 reported by vonitsanet (typo in ADDOMOTD), fixed by WolfSage
2007-04-15 22:21:10 +00:00
stskeeps d2fef70316 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2346
diff -u -r1.1.1.1.2.1.2.1.2.2346 Changes
--- Changes	15 Apr 2007 15:34:42 -0000	1.1.1.1.2.1.2.1.2.2346
+++ Changes	15 Apr 2007 21:29:27 -0000
@@ -1568,4 +1568,7 @@
 - Patch to remove lusers.c and change from bzero to memset in ircd.c
   by w00t
 - Patch to remove curses leftover (I am going to assume SIGWINCH isn't a
-  problem) by w00t
\ No newline at end of file
+  problem) by w00t
+- Fixed #0003002 reported by DelGurth, fixed by WolfSage regarding trailing \'s in
+MOTDs
+- Fixed #0003171 reported by danieldg (typo)
2007-04-15 21:29:31 +00:00
stskeeps e41424fdff - Patch to remove lusers.c and change from bzero to memset in ircd.c 2007-04-15 15:34:42 +00:00
stskeeps fbe0c28ec5 *** empty log message *** 2007-04-15 15:34:16 +00:00
stskeeps cd298bd951 ? Makefile
? config.log
? config.settings
? config.status
? ircd.log
? ircd.pid
? ircd.tune
? server.cert.pem
? server.key.pem
? server.req.pem
? ssl.rnd
? tmp
? unreal
? unrealircd.conf
? extras/c-ares
? extras/c-ares-1.3.2
? extras/c-ares.tar
? extras/regexp
? extras/tre-0.7.2
? extras/tre.tar
? include/setup.h
? ircdcron/ircdchk
? src/ircd
? src/version.c
? src/modules/Makefile
? src/modules/chanmodes/Makefile
Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2344
diff -u -r1.1.1.1.2.1.2.1.2.2344 Changes
--- Changes	15 Apr 2007 09:45:01 -0000	1.1.1.1.2.1.2.1.2.2344
+++ Changes	15 Apr 2007 15:33:53 -0000
@@ -1565,4 +1565,7 @@
  authentication for services, you can probably use the code in here to do it
  quite simple.
  .. please mind any errors, it's been years since I (Stskeeps) last committed to here :)
-
+- Patch to remove lusers.c and change from bzero to memset in ircd.c
+  by w00t
+- Patch to remove curses leftover (I am going to assume SIGWINCH isn't a
+  problem) by w00t
Index: include/config.h
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/include/config.h,v
retrieving revision 1.1.1.1.6.1.2.102
diff -u -r1.1.1.1.6.1.2.102 config.h
--- include/config.h	16 Dec 2006 16:56:31 -0000	1.1.1.1.6.1.2.102
+++ include/config.h	15 Apr 2007 15:33:54 -0000
@@ -535,16 +535,6 @@
  * 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)
Index: include/proto.h
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/include/Attic/proto.h,v
retrieving revision 1.1.2.9
diff -u -r1.1.2.9 proto.h
--- include/proto.h	22 Jun 2005 22:55:45 -0000	1.1.2.9
+++ include/proto.h	15 Apr 2007 15:33:54 -0000
@@ -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);

Index: include/struct.h
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/include/struct.h,v
retrieving revision 1.1.1.1.6.1.2.274
diff -u -r1.1.1.1.6.1.2.274 struct.h
--- include/struct.h	13 Mar 2007 02:18:31 -0000	1.1.1.1.6.1.2.274
+++ include/struct.h	15 Apr 2007 15:33:54 -0000
@@ -681,13 +681,6 @@
 /* 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
Index: src/Makefile
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/Makefile,v
retrieving revision 1.1.1.1.6.1.2.46
diff -u -r1.1.1.1.6.1.2.46 Makefile
--- src/Makefile	5 Aug 2006 13:23:29 -0000	1.1.1.1.6.1.2.46
+++ src/Makefile	15 Apr 2007 15:33:54 -0000
@@ -22,7 +22,7 @@
 CC = danger will robinson

 OBJS=timesynch.o res.o s_bsd.o auth.o aln.o channel.o cloak.o crule.o dbuf.o \
-	events.o fdlist.o hash.o help.o ircd.o ircsprintf.o list.o lusers.o \
+	events.o fdlist.o hash.o help.o ircd.o ircsprintf.o list.o \
 	match.o modules.o packet.o parse.o s_auth.o \
 	s_conf.o s_debug.o s_err.o s_extra.o s_kline.o \
 	s_misc.o s_numeric.o s_serv.o s_svs.o $(STRTOUL) socket.o \
@@ -171,9 +171,6 @@
 list.o: list.c $(INCLUDES)
 	$(CC) $(CFLAGS) -c list.c

-lusers.o: lusers.c $(INCLUDES)
-	$(CC) $(CFLAGS) -c lusers.c
-
 res.o: res.c $(INCLUDES) ../include/res.h
 	$(CC) $(CFLAGS) -c res.c

Index: src/ircd.c
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/src/ircd.c,v
retrieving revision 1.1.1.1.6.1.2.208
diff -u -r1.1.1.1.6.1.2.208 ircd.c
--- src/ircd.c	27 Jan 2007 15:45:41 -0000	1.1.1.1.6.1.2.208
+++ src/ircd.c	15 Apr 2007 15:33:55 -0000
@@ -103,7 +103,7 @@
 char REPORT_DO_DNS[256], REPORT_FIN_DNS[256], REPORT_FIN_DNSC[256],
     REPORT_FAIL_DNS[256], REPORT_DO_ID[256], REPORT_FIN_ID[256],
     REPORT_FAIL_ID[256];
-extern ircstats IRCstats;
+ircstats IRCstats;
 aClient me;			/* That's me */
 MODVAR char *me_hash;
 aClient *client = &me;		/* Pointer to beginning of Client list */
@@ -315,11 +315,6 @@
 #ifndef HAVE_RELIABLE_SIGNALS
 	(void)signal(SIGALRM, dummy);
 	(void)signal(SIGPIPE, dummy);
-#ifndef HPUX			/* Only 9k/800 series require this, but don't know how to.. */
-# ifdef SIGWINCH
-	(void)signal(SIGWINCH, dummy);
-# endif
-#endif
 #else
 # ifdef POSIX_SIGNALS
 	struct sigaction act;
@@ -329,14 +324,8 @@
 	(void)sigemptyset(&act.sa_mask);
 	(void)sigaddset(&act.sa_mask, SIGALRM);
 	(void)sigaddset(&act.sa_mask, SIGPIPE);
-#  ifdef SIGWINCH
-	(void)sigaddset(&act.sa_mask, SIGWINCH);
-#  endif
 	(void)sigaction(SIGALRM, &act, (struct sigaction *)NULL);
 	(void)sigaction(SIGPIPE, &act, (struct sigaction *)NULL);
-#  ifdef SIGWINCH
-	(void)sigaction(SIGWINCH, &act, (struct sigaction *)NULL);
-#  endif
 # endif
 #endif
 }
@@ -1098,11 +1087,11 @@
 #else
 	WSAStartup(wVersionRequested, &wsaData);
 #endif
-	bzero((char *)&me, sizeof(me));
-	bzero(&StatsZ, sizeof(StatsZ));
+	memset(&me, 0, sizeof(me));
+	memset(&StatsZ, 0, sizeof(StatsZ));
 	setup_signals();
 	charsys_reset();
-	init_ircstats();
+	memset(&IRCstats, 0, sizeof(IRCstats));
 #ifdef USE_LIBCURL
 	url_init();
 #endif
@@ -1927,10 +1916,6 @@
 	(void)sigemptyset(&act.sa_mask);
 	(void)sigaddset(&act.sa_mask, SIGPIPE);
 	(void)sigaddset(&act.sa_mask, SIGALRM);
-# ifdef	SIGWINCH
-	(void)sigaddset(&act.sa_mask, SIGWINCH);
-	(void)sigaction(SIGWINCH, &act, NULL);
-# endif
 	(void)sigaction(SIGPIPE, &act, NULL);
 	act.sa_handler = dummy;
 	(void)sigaction(SIGALRM, &act, NULL);
@@ -1947,13 +1932,7 @@
 #else
 # ifndef	HAVE_RELIABLE_SIGNALS
 	(void)signal(SIGPIPE, dummy);
-#  ifdef	SIGWINCH
-	(void)signal(SIGWINCH, dummy);
-#  endif
 # else
-#  ifdef	SIGWINCH
-	(void)signal(SIGWINCH, SIG_IGN);
-#  endif
 	(void)signal(SIGPIPE, SIG_IGN);
 # endif
 	(void)signal(SIGALRM, dummy);
2007-04-15 15:33:59 +00:00
stskeeps 56958c9545 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2343
diff -u -r1.1.1.1.2.1.2.1.2.2343 Changes
--- Changes	6 Apr 2007 22:17:27 -0000	1.1.1.1.2.1.2.1.2.2343
+++ Changes	15 Apr 2007 09:44:58 -0000
@@ -1546,3 +1546,23 @@
 - Added include::bind-ip to bind an ip to download in case of having defined LIBCURL, suggested by djGrrr (#00003185).
 - oper::from::userhost now accepts a CIDR address (eg *me@1.2.3.0/24), requested by djGrrr (#0003234).
 - Corrected a couple of grammar errors in WebTV whois (/msg IRC WHOIS nick) output, reported by CuLpA (#0003244).
+- Implemented #0003254 - Auth type 'sslcertfingerprint-sha1', suggested by
+  djGrr. There are reservations regarding the security of this, but for most
+   purposes it should be okay. Cryptographically minded people may comment.
+  This may also be used to allow remote included opers with SSL certificate
+  fingerprints as we cannot as of yet remote include client certificates
+  (#0002832, suggested by Stealth)
+  Example use:
+  $ openssl x509 -in cert.pem -noout -sha1 -fingerprint
+   (where cert.pem is the oper's/server's/etc SSL client certificate)
+  SHA1 Fingerprint=FA:A6:A3:42:95:34:15:68:26:35:40:18:8D:50:68:D4:15:C8:12:9E
+
+ translating into this auth block:
+ password "FA:A6:A3:42:95:34:15:68:26:35:40:18:8D:50:68:D4:15:C8:12:9E" { sslcertfingerprint-sha1; };
+ (the auth code is case sensitive).
+
+ If anyone is interested in making a module for SSL client certificate
+ authentication for services, you can probably use the code in here to do it
+ quite simple.
+ .. please mind any errors, it's been years since I (Stskeeps) last committed to here :)
+
2007-04-15 09:45:01 +00:00
aquanight 10bf77903f Fixed a couple of webtv whois grammar errors. 2007-04-06 22:17:27 +00:00
aquanight ce5303499d implement #3234, oper cidr 2007-03-13 02:18:32 +00:00
trocotronic 49ec84f55e Added include::bind-ip 2007-03-08 16:34:48 +00:00
trocotronic 5c83aeb8cb Added class::options::notargetlag 2007-03-03 19:51:59 +00:00
aquanight 852e074b8d Fixed serverprotocol.html typo. 2007-02-19 19:33:57 +00:00
Bram Matthys 50241b173a maths is teh hard 2007-02-16 14:09:16 +00:00
Bram Matthys 454aa172f6 - Fixed file descriptor leakage on rehash. This resulted in [number of modules loaded]
file descriptors being leaked upon every /REHASH.
  So if you, for example, had 3 modules loaded and rehashed 30 times, it would cause
  the ircd to consume 60 useless file descriptors (which often means 60 less file
  descriptors being available to clients).
2007-02-16 14:06:15 +00:00
Bram Matthys 29a78afbf8 - Changed password length from 32 to 48, is allocated dynamically anyway. 2007-02-06 15:34:47 +00:00
aquanight 46cfa34bd9 /rehash -dns/-ssl documented 2007-02-02 18:15:59 +00:00
trocotronic 067416d76a Made ./unreal configtest 2007-01-27 15:45:41 +00:00
aquanight 8ffb35563d Added extended ban ~j. 2007-01-25 17:20:22 +00:00
trocotronic 79b741feaf Fixed typo 2007-01-25 15:35:26 +00:00
trocotronic b637e33d7e Booting ircd extended to 5 secs 2007-01-25 15:34:44 +00:00
Bram Matthys 9004ddea06 - Fixed SAPART causing a flood of notices from all servers, fun. Reported and patch
provided by djGrrr.
2007-01-22 13:02:11 +00:00
Bram Matthys 133adeed90 - Fixed SDESC not messaging +s +s clients on local server when it is used, reported by
dre, patch provided by djGrrr.
2007-01-22 12:51:44 +00:00
Bram Matthys fd78f47031 - Added ability to enable "no fake lag" for a user through through services via the
new commands SVSNOLAG/SVS2NOLAG (syntax: SVSNOLAG [+|-] NickName). Obviously, care
  should be taken when giving such access to a user since he/she will be able to flood
  at full speed and could possibly take down the entire IRCd (well, everyone on it).
  Suggested by avb, coded by djGrrr.
2007-01-22 12:47:32 +00:00
Bram Matthys 5faee2f717 - /WHOIS now shows the ident of local users - if ident enabled and they had an ident -
instead of always "*" in the 'is connecting from' line. Suggested and patch provided
  by djGrrr (#0002888).
  NOTE: This needs checking, this patch changed the 'unknown' stuff to ~.. doublecheck
  the allow block and everything.. didn't we use unknown@ there sometimes? I'll leave this
  to someone else...
2007-01-22 12:37:10 +00:00
Bram Matthys 443149f01a - Fixed bug where SVSO was unable to give various operflags such as q, d, X, reported
by prodigy2k7 (#0003203).
2007-01-22 12:32:57 +00:00
aquanight ff81c7e846 Italic fix to serverprotocol 2006-12-28 16:35:32 +00:00
aquanight 4aeb5b7df7 Fixed description of STATS regarding server senders. 2006-12-23 22:17:53 +00:00
aquanight 6687fc0c96 Added TOKEN and STATS to serverprotocol.html. 2006-12-23 20:02:17 +00:00
Bram Matthys 38088f0e79 - Showing even more SSL server errors now, hopefully all of them, also changed the
error notice a bit so it's much more like non-SSL server link errors. Reported by
  vonitsanet (#0003150).
2006-12-19 19:39:32 +00:00
Bram Matthys 4b1a0f9771 - Fixed possible crash with using quarantine, reported by Sephiroth (#0003151). 2006-12-19 12:57:25 +00:00
trocotronic 88ae0eb161 - CRC32 is ripped out reported by Trocotronic (#0002963).
- DOMAINNAME is removed from ./Config reported by satmd (#0003063).
- THROTTLING and FAST_BADWORD_REPLACE cannot be configured in config.h reported by raymondvrolijk (#0002937).
- /sqline supports sqlining for channels. #*ble* will forbid channels and *ble* will forbid only nicks (not channels).
  Forbid message showed by numeric ERR_FORBIDDENCHANNEL (448) reported by aragon and Jase (#0000935, #0003012).
- conf_deny NOTICE message is replace by ERR_FORBIDDENCHANNEL.
2006-12-16 16:56:32 +00:00
Bram Matthys 22265ef4b0 - Post-3.2.5 CVS-only bug: Fixed spamfilter on user target not working properly when
changing nicks (was still trying to match on the old nick), reported by vonitsanet
  (#0003143).
2006-12-12 17:26:19 +00:00
Bram Matthys f4d6a50004 - Fixed SSL bug where an outgoing connect (either autoconnect, or /connect), would not
show any error message when it failed. Error information has also been slightly
  improved. Reported by vonitsanet (#0003138).
2006-12-06 14:34:11 +00:00
Bram Matthys 3adea60d91 - Improved detection of bad set::modes-on-oper and oper::modes, now rejecting things like
'o', 'z', and more.
- Fix from above fixes an /OPER announce problem reported by Bock (#0003135).
2006-12-05 13:51:41 +00:00
Bram Matthys 4d0bff1244 that's better... (again fix for previous) 2006-12-03 22:51:40 +00:00
Bram Matthys e020a53a47 - Renamed all chanmodule modules <-- now updated makefile.in ;P 2006-12-03 22:34:01 +00:00
Bram Matthys 31944265d5 - Now actually committed +G (different file, see next) ;)
- Renamed all chanmodule modules:
  +G = wordcensor
  +j = jointhrottle
  +Q = nokicks
  +f = chanflood
2006-12-03 21:16:58 +00:00
Bram Matthys 22c4007ee2 - Modulized channel mode +G (src/modules/chanmodes/chmode_upG.c) 2006-12-03 20:49:56 +00:00
Bram Matthys 2043609896 - Tagged chanmode modules as official (oops..) 2006-12-03 19:50:06 +00:00
Bram Matthys 893b1fb5b7 - Added donators since 3.2.5
- Setting set::pingpong-warning didn't work, reported by vonitsanet, patch supplied by
  avb (#0003131).
2006-12-01 15:43:18 +00:00
aquanight fae0aeee4c serverprotocol.html 3.2.6 info 2006-11-29 19:59:51 +00:00
Bram Matthys 95ba27b262 - fix for above (c-ares win32 lib) 2006-11-26 14:37:34 +00:00
Bram Matthys 65ad12e105 updated changelog comment, giving more credit
- Made SAPART work for mulitple channels, just like SAJOIN. Reported by Snake and
  SeigHart, patch provided by Bock (#0003064). This also fixes SAPART now being
  announced to all opers globally, just like SAJOIN.
2006-11-26 12:54:16 +00:00
Bram Matthys 39db232a0b - c-ares resolver: upgrade to 1.3.2. 2006-11-25 19:40:29 +00:00
Bram Matthys 7fa2109d8d FIXFORFIX
- Fixed bug where omitting class::connfreq would result in a huge connection attempt
  flood when autoconnect was enabled. We now set class::connfreq to 60 if it's not
  specified. Reported by Milliways (#0003018).
2006-11-25 16:48:57 +00:00
Bram Matthys f007f038a3 spelllllingg... 2006-11-25 16:43:03 +00:00
Bram Matthys c99189bb09 - Fixed bug where ommitting class::connfreq would not give a config error, and would
cause a huge connection attempt flood when autoconnect was enabled. Reported by
  Milliways (#0003018).
2006-11-25 16:42:34 +00:00
Bram Matthys 614b53165e - Fixed compile bug on Solaris due to missing INADDR_NONE, fix provided by Schak
(#0003125).
2006-11-24 21:21:33 +00:00
Bram Matthys 238a1c0c18 - Fixed charsys config error message sometimes saying stuff about set::accept-language,
which should be set::allowed-nickchars (the former does not exist). Reported and
  patch provided by avb (#0003122).
2006-11-24 21:07:23 +00:00
Bram Matthys e2f782743e - Added information about extbans to help.conf (/HELPOP ?EXTBANS). Patch from Bock
(#0003113).
- Made SAPART work for mulitple channels, just like SAJOIN. Patch provided by Bock
  (#0003064). This also fixes SAPART now being announced to all opers globally, just
  like SAJOIN.
- Finally fixed /RESTART issue on windows for good, should now always restart correctly.
  Patch provided by BuHHunyx and Bock (#0002734).
2006-11-24 20:56:13 +00:00
Bram Matthys 547978596a - Removed all files in networks/, the directory itself may stay for now. Those files were
old, newest one dating back to 2002 (most of them 2001)... much better if this is handled
  internally by the networks themselves anyway (and then they can put cloak keys in their
  network file too, which they now can't ;p). I wonder if someone actually still used it anyway.
2006-11-23 19:41:50 +00:00
aquanight 6d2ae0e5c4 serverprotocol.html fixes 2006-11-22 21:38:24 +00:00
Bram Matthys 42ef5be6ac - Changed some minor Makefile stuff
- Fixed belarussian-w1251 charset.. accidently copied a "'" which caused an internal
  error.
2006-11-22 15:38:22 +00:00
aquanight 24ffc94440 Improved link::hub/leaf/leafdepth description + leafdepth typo fix. 2006-11-16 22:22:44 +00:00
Bram Matthys c9bb7e3e17 - Fixed a couple of typos and other one-line-text fixes at various places: reported by
aegis (#3081), DanPMK (#2818), tabrisnet (#2974, #2970, #2467), penna (#2721),
  Brad (#2488), vonitsanet (#2467).
- Made OpenSSL version dynamic, reported by buildsmart (#0002975).
- Rejecting fake +z modes in conf, reported by rve (#0002532).
2006-11-12 21:50:50 +00:00
Bram Matthys df0588531f - /INVITE's from people on the silence list are now (silently) ignored, suggested by
White_Magic (#0002478).
2006-11-12 20:27:37 +00:00
Bram Matthys 7bf4127108 - Snomask N: Don't show nickchanges for U-lines, reported by seneces (#0002636).
- Fixed set::dns::bind-ip directive seen as duplicate, reported by aegis (#0003074).
- set::dns::* block is now no longer mandatory. All info has always been read from
  /etc/resolv.conf (*NIX) or the registry (Win32), and the set::dns block is ignored
  (except for set::dns::bind-ip, but that's a special case). Suggested by many including
  djGrrr to make things slightly more logical (#0003019).
- As a consequence of the above, set::dns blocks were removed from doc/example*conf.
- Added two more characters to Catalan charset, reported by rmh (#0002995).
- Added set::pingpong-warning [yes|no] which decides whether to send the "** If you are
  having problems connecting due to ping timeouts, please type /quote pong .." message
  to each client when NOSPOOF is enabled (usually on Win32). The default is NO.
  Previously this message was always sent if NOSPOOF was on, which often caused
  confusion among users. The message was intended for non-confirming clients, but these
  should be fixed by now, and those that were not fixed (self-made bots/etc) did often
  not understand the message anyway. Anyway, you can still turn it on ;). (#2680).
2006-11-12 19:41:53 +00:00
Bram Matthys 21ab148d31 - Fixed 'SVSMOTD !' not deleting the services motd in memory, reported by avb (#0003110). 2006-11-12 18:59:43 +00:00
Bram Matthys 594644dd62 - Cutoff webtv whois at MAXTARGETS (#0003004). 2006-11-11 20:25:31 +00:00
Bram Matthys 6930f843c3 - Made win32 compile again, reported by Bock (#0003106). 2006-11-05 20:13:22 +00:00
Bram Matthys 8ef42da438 - Moved a couple isatty() calls to DEBUGMODE (#0002945). 2006-11-05 00:29:01 +00:00
Bram Matthys 7f7e8496b2 - Win32: Fixed a few compiler warnings, suggested by Zell (#0002890). 2006-11-05 00:21:23 +00:00
Bram Matthys be0a8ab801 - If the 'crypt' algorithm is used, then passwords were/are truncated to 8 characters.
We now print a warning when this happens (both on the IRC command and command-line).
  Suggested by JasonTik (#0002953).
2006-11-04 23:54:54 +00:00
Bram Matthys d784acb0fd - Services timestamps are now always treated as an unsigned long (0..2^32-1), instead
of accidently as signed long during netsynchs. This bug caused issues with values
  larger than 2147483647. Reported by avenger (#0002980).
2006-11-04 22:25:39 +00:00
Bram Matthys 67a2c3aff8 - Win32: we now no longer crash if no access to write to service.log, suggested and
patch by Xuefer (#0002886).
2006-11-04 21:41:18 +00:00
Bram Matthys d172d7e490 - Win32: SSL private key prompt should now no longer crash. Patch provided by Alexey
Markevich (#0002866).
2006-11-04 13:23:52 +00:00
Bram Matthys 4aa480a48e - [internal] Made a spamfilter_build_user_string function that will build the spamfilter
user target string (nick!user@host:info), insteaf of doing it at like 5 places.
- Spamfilter target 'u' (user): the host field (nick!user@HOST:realname) is now escaped
  with brackets if it's an IPv6 address, eg: blah!blah@[1:2:3:4:5:6:7:8]:hello, reported
  by aquanight and others (#0003010).
2006-11-04 00:11:47 +00:00
Bram Matthys b97df7b529 - Using SVSMODE (or SVS2MODE) to set -x will now actually remove the vhost from memory,
instead of letting it magically reappear whenever +x is set. This means services can
  now properly "unvhost" a user by sending a "SVSMODE User -x+x" (then any existing vhost
  will be removed and user will have a cloaked host). Reported by avenger and others
  (#0002933).
2006-11-03 23:32:39 +00:00
Bram Matthys 9d00e22db9 - Fixed m_names.so not being build (a problem for people not using commands.so),
reported by aegis (#0003085).
2006-11-03 22:41:26 +00:00
Bram Matthys 4a205703cc - Fixed some unitialized pointer things for win32 w/ssl on keyprompt, no idea if it
helps, though. Would appreciate it if another code looks into this. -- Syzop
2006-11-03 19:31:40 +00:00
Bram Matthys 898d859b77 - Made it so that when 'java' is enabled for a listen block, then the 2nd parameter to
NICK is not seen as a password on this port. Patch from afolentes (#0003097).
2006-11-03 19:23:42 +00:00
Bram Matthys 15eeec8d2b - Updated ukrainian-w1251 and belarussian-w1251 charsets: some characters were previously
included that shouldn't. Reported by avb (#0003102), patch supplied by Bock.
2006-11-03 13:41:42 +00:00
Bram Matthys cb6df4e455 - Committed watch away notification, I did this more than a month ago but can't be bothered
to document it right now, just want to get it off my cvs queue ;P.
  Syntax is 'WATCH A +TestUser' to have someone with away notification on your watchlist.
2006-10-28 14:19:48 +00:00
Bram Matthys 1fe247500e - Fixed a couple of add_Command/del_Command lines in m_chgname and m_helpop trying to
add the same token twice. Didn't cause any trouble, normally, though...
2006-10-28 14:18:07 +00:00
aquanight 66de87ec29 Fixing deny link 2006-10-09 05:39:03 +00:00
aquanight 4b0796a091 Couple more not-sending-token fixes. 2006-10-01 23:00:57 +00:00
aquanight daf9ebb95f Fix #3077 (+C not killed on SVSO -). 2006-09-30 17:09:04 +00:00
aquanight 8ec4782859 Made some messages send TOKEN properly. 2006-09-29 19:45:59 +00:00
Bram Matthys 8c3a44ced1 - Fixed zlib version check: 1.x is compatible with all 1.*, etc. (#0002966). 2006-09-28 20:44:35 +00:00
aquanight e88a77d557 Fixed segfault from unknown charsets. 2006-09-24 23:22:58 +00:00
Bram Matthys 039e223df2 - Windows 2003: Fixed UnrealIRCd unable to boot if no DNS server is configured, we now
fallback to set::dns::nameserver in such a case. Thanks to Romeo (reporter, #0002802)
  and Bock for tracing this down.
2006-09-23 12:04:00 +00:00
Bram Matthys 38701f718a Added two FIXME's 2006-09-22 19:57:29 +00:00
Bram Matthys fa8fbc6a61 - Fixed cloak cutoff problem with long hosts. 2006-09-22 19:53:22 +00:00
Bram Matthys 99b50af732 suggest->suggested 2006-09-10 23:05:43 +00:00
Bram Matthys c6fc8dfa28 - Updated doc/coding-guidelines again 2006-09-10 23:05:16 +00:00
Bram Matthys 47652fc22c plok! 2006-09-10 23:05:00 +00:00
Bram Matthys ba8e5cd7a0 (PATCH FROM TROCOTRONIC -- UNEDITTED)
- Added set::nick-length so the nick length can be dynamically changed (from 1-30),
  requested by various people including IdiotStic (#0003042).
2006-09-10 22:15:54 +00:00
Bram Matthys 158676655c - Some more updates for above, plus updated authors list and all. 2006-09-08 23:09:37 +00:00
Bram Matthys 0cc02e308c - Setting some version info properly to 3.3-pre-alpha, removing all translated documents
(they will be readded around beta1 or so, to easy the work for translators a bit).
2006-09-08 22:35:20 +00:00
Bram Matthys f1b278e450 - Bugfix for above (wrongpasscont). 2006-09-08 22:28:57 +00:00
aquanight 2b9476c923 add allow::options::wrongpasscont 2006-09-07 22:42:00 +00:00
Bram Matthys 2bdc12b8f8 - Fixed small memory leak in resolver (~40 bytes when connecting to a server)
- Made Unreal use the original name in case of a CNAME, instead of the forwarded name,
  reported by jerrcsnet (#0003054).
- The "looking up your hostname" message was always sent, regardless of show-connect-info.
2006-09-06 12:30:12 +00:00
Bram Matthys 8dd90cc2ed - Fix for above so it doesn't -r the client if +r and case changing.
- Made WATCH not send a LOGOFF/LOGON for a nickchange with case-change (blah -> BLAH).
2006-09-03 20:40:04 +00:00
aquanight 4f2480fff2 Some SVSNICK collision fixes. 2006-09-03 19:41:29 +00:00
Bram Matthys acca35a057 - Fixed bug in MODE #channel showing extended channel mode parameters when not in #channel.
- Made 'MODE #channel b' and friends show bans to ircops even when not in channel.
2006-08-29 13:25:41 +00:00
Bram Matthys ebd5551d0f (PATCH FROM Trocotronic, although slightly changed/improved/partsdeleted by me)
- Kick non-SSL users when the channel turns out to be +z during netmerge, reported by
  Ron2K (#0002942).
2006-08-29 12:02:08 +00:00
Bram Matthys 42b3540a3c - Module coders: Fixed CALLBACKTYPE_CLOAK_EX, it was not working properly at all. 2006-08-29 11:58:58 +00:00
Bram Matthys 597226b3a4 - Fixed some bugs in webtv code that could have caused trouble in the future (off by one),
reported by Ilja van Sprundel.
2006-08-23 18:25:28 +00:00
Bram Matthys 6a5b247542 - Fixed SSL crash problem due to previous SSL change. 2006-08-23 10:45:08 +00:00
Bram Matthys d988ffa7ab - Added HOOKTYPE_CAN_KICK (sptr, who, chptr, comment, sptr_flags, who_flags). Returns an
error message if the kick should be denied. The upper layer (thus NOT you) takes care
  of OperOverride.
- Modulized channel mode +Q (src/modules/chanmodes/chmode_upQ.c)
(unmentioned: ripped out old MODE_FLOODLIMIT stuff -- 2 lines)
2006-08-21 23:03:31 +00:00
Bram Matthys 5f6816df57 - Fixed /SAJOIN able to join insecure users to +z channels, reported by phedny (#0002601). 2006-08-20 23:32:39 +00:00
Bram Matthys a7cdae2d81 - Small compile fix for above 2006-08-20 23:25:18 +00:00
Bram Matthys 2294fe88cc - The server SSL certificate and private key can now be reloaded without requiring a server
restart, simply use: /REHASH -ssl
2006-08-20 23:05:39 +00:00
Bram Matthys ae84795a12 CHANGELOG COMMENT EDIT: - Fixed sjoin issue due to modulizing. 2006-08-19 22:40:12 +00:00
Bram Matthys 6f8d4f83f8 - Sjoin issue due to +F modulizing fixed (tested. though, lightly) 2006-08-19 22:39:36 +00:00
Bram Matthys dc63d47084 - This might fix sjoin for above 2006-08-19 22:33:57 +00:00
Bram Matthys 9ad0ad77d7 - Moved HOOKTYPE_LOCAL_NICKCHANGE and HOOKTYPE_REMOTE_NICKCHANGE to *after* the nickchange.
As a consequence of this the last parameter you get in your hook is now 'oldnick' rather
  than 'newnick'. So the new nick is in sptr->name now and oldnick in last parameter.
- Added HOOKTYPE_PRE_CHANMSG, this should now be used for blocking/morphing text.
  It has the parameters: sptr, chptr, text, notice
- HOOKTYPE_CHANMSG now no longer allows one to block the text (use HOOKTYPE_PRE_CHANMSG for
  that). It's also moved to after the message was actually sent.
- Added HOOKTYPE_KNOCK (sptr, chptr)
- Added HOOKTYPE_MODECHAR_FIXME. Internal for now, will be replaced with a proper
  HOOKTYPE_MODECHAR later (and arguments will change). It's just an internal hack for
  chmode +f for now ;).
- Updated indent.pro to use length=110. It still does not indent how I want it to be though,
  so don't use it yet ;).
- Moved channel mode +f to src/modules/chanmodes/chmode_f.c, interestingly enough this took
  longer than recoding extcmodes paramter support and moving chan mode +j.
  It's not only looking like a complex channel mode, it actually *IS* one ;).
  TODO: make sure it actually works, and fix sjoining (partly not implemented yet->crash) ;p
2006-08-19 22:28:44 +00:00
aquanight 9ea0e07fff Whoops. 2006-08-19 21:51:06 +00:00
aquanight f3acb92ca8 doc fix for svsnline 2006-08-19 20:29:56 +00:00
aquanight dfa40c5367 missed one 2006-08-19 20:10:03 +00:00
aquanight 11ab94eb6c failed oper notices moved to snomask +o 2006-08-19 20:02:10 +00:00
darkelf b27881f912 fdlist and helpers implementation currently new io is broken helper codes we
have to change unreal helpers in future but currently for making working io they
are not bad to use.
2006-08-19 08:45:21 +00:00
darkelf 1ca4c73f43 forgotten defines at ssl.c and ircd.c 2006-08-19 05:44:09 +00:00
Bram Matthys 81ae7da025 - Start of modulizing of channel modes. This basically just means we will be using extcmodes
for everything. Recode of extcmodes partially complete (only 30% or something), using a
  FAST 'slot system' now in the channel structure for paramter modes instead of linked lists.
  Besides the slot system being faster, it also causes less memory fragmentation (and
  memory fragmentation actually causes slower CPU as well, especially when running for a
  long time). Channel modes are still permanent and all.
  I'm first going to move modes to modules and then later on have a go at making them non-
  permanent (already know exactly how to do it, but other things go first ;p).
  Documentation on how all this works will be added later as well. It's really work-in-progress
  at the moment, which means: the API might (or 'will') change.
  Channel modes will be in src/modules/chanmodes, named chmode_<modechar>.c, that's the
  general rule at least.. Some will be 'packed together' like the RFC modes s/n/t/k/l/etc.
  Channel mode 'j' has been moved to src/modules/chanmodes/chmode_j.c which seems to work ok.
  Details (aka: documentation) about which loadmodule's will be needed for which modes
  (like I said, since some will be bundled in for example an 'rfc' module) will also be added
  later. For now it doesn't matter much, since there's only j ;).
  Side note: some +j code is still in the core (only eating 4 bytes per-user and 4 bytes
  per-channel, though), and will remain there for now.
  I did the work of above in 2 days, so ehm.. it's still far from complete, but I don't want
  to wait for one BIG commit which changes half of the ircd :P.
  Added hooks (needs to be documented, like all other hooks, one day ;p):
  HOOKTYPE_CAN_JOIN: called from can_join(), seems more logical than PRE_LOCAL_JOIN, also
  more nicely passes the key and link stuff.
  HOOKTYPE_CAN_SEND: not implemented yet. will be called from can_send()
  HOOKTYPE_CLEANUP_CLIENT: called from free_client()
  HOOKTYPE_CLEANUP_USER: called from free_user()
  HOOKTYPE_CLEANUP_USER2: called from exit_client when freeing a user.. I know, this
  might sound redundant, but then again.. some things REQUIRE a certain order (like before
  freeing membership links).. Or at least I don't want to break the current logic ;).
2006-08-17 15:29:41 +00:00
darkelf 20e42e5bbe Fixed broken compile because of sockaddr_storage 2006-08-16 16:32:53 +00:00
darkelf b7d50aee12 Indented Code also added DoEvents to new io engine. 2006-08-16 16:32:12 +00:00
darkelf 10584456b4 fdlist structure added to fdlist.h 2006-08-16 15:54:58 +00:00
darkelf 95d9f969d8 Moved write_pidfile function to ircd.c 2006-08-16 13:39:06 +00:00
darkelf 32843244bd Added new defines with NEW_IO some of old NOPOLL define names changed to
NEW_IO too.
2006-08-16 06:59:30 +00:00
darkelf e0c9b38269 Removed warning at SocketLoop 2006-08-13 21:49:13 +00:00
aquanight f71456670c Fix error msg in unreal_copyfile 2006-08-13 21:27:31 +00:00
aquanight ef3afb8844 fixed loadmodule to use correct error msg when actual module .so is missing 2006-08-13 19:35:20 +00:00
darkelf e884446871 SocketLoop become general io loop function for *nix too. 2006-08-09 13:26:23 +00:00
darkelf 3d40229700 Align typo 2006-08-08 21:32:41 +00:00
darkelf 47a9211bf0 Changes file entries 2006-08-08 21:31:46 +00:00
darkelf 078fd039d4 Removed old set_blocking function. 2006-08-05 17:01:21 +00:00
darkelf 0523a55aca Removed old buggy poll code from s_bsd.c and s_debug.c 2006-08-05 16:52:00 +00:00
Bram Matthys cbdd3138c8 Resynch with 3.2* cvs .551 (=post-3.2.5). This should mark the real start of Unreal3.3* 2006-08-05 13:23:53 +00:00
Bram Matthys 361d1646e9 some version # -> 3.3* crap 2005-06-22 23:20:25 +00:00
Bram Matthys 9894663a55 better cvsignore 2005-06-22 23:05:18 +00:00
Bram Matthys 704b6260d2 branch off from current unreal3_2_fixes (post-Unreal3.2.3), for Unreal 3.3* (that's the idea at least). 2005-06-22 22:56:06 +00:00
281 changed files with 41858 additions and 21394 deletions
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
+1003
View File
File diff suppressed because it is too large Load Diff
+84 -25
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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; };
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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; };
+2 -2
View File
@@ -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; };
+2 -2
View File
@@ -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; };
+39 -6
View File
@@ -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
View File
@@ -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
Vendored
+4680 -2203
View File
File diff suppressed because it is too large Load Diff
+4453
View File
File diff suppressed because it is too large Load Diff
+57 -1
View File
@@ -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
View File
@@ -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).
-764
View File
@@ -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
View File
@@ -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!
*/
-789
View File
@@ -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!)!
*/
-793
View File
@@ -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 !
*/
-812
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
-1333
View File
File diff suppressed because it is too large Load Diff
+16 -9
View File
@@ -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).
+465
View File
@@ -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 &quot;Client connecting&quot; or &quot;Client exiting&quot; 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 &quot;Link bla bla bla is now synched&quot; 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: &amp;)</h2>
<p><b>Syntax (nick change):</b> <tt>:<i>oldnick</i> &amp; <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>&amp; <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>&amp; <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>&amp; <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>&amp; <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>&amp; <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 &amp; 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 &quot;quiet&quot; 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>&amp;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 &amp;, ban exceptions prefixed with ", and invite exceptions with '. Note that when a &amp;, " 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> &quot;Larger&quot; key (as defined by strcmp) is preferred (for example, +k moo versus +k meow : +k moo wins).</li>
<li><b>Channel Link:</b> &quot;Larger&quot; 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 &lt;-- 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 &quot;SAPart:&quot;.</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 &quot;*** Notice (or other leader here) -- from blah:&quot; 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 &quot;*** Notice (or other leader here) -- from blah:&quot; 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 &quot;digit&quot; 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 &quot;digit&quot; in the base64 encoded IP corresponds to 6 bits of the IP address.</p>
<p>An IPv4 address is 32 bits, so 6 base64 &quot;digits&quot; are needed. Since base64 requires values to come in multiples of 4 &quot;digits&quot;, 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 &quot;digits&quot; 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 -2
View File
@@ -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 '
+2 -1
View File
@@ -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
+3
View File
@@ -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
View File
@@ -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&nbsp; @ <a href="http://www.vulnscan.org/UnrealIrcd/unreal32docs.html">http://www.vulnscan.org/UnrealIrcd/unreal32docs.html</a>
und&nbsp; 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&nbsp; @
<a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
und&nbsp; 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&nbsp; 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. &#8211; Copyright UnrealIRCd Development Team 2002-2005</p>
werden. &#8211; 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 &#8211; Anmerkungen zu Upgrade/Mixing 3.1.x -&gt; 3.2</a>&nbsp; </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 &quot;./Config&quot; und &quot;make&quot;
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.&nbsp;</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&nbsp; <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&nbsp; <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>
&nbsp;
<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 &quot;trusted&quot; (&quot;vertraut&quot;)
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>&nbsp;</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&nbsp; *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">&nbsp;</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.&nbsp; 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 &quot;case sensitive&quot;,
daher ist &quot;BLOCK-NAME&quot; nicht dasselbe wie &quot;block-name&quot;. Es
daher ist &quot;<i>BLOCK-NAME</i>&quot; nicht dasselbe wie &quot;<i>block-name</i>&quot;. Es
gibt eine spezielle Notation wie Einträge in der Konfigurationsdatei als
Beschreibung angegeben werden. Spricht man z.B. über &quot;&lt;directive-name&gt;&quot;
im obigen Beispiel, so wird angegeben &quot;&lt;block-name&gt;::&lt;block-directive&gt;&quot;
@@ -1140,10 +1188,10 @@ einem Unterblock sein, der keinen Namen hat.</p>
&nbsp;&nbsp;&nbsp; über mehrere<br>
&nbsp;&nbsp;&nbsp;&nbsp;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>
&nbsp;&nbsp;&nbsp; connected(&lt;servermask&gt;) ergibt 'wahr', wenn ein Server
@@ -2439,7 +2490,7 @@ im Oper Block bei &quot;oper::svhost&quot;.</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 &lt;type&gt; {
word &lt;text-to-match&gt;;
@@ -2447,14 +2498,15 @@ bekannt als badwords.*.conf)</font>
action &lt;replace|block&gt;;
};</pre>
<p>Mit dem Badword Block kann die Liste für User- und Channelmodus +G
bearbeitet werden, um bestimmte &quot;badwords&quot; 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 &quot;badwords&quot; 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&nbsp; &lt;censored&gt;
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 &quot;replace&quot;
eingetragen, dann wird das Badword ersetzt. Falls hier &quot;block&quot;
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 &lt;name&gt; {
target &lt;nick-to-forward-to&gt;;
type &lt;type-of-alias&gt;;
spamfilter &lt;yes|no|&gt;
};</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 &quot;alias::&quot; identisch mit
dem Nick ist, an den weitergeleitet wird, kann &quot;alias::target&quot;
weggelassen werden. <b> alias::type</b> gibt den Typ des Alias an, gültige
Typen sind hier &quot;services&quot; (der User ist auf dem Services Server),
&quot;stats&quot; (der User ist auf dem Stats Server), und &quot;normal&quot; (der
User ist normaler User auf irgendeinem Server). Der &quot;alias block&quot; hat
auch einen weiteren Zweck, der nachfolgend erklärt ist.</p>
&quot;stats&quot; (der User ist auf dem Stats Server) &quot;normal&quot; (der
User ist normaler User auf irgendeinem Server) und &quot;channel&quot; (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 &quot;alias block&quot; hat
auch einen weiteren nachfolgend erklärten Zweck.</p>
<p>Syntax [Befehl alias]:
<pre>alias &lt;name&gt; {
</pre>
<pre> /* Für Aliase, die an User/Channels gesendet werden */
format &lt;regex-expression&gt; {
target &lt;nick-to-forward-to&gt;;
type &lt;type-of-alias&gt;;
parameters &lt;parameter-string&gt;;
};
/* For 'echte Aliase' */
format &lt;regex-expression&gt; {
command &lt;command&gt;;
type real;
parameters &lt;parameter-string&gt;;
};
/* Etc... You can have as many format blocks as you wish.. */</pre>
<pre> format &lt;regex-expression&gt; {
...
};
type command;
spamfilter &lt;yes|no&gt;
};</pre>
<p>Wird der &quot;alias Block&quot; 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 &quot;alias::format&quot; 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 &quot;realen Aliasen&quot; 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 &quot;Real&quot; 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 &quot;%&quot; gefolgt von einer Nummer
angegeben. So ist z.B. %1 der erste Parameter, %2 der zweite Parameter usw.&nbsp;
Man kann auch festlegen, dass ab einem Parameter alle bis zum Ende gelten
sollen, dann gibt man z.B. an:&nbsp; %1- (das Minuszeichen bedeutet: &quot;alle
weiteren&quot;) 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.&nbsp;</p>
<p> Um Beispiele zum Alias Block
zu sehen, schaue man in doc/example.conf.</p>
<p>&nbsp;</p>
</div>
@@ -2758,7 +2828,66 @@ spamfilter {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reason &quot;Kein Spam erlaubt&quot;<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 &lt;webirc|old&gt;;
username &lt;mask&gt;; /* optional */
hostname &lt;mask&gt;;
password &lt;password&gt;; /* only for type webirc */
};</pre>
<p>&nbsp;</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 &quot;webirc_password&quot;
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>&nbsp; &quot;webirc&quot; 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 &quot;1.2.3.4&quot;;
password &quot;LpT4xqPI5&quot;;
};</pre>
<p>&nbsp;</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,&nbsp; als&nbsp; 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 &quot;1.2.3.4&quot;;
};</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 &lt;limit&gt;;<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 &lt;limit&gt;;<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 &lt;limit&gt;;</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 &lt;stats-list&gt;;</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 {&lt;stats-flag>; &lt;stats-flag&gt;;};</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 &lt;amount-of-channels&gt;;</font><br>
Einstellung, in wie vielen Channels ein User gleichzeitig sein darf.</p>
<p><b>set::maxdccallow &lt;amount-of-entries&gt;;</b><br>
@@ -2901,7 +3041,7 @@ Zeichens
<p><font class="set">set::channel-command-prefix &lt;command-prefixes&gt;;<br>
</font>Stellt das Vorzeichen für Services in &quot;channel Befehlen&quot; 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 &quot;`!.&quot;.</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 &lt;target(s)&gt;</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 &quot;#help,#spamreport&quot;</p> <p><b>set::<font face="Helvetica,Arial" size="-1">check-target-nick-bans</font> &lt;yes|no&gt;</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&lt;yes|no&gt;</b><br>
Aktiviert oder deaktiviert die Zeitsynchronisation beim Start des IRCd. Default
ist 'yes'.</p>
<p><font class="set">set::timesynch::server &lt;IP&gt;</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 &lt;time&gt;</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 &#8211; 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
View File
File diff suppressed because it is too large Load Diff
+369 -235
View File
File diff suppressed because it is too large Load Diff
+164 -53
View File
@@ -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. Ç ÷ñÞóç ôïõ åããñÜöïõ ìå Üëëï ðñüãñáììá , Þ ç äéáíïìÞ&nbsp; áõôïõ ôïõ åããñÜöïõ ìáæé ìå Üëëï ðñüãñáììá áðáãïñÝõåôáé áõóôçñÜ ÷ùñßò ôçí ãñáðôÞ Üäåéá ôçò ïìÜäáò ðñïãñáììáôéóìïý ôïõ UnrealIRCd. Áõôï ôï Ýããñáöï ìðïñåé íá áíôéãñáöåß/åêôõðùèåß/åðáíáäçìéïõñãçèåß/åêäïèåß üóåò öïñÝò èÝëåôå, üóï ðáñÝ÷åôáé ãéá ÷ñÞóç ìå ôï UnrealIRCd êáé äåí Ý÷åé ôñïðïðïéçèåß ìå êáíÝíáí ôñüðï. &#8211; Copyright UnrealIRCd Development Team 2002-2004</P>
<P>Áõôü ôï Ýããñáöï Ý÷åé ãñáöôåß ãéá áðïêëåéóôéêÞ ÷ñÞóç ìå ôï UnrealIRCd. Ç ÷ñÞóç ôïõ åããñÜöïõ ìå Üëëï ðñüãñáììá , Þ ç äéáíïìÞ&nbsp; áõôïõ ôïõ åããñÜöïõ ìáæé ìå Üëëï ðñüãñáììá áðáãïñÝõåôáé áõóôçñÜ ÷ùñßò ôçí ãñáðôÞ Üäåéá ôçò ïìÜäáò ðñïãñáììáôéóìïý ôïõ UnrealIRCd. Áõôï ôï Ýããñáöï ìðïñåé íá áíôéãñáöåß/åêôõðùèåß/åðáíáäçìéïõñãçèåß/åêäïèåß üóåò öïñÝò èÝëåôå, üóï ðáñÝ÷åôáé ãéá ÷ñÞóç ìå ôï UnrealIRCd êáé äåí Ý÷åé ôñïðïðïéçèåß ìå êáíÝíáí ôñüðï. &#8211; 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) êáíÜëé&nbsp; #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) êáíÜëé&nbsp; #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&#8211; <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 &#8211;
name=configuringyourunrealircdconf></A></P>
<DIV style="MARGIN-LEFT: 11.25pt">
<P>Ðñþôá áð&#8217;üëá, ôï íá äçìéïõñãÞóåôå Ýíá êáëü unrealircd.conf èá ðÜñåé áñêåôü ÷ñüíï, ðéèáíüôáôá ðåñßðïõ 10 &#8211; 60 ëåðôÜ. Ìðïñåßôå íá ðñïóðáèÞóåôå íá ôï îåêéíÞóåôå üóï ðéï ãñÞãïñá ìðïñåßôå êáé íá ôï âåëôéóôïðïéÞóåôå áñãüôåñá, Þ ìðïñåßôå íá ìÜèåôå ôéò óçìáíôéêüôåñåò ðáñáãñÜöïõò âÞìá âÞìá êÜôé ðïõ ðñïôåßíåôáé ;P. Áí Ý÷åôå êÜðïéï ðñüâëçìá, åëÝãîôå ôçí óýíôáîç, åëÝãîôå ôï åã÷åéñßäéï êáé åëÝãîôå ôï FAQ ðñéí æçôÞóåôå ïðïéáäÞðïôå âïÞèåéá/ôï õðïâÜëåôå þò bug.</P>
</DIV>
<P>Ðñþôá áð&#8217;üëá, ôï íá äçìéïõñãÞóåôå Ýíá êáëü unrealircd.conf èá ðÜñåé áñêåôü ÷ñüíï, ðéèáíüôáôá ðåñßðïõ 15 &#8211; 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>&lt;block-name&gt; Åßíáé ï ôýðïò ôçò åðéëïãÞò, üðùò ôï me, Þ ôï admin. &lt;block-value&gt; ìåñéêÝò öïñÝò ïñßæåé ìéá ôéìÞ, üðùò óôï /oper login, áëëá Üëëåò öïñÝò èá åßíáé Ýíáò õðï-ôýðïò üðùò óôï ban user.</P>
<P>&lt;block-directive&gt; Åßíáé ìéá ÷ùñéóôÞ ìåôáâëçôÞ áðïêëåéóôéêÜ ãéá ôçí åðéëïãÞ, êáé ôï &lt;directive-value&gt; åßíáé ç ôéìÞ ìå ôçí ïðïßá ó÷åôéæåôáé. Áí ôï &lt;directive-value&gt; ðåñéÝ÷åé êåíÜ, Þ ÷áñáêôÞñåò ðïõ áíôéðñïóùðåýïõí Ýíá ó÷üëéï ðñÝðåé íá ðåñéÝ÷åôáé ìÝóá óå ëáôéíéêÜ åéóáãùãéêÜ. Áí èÝëåôå íá ÷ñçóéìïðïéÞóåôå Ýíáí åéóáãùãéêü ÷áñáêôÞñá ìÝóá óå ìéÜ åéóáãùãéêÞ öñÜóç ÷ñçóéìïðïéÞóôå \" êáé ôï ðñüãñáììá èá ôï äå÷ôåß þò åéóáãùãéêü ÷áñáêôÞñá.</P>
<P>Ôï &lt;block-directive&gt; ìðïñåß íá Ý÷åé ïñßóìáôá ìÝóá ôïõ, óå áõôÞí ôçí ðåñßðôùóç èá Ý÷åé ðåñéÝ÷åôáé ìÝóá óå áãêýëåò. ÌåñéêÝò åðéëïãÝò äÝí Ý÷ïõí ïñßóìáôá êáé ïñßæïíôáé áðëþò ìå ôï &lt;block-value&gt;, üðùò ôï include. Áêüìá óçìåéþóôå ïôé äåí õðÜñ÷åé ìïñöïðïßçóç ìå set, ðïõ óçìáßíåé ïôé üëç ç åðéëïãÞ ìðïñåß íá åìöáíßæåôáé óå ìéÜ ãñáììÞ Þ óå ðåñéóóüôåñåò. Ç ìïñöïðïßçóç ðéï ðÜíù åßíáé áõôÞ ðïõ êáíïíéêÜ ÷ñçóéìïðïéåßôáé (êáé ðïõ èá ÷ñçóéìïðïéåßôáé óôï áñ÷åßï) ãéáôß åßíáé åýêïëï íá äéáâáóôåß. </P>
<P>Óçìåßùóç: Ôï áñ÷åßï åðéëïãþí åßíáé åõáßóèçôï óôá êåöáëáßá äçëáäÞ ôï BLOCK-NAME äåí åßíáé ôï ßäéï ìå ôï&nbsp; block-name. ÕðÜñ÷åé åéäéêÞ óçìåßùóç ðïõ áíáöÝñåôáé óôéò êáôá÷ùñÞóåéò óôï áñ÷åßï åðéëïãþí. Øéá ðáñÜäåéãìá, ìéëþíôáò ãéá ôï &lt;directive-name&gt; óôï ðáñÜäåéãìá ðáñáðÜíù, èá ëÝãáôå &lt;block-name&gt;::&lt;block-directive&gt;, êáé áí áõôü ôï üñéóìá Ý÷åé õðï-åðéëïãÞ ðïõ èÝëåôå íá óõìðåñéëÜâåôå, èá ðñïóèÝôáôå Üëëï Ýíá :: êáé ôï üíïìá ôïõ õðï ïñßóìáôïò. </P>
<P>Óçìåßùóç: Ôï áñ÷åßï åðéëïãþí åßíáé åõáßóèçôï óôá êåöáëáßá äçëáäÞ ôï <i>BLOCK-NAME</i> äåí åßíáé ôï ßäéï ìå ôï&nbsp; <i>block-name</i>. ÕðÜñ÷åé åéäéêÞ óçìåßùóç ðïõ áíáöÝñåôáé óôéò êáôá÷ùñÞóåéò óôï áñ÷åßï åðéëïãþí. Øéá ðáñÜäåéãìá, ìéëþíôáò ãéá ôï &lt;directive-name&gt; óôï ðáñÜäåéãìá ðáñáðÜíù, èá ëÝãáôå &lt;block-name&gt;::&lt;block-directive&gt;, êáé áí áõôü ôï üñéóìá Ý÷åé õðï-åðéëïãÞ ðïõ èÝëåôå íá óõìðåñéëÜâåôå, èá ðñïóèÝôáôå Üëëï Ýíá :: êáé ôï üíïìá ôïõ õðï ïñßóìáôïò. </P>
<P>Øéá íá áíáöåñèåßôå óå Ýíá áíþíõìï üñéóìá èá êÜíáôå &lt;block-name&gt;:: ðïõ èá óÞìáéíå óå áõôçí ôçí ðåñßðôùóç &lt;block-value&gt;, Þ èá ìðïñïýóå íá åßíáé ìéá êáôá÷þñçóç óå ìéá õðï-åðéëïãÞ ÷ùñßò üíïìá.</P>
<P>Ôñåßò ôýðïé ó÷ïëßùí õðïóôéñßæïíôáé:</P>
<P># Ó÷üëéï ìéÜò ãñáììÞò<BR>
// Ó÷üëéï ìéÜò ãñáììÞò<BR>
/* Ó÷üëéï ðïëëþí<BR>
&nbsp;&nbsp;&nbsp;&nbsp;ãñáììþí */</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 &lt;name&gt; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; target &lt;nick-to-forward-to&gt;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type &lt;type-of-alias&gt;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spamfilter &lt;yes|no&gt;;
};</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>&nbsp;
alias &lt;name&gt; {
alias &lt;name&gt; {
/* Ãéá aliases ðïõ óôÝëíïíôáé óå ÷ñÞóôåò/êáíÜëéá */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format &lt;regex-expression&gt; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; target &lt;nick-to-forward-to&gt;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type &lt;type-of-alias&gt;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameters &lt;parameter-string&gt;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };
/* Ãéá 'ðñáãìáôéêÜ aliases' */
format &lt;regex-expression&gt; {
command &lt;command&gt;;
type real;
parameters &lt;parameter-string&gt;;
};
/* Êôëð... ìðïñåßôå íá Ý÷åôå üóåò åðéëïãÝò äéáìüñöùóçò åðéèõìåßôå.. */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format &lt;regex-expression&gt; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type command;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type command;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spamfilter &lt;yes|no&gt;;
};</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">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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 &lt;webirc|old&gt;;
username &lt;mask&gt;; /* ðñïáéñåôéêü */
hostname &lt;mask&gt;;
password &lt;password&gt;; /* ìüíï ãéá ôýðïõ 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 &lt;limit&gt;;</B><BR>
Ïñßæåé ôï üñéï ãéá ôïí ìÝãéóôï áñéèìü ôùí áðïôåëåóìÜôùí ðïõ èá åðéóôñáöïýí áðï Ýíá /who. Áí áõôÞ ç åðéëïãÞ äåí åðéëå÷èåß, äåí èá åöáñìïóôåß êáíÝíá üñéï.</P>
<P><B>set::silence-limit &lt;limit&gt;;</B><BR>
Ïñßæåé ôï üñéï ãéá ôïí ìÝãéóôï áñéèìü ôùí SILENCE åðéëïãþí. Áí áõôç ç åðéëïãÞ äåí ïñéóôåß, ïñßæåôáé áõôüìáôá ôï üñéï ôùí 15.</P>
Ïñßæåé ôï üñéï ãéá ôïí ìÝãéóôï áñéèìü ôùí SILENCE åðéëïãþí. Áí áõôç ç åðéëïãÞ äåí ïñéóôåß, ïñßæåôáé áõôüìáôá ôï üñéï ôùí 15.</P>
<p><B>set::maxbans &lt;limit&gt;;</B><br>
Ïñßæåé ôï üñéï ôùí ìÝãéóôùí bans (+b) ðïõ åðéôñÝðïíôáé óå êÜèå êáíÜëé. Ç áñ÷éêÞ åðéëïãÞ åßíáé 60.
Áí ôï áëëÜîåôå, óéãïõñåõôåßôå ïôé ñßîáôå ìéá ìáôéÜ êáé óôï maxbanlength (äåßôå ðáñáêÜôù)!</p>
<p><b>set::maxbanlength &lt;limit&gt;;</b><br>
Ðáñüìïéï ìå ôï ðáñáðÜíù, áëëÜ ïñßæåé ôïí ìÝãéóôï áñéèìü ÷áñáêôÞñùí ãéá üëá ôá bans óõãêåíôñùìÝíá ìáæß, êÜôé ðïõ âáóéêÜ èÝôåé Ýíá üñéï óôçí (Þìç-)ìÝãéóôï ìÝãåèïò ìíÞìçò ôçí ïðïßá ìðïñïýí íá êáôáëÜâïõí üëá ôá bans óå Ýíá êáíÜëé. Ç áñ÷éêÞ åðéëïãÞ åßíáé 2048 (bytes). Ìå ôçí áñ÷éêÞ åðéëïãÞ set::maxbans óôá 60 áõôï åðéôñÝðåé 2048:60=34 ÷áñáêôÞñåò ãéá êÜèå ban óå ìÝóï üñï.</p>
<P><B>set::oper-only-stats &lt;stats-list&gt;;</B><BR>
Ïñßæåé ìéá ëßóôá ìå ôá stats flags ÷ùñßò äéá÷ùñéóôéêü ðïõ êáèïñßæåé ðïéá stats flags ìðïñïýí íá ÷ñçóéìïðïéÞóïõí ìüíï ïé äéá÷åéñéóôÝò. ÁãíïÞóôå áõôü ôï üñéóìá ãéá íá åðéôñÝøåôå óôïõò ÷ñÞóôåò íá ÷ñçóéìïðïéÞóïõí üëá ôá flags, ç ïñßóôå * ùóôå íá ìçí ìðïñïýí ïé áðëïß ÷ñÞóôåò íá ÷ñçóéìïðïéÞóïõí êáíÝíá flag. Ìüíï ç óýíôïìç ìïñöÞ ôùí stats flags ìðïñåß íá ïñéóôåß åäþ.</P>
<P><B>set::oper-only-stats {&lt;stats-flag&gt;; &lt;stats-flag&gt;;};</B><BR>
@@ -2651,7 +2753,7 @@ href="#includedirective">include</A>.
<P><B>set::maxdccallow &lt;amount-of-entries&gt;;</B><BR>
Ïñßæåé ôïí ìÝãéóôï áñéèìü åðéëïãþí ðïõ ìðïñåß íá Ý÷åé Ýíáò ÷ñÞóôçò óôçí ëßóôá DCCALLOW ôïõ.</P>
<P><B>set::channel-command-prefix &lt;command-prefixes&gt;;</B><BR>
Ïñßæåé ôï ðñüèåìá ÷áñáêôÞñùí ãéá õðçñåóßåò "åíôïëþí êáíáëéþí". Ìçíýìáôá ðïõ áñ÷ßæïõí ìå ïðïéïíäÞðïôå áðï ôïõò êáèïñéóìÝíïõò ÷áñáêôÞñåò èá óôÝëíïíôáé áêüìá êáé áí ï ÷ñÞóôçò åßíáé +d. Ç áñ÷éêÞ ôéìÞ åßíáé "`".</P>
Ïñßæåé ôï ðñüèåìá ÷áñáêôÞñùí ãéá õðçñåóßåò "åíôïëþí êáíáëéþí". Ìçíýìáôá ðïõ áñ÷ßæïõí ìå ïðïéïíäÞðïôå áðï ôïõò êáèïñéóìÝíïõò ÷áñáêôÞñåò èá óôÝëíïíôáé áêüìá êáé áí ï ÷ñÞóôçò åßíáé +d. Ç áñ÷éêÞ ôéìÞ åßíáé "`!.".</P>
<p><b>set::allowed-nickchars { &lt;list&gt; };</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 &lt;target(s)&gt;</B><BR>
Áõôïß ïé óôü÷ïé åßíáé åîáéñÝóåéò áðï ôï spam filtering (êáìßá åíÝñãåéá äåí èá ãßíåé), ìðïñåß íá åßíáé Ýíáò óôü÷ïò Þ ìéá ëßóôá äéá÷ùñéóìÝíç áðï êüììáôá.. ð.÷: except "#help,#spamreport"</P>
</DIV>
<p><b>set::check-target-nick-bans &lt;yes|no&gt;</b><br>
¼ðïôå êÜðïéïò ÷ñÞóôçò áëëÜæåé ôï øåõäþíõìï ôïõ/ôçò, åëÝã÷åé áí ôï ÍÅÏ øåõäþíõìï ðñÝðåé íá ãßíåé ban. Áí ðñÝðåé, äåí åðéôñÝðåé ôçí áëëáãÞ ôïõ øåõäùíýìïõ. Ç áñ÷éêÞ åðéëïãÞ åßíáé yes.</p>
<p><font class="set">set::timesynch::enabled &lt;yes|no&gt;</font><br>
Åíåñãïðïéåß ç áðåíåñãïðïéåß ôïí óõã÷ñïíéóìü þñáò óôï öüñôùìá. Default is yes.</p>
<p><font class="set">set::timesynch::server &lt;IP&gt;</font><br>
Ïé äéáêïìéóôÝò ìå ôïõò ïðïßïõò èá óõã÷ñïíßæåé ôçí þñá. Áõôü ìðïñåß íá áðïôåëåßôáé áðï ìÝ÷ñé 4 IP's ÷ùñéóìÝíåò ìå êüììá.
Ïé äéáêïìéóôÝò ðñÝðåé íá õðïóôéñßæïõí ôï ðñïôüêïëï NTP Ýêäïóç 4. Ç áñ÷éêÞ ôéìÞ åßíáé íá ÷ñçóéìïðïéïýíôáé 3 äéáêïìéóôÝò óõã÷ñïíéóìïý (US, EU,
AU). ÁéôÞóåéò óå áõôïýò ôïõò äéáêïìéóôÝò óôÝëíïíôáé ðáñÜëëçëá,åíù ç ãñçãïñüôåñç áðÜíôçóç êåñäßæåé.</p>
<p><font class="set">set::timesynch::timeout &lt;time&gt;</font><br>
Ï ìåãáëýôåñïò ÷ñüíïò ðïõ èá ðåñéìÝíåé Ýíáí äéáêïìéóôÞ ãéá íá áðáíôÞóåé. Áõôü åßíáé ìéá ôéìÞ ìåôáîý ôïõ 1 êáé ôïõ 5, ðåñéóóüôåñï äåí åßíáé äõíáôüí ãéáôé ðñïêáëåß ìåãÜëç áíáêñßâåéá. ÁõôÞ ç åðéëïãÞ Ý÷åé áñ÷éêÞ ôéìÞ 3 êáé ìÜëëïí äåí õðÜñ÷åé êáëüò ëüãïò ãéá íá ôçí áëëÜîåôå.</p></DIV>
<P><B><SPAN
style="FONT-SIZE: 18pt">5 &#8211; ÅðéðëÝïí áñ÷åßá<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 &#8211; 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
View File
@@ -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. &#8211; Copyright UnrealIRCd Development Team 2002-2004</p>
modified in anyway. &#8211; 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 &lt;directive-name&gt; in the
example above, you'd say &lt;block-name&gt;::&lt;block-directive&gt;, 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>
&nbsp;&nbsp;&nbsp;&nbsp;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 &lt;name&gt; {
maxclients &lt;maximum-clients&gt;;
sendq &lt;send-queue&gt;;
recvq &lt;recv-queue&gt;;
options {
&lt;option&gt;;
&lt;option&gt;;
...
};
};
</pre></p>
<p> </p>
@@ -746,6 +784,10 @@ class &lt;name&gt; {
<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>
&nbsp;&nbsp;&nbsp;<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 {
&nbsp;&nbsp;&nbsp;<b>noident</b> don't use ident but use username specified by client<br>
&nbsp;&nbsp;&nbsp;<b>ssl</b> only match if this client is connected via SSL<br>
&nbsp;&nbsp;&nbsp;<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 &lt;file-name&gt;;</p>
<pre>
include &lt;file-name&gt; {
bind-ip &lt;ip-to-bind-to&gt;;
};</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 &lt;file-name&gt;;</p>
<pre>loadmodule &lt;file-name&gt;;</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 &lt;channel-name&gt;;
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 &lt;server-name&gt; {
</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 &lt;server-name&gt; {
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 &lt;name&gt; {
target &lt;nick-to-forward-to&gt;;
type &lt;type-of-alias&gt;;
spamfilter &lt;yes|no&gt;;
};</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 &lt;name&gt; {
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 &lt;name&gt; {
/* For aliases to be sent to users/channels */
format &lt;regex-expression&gt; {
target &lt;nick-to-forward-to&gt;;
type &lt;type-of-alias&gt;;
parameters &lt;parameter-string&gt;;
};
/* For 'real aliases' */
format &lt;regex-expression&gt; {
command &lt;command&gt;;
type real;
parameters &lt;parameter-string&gt;;
};
/* Etc... You can have as many format blocks as you wish.. */
format &lt;regex-expression&gt; {
...
};
type command;
spamfilter &lt;yes|no&gt;;
};</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 &lt;webirc|old&gt;;
username &lt;mask&gt;; /* optional */
hostname &lt;mask&gt;;
password &lt;password&gt;; /* 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 &lt;email-address&gt;;</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 &lt;limit&gt;;</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 &lt;limit&gt;;</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 &lt;limit&gt;;</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 &lt;stats-list&gt;;</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 &lt;command-prefixes&gt;;</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 { &lt;list&gt; };</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 &lt;number-of-retries&gt;;</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 &lt;name-of-dns-server&gt;;</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 &lt;ip&gt;;</font><br>
Specifies the IP to bind to for the resolver, rarely ever needed.</p>
<p><font class="set">set::network-name &lt;name-of-network&gt;;</font><br>
@@ -2371,6 +2493,22 @@ set {
<p><font class="set">set::spamfilter::except &lt;target(s)&gt;</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 &lt;yes|no&gt;</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 &lt;yes|no&gt;</font><br>
Enable or disable time synchronization on-boot. Default is yes.</p>
<p><font class="set">set::timesynch::server &lt;IP&gt;</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 &lt;time&gt;</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 &lt;yes|no&gt;</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 &#8211; 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 &#8211; 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 ?&lt;topic&gt; or !&lt;topic&gt;<br></td>
<td>HelpOp is a new system of getting IRC Server help. You type either /HELPOP
? &lt;help system topic&gt; or /HELPOP ! &lt;question&gt; 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 &lt;search string&gt;</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 &#8211; 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
View File
@@ -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. &#8211; Copyright UnrealIRCd Fejlesztői Csapat 2002-2005</p>
nem módosítod. &#8211; 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 &#8211; 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 (&gt;20 belépés 15 másodperc alatt),
és +M-re, ha a megengedett üzenetek számát elérték (&gt;50 üzenet 15 másodperc alatt).<br>
<br>
Van egy &quot;töröld a módot X perc után&quot; featúra is: a <i>+f [20j#R5]:15</i> +R-re állítja a csatornát, ha
Van egy &quot;töröld a módot X perc után&quot; 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></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 &lt;blokk-direktíva&gt; egy egyszerû változó, amelyet a blokk határoz meg, és
a &lt;direktívaérték&gt; a hozzátartozó érték. Ha a &lt;directívaérték&gt;
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 &lt;blokk-direktíva&gt; 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 &lt;blokkérték&gt; 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 &lt;direktívanév&gt;-rõl
beszéljünk, azt mondjuk, hogy &lt;blokknév&gt;::&lt;blokk-direktíva&gt;, é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 &lt;blokknév&gt;::, ami
<p>Ha egy névtelen direktíváról szeretnénk beszléni, írjuk azt, hogy &lt;blokknév&gt;::, ami
ebben az esetben &lt;blokkérték&gt;-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>
&nbsp;&nbsp;&nbsp;&nbsp;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 &lt;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 &lt;név&gt; {
target &lt;ahová-továbbítsa&gt;;
type &lt;álparancs-típusa&gt;;
spamfilter &lt;yes|no&gt;;
};</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 &lt;név&gt; {
/* Felhasználóknak/csatornára küldendõ álparancsokra */
format &lt;reguláris-kifejezés&gt; {
target &lt;ahová-továbbítsa&gt;;
type &lt;álparancs-típusa&gt;;
parameters &lt;paraméter-sztring&gt;;
};
/* "Valódi" álparancsokra */
format &lt;reguláris-kifejezés&gt; {
command &lt;parancs&gt;;
type real;
parameters &lt;paraméter-sztring&gt;;
};
/* Stb... Annyi format blokkunk lehet, ahányat szeretnénk.. */
format &lt;reguláris-kifejezés&gt; {
...
};
type command;
spamfilter &lt;yes|no&gt;;
};</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 &lt;n
&lt;szövegsor&gt;;
...
};</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 &lt;webirc|old&gt;;
username &lt;maszk&gt;; /* nem kötelezõ */
hostname &lt;maszk&gt;;
password &lt;jelszó&gt;; /* 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 &lt;típusok|*&gt;</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 &lt;csatornák&gt;;</font><br>
@@ -2200,6 +2305,14 @@ set {
<p><font class="set">set::silence-limit &lt;határ&gt;;</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 &lt;határ&gt;;</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 &lt;határ&gt;;</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 &lt;flaglista&gt;;</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 &lt;parancs-elõtagok&gt;;</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 { &lt;felsorolás&gt; };</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 &lt;célpont(ok)&gt;</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 &lt;yes|no&gt;</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 &lt;yes|no&gt;</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 &lt;IP&gt;</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 &lt;idõtartam&gt;</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 &#8211; 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 &#8211; 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.
BIN
View File
Binary file not shown.
+62 -15
View File
@@ -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!";
};
+2
View File
@@ -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
View File
@@ -6,7 +6,7 @@
#include <string.h>
#ifndef _WIN32
#include "tre/regex.h"
#include "pcreposix.h"
#else
#include "win32/regex.h"
#endif
-63
View File
@@ -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__ */
-2
View File
@@ -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
View File
@@ -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
View File
@@ -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
+420
View File
@@ -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
View File
@@ -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);
-2
View File
@@ -63,9 +63,7 @@ typedef struct hashentry {
/*
* Throttling
*/
#ifdef THROTTLING
#define THROTTLING_HASH_SIZE 1019 /* prime number */
#endif
#define NullChn ((aChannel *)0)
+27
View File
@@ -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
View File
@@ -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
View File
@@ -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
-2
View File
@@ -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();
+7
View File
@@ -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
-3
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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 ""
+189
View File
@@ -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 */
+17
View File
@@ -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
+82
View File
@@ -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 */
+6 -1
View File
@@ -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
View File
@@ -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"
+49 -27
View File
@@ -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
View File
@@ -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:
-28
View File
@@ -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";
};
};
-23
View File
@@ -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";
};
};
-28
View File
@@ -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";
};
};
-27
View File
@@ -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";
};
};
-27
View File
@@ -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";
};
};
-25
View File
@@ -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";
};
};
-27
View File
@@ -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";
};
};
-26
View File
@@ -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;
};
};
-26
View File
@@ -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;
};
};
-18
View File
@@ -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";
};
};
-26
View File
@@ -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;
};
};
-18
View File
@@ -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";
};
};
-26
View File
@@ -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;
};
};
-23
View File
@@ -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";
};
};
-27
View File
@@ -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";
};
};
-28
View File
@@ -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";
};
};
-27
View File
@@ -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";
};
};
-26
View File
@@ -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;
};
};
-18
View File
@@ -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";
};
};
-28
View File
@@ -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";
};
};
-27
View File
@@ -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";
};
};
-26
View File
@@ -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;
};
};
-26
View File
@@ -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;
};
};
-250
View File
@@ -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
-38
View File
@@ -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)
-26
View File
@@ -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;
};
};
-27
View File
@@ -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";
};
};
-20
View File
@@ -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