1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-23 20:06:38 +02:00

577 Commits

Author SHA1 Message Date
Bram Matthys af1c845d09 ahem! typo ;p... and a bad one... horrible resolverbug on ipv6 ;) 2005-10-01 22:18:07 +00:00
Bram Matthys 59e09d1672 resolver fixed:
- c99 // comments removed
- fixed severe link block problem, would probably crash on unresolved hostname
- made 'cannot resolve' msgs for link blocks the same (in 1) failure and 2) bad response)
- fixed OOB read on 64bit systems with IPv6 enabled (in cacher)
- some reorganizing of the source or when we free things, to make things cleaner :)
- I think that was it.
This is was all done thanks to a manual source code audit I did on the printed out source ;). oldscool ^_^
2005-10-01 20:40:57 +00:00
Bram Matthys aee36057b6 read-after-free fixes 2005-09-28 22:17:03 +00:00
Bram Matthys 8eb85bc81c retry & timeout set :) 2005-09-27 22:26:23 +00:00
Bram Matthys 3510bad641 win32 stuff ATTEMPT #2 2005-09-27 22:08:06 +00:00
Bram Matthys a26180b5d1 seems c-ares now works fine on windows too... :) 2005-09-27 21:57:56 +00:00
Bram Matthys 8f6b70b260 hm! ipv6 seems to work with new resolver :) 2005-09-27 20:18:41 +00:00
Bram Matthys 342eb1bf7e ok at least ipv6 does not crash, but gotto fix byte order now ;) 2005-09-22 00:45:04 +00:00
Bram Matthys 2f876f353f ipv6 fixes 2005-09-22 00:41:41 +00:00
Bram Matthys 780655c886 dumdeedum 2005-09-22 00:03:44 +00:00
Bram Matthys 6a81fc54aa more || exit 1 <-- for TRE library ;) 2005-09-21 23:55:11 +00:00
Bram Matthys 5ff71d369d added || exit 1 <--- is this legal? 2005-09-21 23:52:40 +00:00
Bram Matthys 0234dfeae6 added .tar.gz of c-ares (ehm.. 1.3.0 I think) 2005-09-21 23:50:10 +00:00
Bram Matthys fed77b386d current makefile / configure work 2005-09-21 23:46:29 +00:00
Bram Matthys ec1fa23dad refcount bug (also in 3.2.3-cvs) 2005-09-12 18:22:42 +00:00
Bram Matthys 0f4443efd0 fixed reference count bug (also comitted to unreal3_2_fixes). 2005-09-12 16:34:42 +00:00
Bram Matthys f31b959ff5 /connect (and autoconnect????) now work as well. still need to fix up ipv6, AND fixing a reference count problem (but that one is also present in core unreal ;p) regarding link blocks + rehash. 2005-09-11 19:21:12 +00:00
Bram Matthys 97bd2d7a48 c-ares stuff... only linkblocks/configstuff is left. AND test all ipv6 stuff... 2005-09-08 23:40:08 +00:00
cvs2hg 329639f9f1 fixup commit for branch 'c-ares_resolver' 2005-09-04 22:10:07 +00:00
Bram Matthys 1be36fc0dd get rid of "please report!" in operator count bug thing.. we had enough responses :). The code itself still warns&corrects though... 2005-09-04 22:10:06 +00:00
Bram Matthys 61b3242013 - Fixed win32 makefile, now compiles fine. 2005-08-29 21:28:06 +00:00
Bram Matthys 1023df3cd3 CMDLINE_CONFIG change & FAKELAG_CONFIGURABLE added:
- CMDLINE_CONFIG behavior change: command line configuration is now still permitted
  if #undef'ed (which is the default) if uid==euid && gid==egid, since it doesn't make
  any sense to disable it then and is in fact just plain annoying.
- Added FAKELAG_CONFIGURABLE option in include/config.h, this enables an option called
  class::options::nofakelag, which disables "fake lag" for a certain class (that is:
  the artificial delay introduced by the ircd to prevent flooding is turned off,
  allowing the user to flood at full speed).
  IT'S USE IS DISCOURAGED UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.
  Sorry, option is not in ./Config -advanced since I don't get autoconf working, but it's
  such a scary option that this might as well be a good idea to keep in config.h anyway.
  This feature has been suggested for several years (and refused), but the final
  suggestion (with implementation specific hints) came from Gilou in bug #0002207.
- changed a comment slightly in m_tkl.c to get rid of harmless warning ;)
2005-08-28 20:48:46 +00:00
Bram Matthys 4c3681afb9 another fix, for a slight variant 2005-08-28 19:13:51 +00:00
Bram Matthys 72910fafc9 - (5 minutes later..) Small update for above, fix was incorrect for ipv6. 2005-08-28 19:09:15 +00:00
Bram Matthys b1c4afdd41 - Fixed a bug where an invalid /*line could cause a crash, reported by Gilou (#2629). 2005-08-28 19:00:01 +00:00
Bram Matthys 0bc12e552c - Spamfilter: regexes (and reasons) are now more limited in size, this is to combat "I set
a spamfilter, but cannot remove it" problems. In practice this means - depending on the
  length of your spamfilter reason - regexes will be max ~300 characters.
  Spamfilters set in the .conf can be slightly longer (which still causes them to be
  truncated in '/stats f', but they don't have to be removed anyway so it's kinda
  acceptable if it's really needed). This should fix bug #2083, reported by White_Magic.
2005-08-28 16:28:40 +00:00
Bram Matthys 82d4c429da - Added Bulgarian example.bg.conf, translated by Peace. 2005-08-27 14:39:21 +00:00
Bram Matthys 5b444f173a LALalal 2005-08-26 19:38:25 +00:00
Bram Matthys aab5c3eb71 testtest 2005-08-26 19:37:45 +00:00
Bram Matthys b2115e868e aa 2005-08-26 19:37:12 +00:00
Bram Matthys a84350b9d0 - Fixed crash with invalid set::network-name (eg: high ascii), reported by galahad
(#0002584), now printing an error instead (the network name is limited by the 005 spec).
2005-08-19 19:12:21 +00:00
Bram Matthys 247e2ea6d5 - Temporary workaround for spamfilter bug: action 'viruschan' in combination with the
'u' (user) target can cause severe problems (crashes, etc). For now, we have disabled
  'viruschan' in combination with 'u'. A real fix will require quite some work, sorry.
2005-08-19 15:55:06 +00:00
Bram Matthys b340844aed - Fixed ~c not working properly with * and ?'s in channel names.. Now you just need to
escape them like in all bans (eg: to ban #* you need to +b ~c:#\*). As an additional
  bonus, real wildcards are now accepted and processed (eg: +b ~c:#*sex*, just don't
  forget to specify the #). Reported by PhantasyX (#2605).
- Sidenote on above: ~c:*chan* is not supported (use ~c:#*chan* instead) because it would
  cause "hidden bans", therefore it now prints a message (which is useful anyway), but
  does accept such remote bans. In 3.2.5 or so we could enable support for it, it's
  not that important though... ;)
- Added ifdefs for mass closing of file descriptors on start, can now be disabled by
  adding -DNOCLOSEFD as a compile option. Useful for valgrind w/--db-attach=yes, mpatrol,
  and some other debugging tools (not useful for anyone normally running a server).
- Fixed a read-after-free: sptr->serv->aconf was freed but not NULL'ed in exit_client,
  causing close_connection to read from it (when deciding on doing a quick reconnect).
  Could have caused a crash, although nobody ever reported one...
- Removed useless strncpyzt with dest==src.
2005-08-19 15:14:30 +00:00
codemastr df37fc9d5e Fixed a bug where allow channel::channel generated a warning when specified multiple times 2005-08-18 18:38:56 +00:00
Bram Matthys 0edd95dd2f removed useless var + forgot to give credit to ratbox for in6addr_any detection code. configure not rebuild because there are not exactly source code changes... 2005-07-25 21:33:34 +00:00
Bram Matthys 1e509d5dbf changelog comment slightly editted...
- Added -Wno-pointer-sign (if available) to get rid of those stupid warnings that are
  enabled by default even without -Wall (!?) on GCC4.
2005-07-25 21:25:43 +00:00
Bram Matthys ef43bedd03 blah.. that didn't work, this does. [seperate case/esac] 2005-07-25 21:24:57 +00:00
Bram Matthys 97cc076531 - Added -Wno-pointer-sign to get rid of those stupid warnings that are enabled by default
even without -Wall (!?) on GCC4.
2005-07-25 21:17:35 +00:00
Bram Matthys 3b84610599 - IPv6: Added configure check for in6addr_any to fix Fedora Core 4 compile problem,
reported by wheatie80 (#2594).
2005-07-25 21:11:27 +00:00
Bram Matthys 10458c06b9 - Fixed problem with crash-on-link if compiled with GCC 4, reported by jonneyboy (#2573)
and PHANTOm (#2590).
2005-07-25 19:16:16 +00:00
Bram Matthys 0a8e5e6a69 clarification on comment:
- Added -fno-strict-aliasing.. this might well be temporary, but we get tons of strict-
  aliasing warnings, so it sounds good to disable this type of optimization for now.
2005-07-22 23:44:39 +00:00
Bram Matthys 13b81da728 - Added -fno-strict-aliasing
..more on that later..
2005-07-22 23:40:07 +00:00
Bram Matthys bc0e3e9722 no-strict-aliasing.. 2005-07-22 23:30:57 +00:00
Bram Matthys 8a9bae11fa - Made '?*' work correctly in wildcard matches, reported by Bugz (#2585). 2005-07-05 20:26:18 +00:00
Bram Matthys 83cc82bbf2 typo in changelog 2005-07-05 19:16:22 +00:00
Bram Matthys 50ceda48d2 - Added some TSCTL logging (this reminds me we need to add new log levels for 3.3 ;p).
- Attempt to fix bug #2431: 3.2.2 broke CNAME delegation for reverse dns. I'm sorry it took
  so long, but this stuff just plain sucks...
2005-07-05 19:14:58 +00:00
angrywolf 570ba8e327 Doc update (week 23) 2005-06-25 21:52:45 +00:00
stylus740 5fae4f3bf7 Changes of week 23 doc/unreal32docs.de.html 2005-06-13 15:11:57 +00:00
Bram Matthys 08954beb0d -extern MODVAR int badclass; <-- unused var 2005-06-12 18:56:44 +00:00
babass b45a9c4e45 Changements mineurs 2005-06-12 16:54:01 +00:00
trocotronic 5b450e87fa Cambios semana 23 2005-06-11 09:22:55 +00:00
Bram Matthys 3efb800947 - Fixed 2 problems caused by TKL move: 1 windows crash, 1 problem with loading m_*.so,
reported by Trocotronic (#0002553, #0002554).
2005-06-07 14:06:48 +00:00
Bram Matthys d4f27c1183 - Fixed various major bugs due to TKL move from 13h ago. 2005-06-05 14:11:40 +00:00
Bram Matthys 4f40d73aa4 - Moved all TKL code and register_user to modules (using efuncs), that means 20 functions
and 2000 lines total that can be hotfixed if needed ;). The effort involved in moving all
  this sucks a lot though :/. This might need some more testing to make sure it doesn't break
  anything.
- Updated support OS list in documentation.
2005-06-05 00:58:36 +00:00
Bram Matthys 05f2bdfeab ok well, perhaps another time. 2005-05-26 20:45:37 +00:00
Bram Matthys 9d30ce5c75 - Removed quarantaine from all docs: this feature does not exactly add much security because
whenever a server is added to a network it has a lot of power that cannot simply be controlled
  by things like unsetting operflags remotely or anything else. I don't want to encourage
  anyone to use it.
2005-05-26 20:44:01 +00:00
Bram Matthys 24beac59c3 - Cosmetic bug in set::modes-on-join: now rejecting +I in it. Reported by Ron2K (#0002508). 2005-05-26 20:23:53 +00:00
Bram Matthys 5fcd80e11f - Fixed a TKL crash on incorrect *line, reported by nanookles1234 (#0002524).
- Redid include dependencies in Makefile, this makes things safer because on any .h change it
  would force a recompile of all files, but it could mean things will be a bit slower for us
  coders unless we tweak it later on.
- Changed whois a bit to print less useless results.
- Added several indicators to the "detect binary incompatible modules"-system such as detecting
  of a ziplinks module on non-ziplinks (on windows this is ok however), nospoof module on a
  a server without nospoof server, etc. Hopefully this will help some people preventing odd
  crashes because they did not recompile or (re)install modules properly.
- Added './unreal backtrace', so far this has only been tested on Linux and FreeBSD.
- Fixed a bug making ./Config not load the previously stored settings on Solaris 10 and
  probably other Unixes, reported by lion-o (#0002474).
2005-05-26 20:18:07 +00:00
Bram Matthys a58308d0d8 - Fixed chanmode G showing up twice in 005, reported by Snake (#0002466). 2005-04-18 19:30:09 +00:00
stylus740 481324ffef Corrected some spelling mistakes in doc/example.de.conf and doc/help.de.conf 2005-04-10 05:54:38 +00:00
stylus740 8b7a096bee Crorrected linking mistake doc/unreal32docs.de.html 2005-04-04 15:18:28 +00:00
Bram Matthys 1b0d97c5bd - Module coders: Added HOOKTYPE_LOCAL_SPAMFILTER: catches (local) spamfilter matches. 2005-04-02 20:42:15 +00:00
gsf 089ee0fca9 Week 12 Updates. 2005-03-29 01:35:12 +00:00
angrywolf 3a88cdbdc8 Doc update (week 12) 2005-03-26 18:37:36 +00:00
trocotronic d4144dd86c Cambios semana 12 2005-03-26 13:42:45 +00:00
stylus740 6868541b84 doc/unreal32docs.de.html Changes of week 12 2005-03-26 09:44:07 +00:00
stylus740 1f6ac63d4c doc/unreal32docs.de.html Changes of nickchar characters 2005-03-25 10:02:23 +00:00
Bram Matthys eae23edc62 watch clarification 2005-03-24 22:20:47 +00:00
gsf 56a694b1bb Week 10-11 Updates. 2005-03-23 21:46:55 +00:00
Bram Matthys 0a4c8ae419 - Added 'danish' nickchars, supplied by klaus (#0002436). 2005-03-23 21:45:22 +00:00
Bram Matthys c6f34c7de3 - spamfilter.conf Gaggle worm sigs were broken causing odd things to match, this is because
\\ now needs to be escaped as \\\\ due to the 3.2.3 conf change... didn't think of updating sigs.
2005-03-20 17:15:57 +00:00
stylus740 9407616a0e Changes of week 11 / crorrection of some errors: doc/unreal32docs.de.html 2005-03-19 09:30:09 +00:00
stylus740 cf7d113034 correction of errors in doc/help.de.conf 2005-03-14 20:55:42 +00:00
Bram Matthys fcc7ba12aa hm, nm 2005-03-14 16:51:50 +00:00
Bram Matthys e54a74eb52 - (repack) Fixed incorrect badword { } in conf causing a crash (should give an error). 2005-03-14 16:18:31 +00:00
Bram Matthys 4a69b08291 fixed incorrect badword { } causing a crash 2005-03-14 16:09:30 +00:00
Bram Matthys ca4bbb66eb ** 3.2.3 release ** 2005-03-13 20:24:39 +00:00
babass 352bb63b85 Petite correction de typo 2005-03-13 17:53:55 +00:00
Bram Matthys 4fb2a55374 - Corrected small doc typo in unreal32docs, reported by arbiter. 2005-03-13 17:35:55 +00:00
trocotronic a642574a97 Estas tildes... 2005-03-13 09:11:37 +00:00
stylus740 a7355b6ddb Changes 2005-03-13 of doc/example.de.conf doc/help.de.conf 2005-03-13 08:54:55 +00:00
angrywolf 1d0457a1b5 Doc update (week 10) 2005-03-13 02:14:57 +00:00
Bram Matthys c4aea6f0c8 ** internal 3.2.3-pre4 release ** 2005-03-12 21:17:59 +00:00
babass 8640d7da54 Remise à niveau du suivi de la mise à jour 2005-03-12 12:43:49 +00:00
trocotronic 9c2254ad27 Cambios semana 10 2005-03-12 10:00:08 +00:00
stylus740 597d1c2abc Chnges of week 10 for doc/example.de.conf doc/help.de.conf doc/unreal32docs.de.html 2005-03-12 09:04:53 +00:00
babass 6d754671a6 Quelques clarifications sur /RESTART, les redémarrages distants n'ont en fait jamais été supportés, la doc est donc modifiée (pas de modification du code) 2005-03-11 11:18:05 +00:00
Bram Matthys 66804a1cbc - Some clarifications on /RESTART, remote restarts were well never supported, so the docs
are now updated on that (no code changes).
2005-03-11 00:05:37 +00:00
Bram Matthys f92bf9e6d2 - Fixed an important channelmode +j memory corruption bug that would cause crashes, reported
by Bergee (#0002416).
2005-03-10 16:44:34 +00:00
Bram Matthys 34ec08348c - /SAMODE could cause 'fishy timestamp' if digit parameters were used (eg: SAMODE #chan +l 5),
this has now be fixed by sending an explicit TS 0.
2005-03-10 01:29:30 +00:00
codemastr 0fb95bd6ad Updated the list of donators 2005-03-09 15:32:10 +00:00
Bram Matthys 5e44f6b264 - Some spelling fixes in unreal32docs.html, reported by alex323 (#2412). 2005-03-08 23:20:18 +00:00
cvs2hg d4e480cebd fixup commit for tag 'unreal3_2_3pre3' 2005-03-06 21:22:39 +00:00
Bram Matthys 0d7e69803e version nr.. 2005-03-06 21:22:38 +00:00
Bram Matthys d0c6ee47c7 ** internal 3.2.3-pre3 release ** 2005-03-06 21:09:14 +00:00
Bram Matthys e9b536694b - Added doc/example.de.conf 2005-03-06 21:04:54 +00:00
Bram Matthys 6090928333 - Fixed /SAMODE with no can_override not always working with +G/+j/+T (extcmodes), reported
by Ron2K (#0002398).
2005-03-06 21:01:42 +00:00
codemastr 4e7f9c67ba Made it so the win32 version shows channel modes in /list 2005-03-06 19:53:55 +00:00
babass e84bb4b27b Retrait de l'ancien module de cloaking, tout le monde devrait utiliser le nouveau maintenant. 2005-03-06 16:54:34 +00:00
codemastr 7e83d6c150 Made +g get removed when an oper sets -o 2005-03-06 16:49:32 +00:00
gsf 71a2d3c316 Week 08-09 updates - fixed some markup stuff 2005-03-06 10:23:20 +00:00
stylus740 4c01089b10 corrected some mistakes in doc/help.de.conf (o3/06/2005) 2005-03-06 09:01:26 +00:00
Bram Matthys dc1fdb3f34 - Updated release notes (translated docs, zlib, doc\technical, sp/cS desynch). 2005-03-06 00:37:25 +00:00
Bram Matthys c0b6a97c04 - Removed oldcloak cloaking module, everyone should be using the new cloak one by now. 2005-03-06 00:29:20 +00:00
Bram Matthys 6ceb227f58 - Made windows installer also install doc\technical\* 2005-03-06 00:22:56 +00:00
Bram Matthys 20a7feba1f - Windows versions will now be compiled with zlib 1.2.2 and curl 7.13.1. 2005-03-06 00:17:38 +00:00
Bram Matthys f88cea7b45 - Fixed a bug where an unknown operflag would cause a crash. 2005-03-05 20:02:17 +00:00
Bram Matthys 24b9c466a2 - Fixed +s/+p and +c/+S desynch issue during netmerge, reported by Ron2K (#0002391). 2005-03-05 19:58:11 +00:00
babass 3e8f918aa9 Ajout de la documentation sur le mode de salon +j 2005-03-05 17:41:08 +00:00
Bram Matthys eba25738e8 - Added doc/help.de.conf and doc/example.hu.conf 2005-03-05 17:28:17 +00:00
codemastr 338e8497f3 Added documentation about channel mode +j 2005-03-05 17:13:42 +00:00
trocotronic 613544de5c Cambios semana 9 2005-03-05 17:00:25 +00:00
codemastr 0e927787e5 Fixed a couple of typos in doc/example.conf 2005-03-05 16:59:22 +00:00
stylus740 a58a263c67 Changes doc/unreal32docs.de.html week 08 + week 09 2005-03-05 13:02:59 +00:00
angrywolf f253237b1a Doc update (week 09) 2005-03-05 11:43:50 +00:00
cvs2hg 80ca78a285 fixup commit for tag 'unreal3_2_3pre2' 2005-03-04 23:35:31 +00:00
Bram Matthys ede8b13b44 ** internal 3.2.3-pre2 release ** 2005-03-04 23:35:30 +00:00
Bram Matthys 126c07c69f - Fix for above, also reported by Trocotronic. 2005-03-04 23:06:45 +00:00
Bram Matthys 1cec07250e - Fixed various (major) problems that the '-h yourself' caused, reported by Trocotronic
(#0002387).
2005-03-04 22:30:47 +00:00
Bram Matthys 2163d0dddf - Merged NICKCHARS= in PROTOCTL for now, since a seperate one is not (yet!) needed,
reported by SolutechUK and psadi (#0002386).
2005-03-04 21:00:52 +00:00
babass 25ac499c99 Traduction de la FAQ + modification de la partie charset 2005-03-04 20:13:47 +00:00
Bram Matthys 92f413f387 - Fixed a bug where /SAJOIN user 0 caused a desynch, reported by trystanscott (#0002384). 2005-03-04 19:18:25 +00:00
codemastr 137d136233 Fixed a bug with /invite with no parameters (accidentily broken when +I was added) 2005-03-04 17:17:37 +00:00
Bram Matthys 28efcdc65a ** internal 3.2.3-pre1 release ** 2005-03-03 19:50:23 +00:00
Bram Matthys 38a64f1c17 Version now really at 3.2.3-pre1 (not 3.2.2-pre1) ;p 2005-03-03 15:20:16 +00:00
Bram Matthys dabc42e0c3 - TRE mem corruption- & crash-bugs (eg: in backreferences). 2005-03-03 01:16:26 +00:00
Bram Matthys ee7961f31e - alias::format in combination with ::type 'command' caused a crash 2005-03-03 01:15:05 +00:00
Bram Matthys e68b82724a - Renamed version to 3.2.3-pre1, for Thursday. I'll keep the doc version numbers
at 3.2.2-CVS to avoid confusion with the online semi-realtime docs ;).
2005-03-03 00:13:24 +00:00
Bram Matthys cbbc35fae3 - Made some (incorrect) -Wall warnings dissapear. 2005-03-03 00:06:42 +00:00
Bram Matthys 3ae96d5eea typo 2005-03-02 15:41:22 +00:00
Bram Matthys f436f1ea51 - Made the (G)ZLINE warning only happen on add, as it should. Reported by crazy. 2005-03-02 15:40:10 +00:00
Bram Matthys 6a4878f7cd - Updated russian-w1251 (added 2 chars). 2005-03-01 23:54:06 +00:00
Bram Matthys 49ecd9c86f 3.2.3 -> 3.2.3-notyet :p 2005-03-01 22:57:33 +00:00
Bram Matthys 4eba81fa21 - Added 3.2.3 release notes (expected to be changed later on). 2005-03-01 22:56:52 +00:00
Bram Matthys 46fd5f27af - NickChars: Added 'romanian', supplied by crazytoon. 2005-02-28 22:19:03 +00:00
Bram Matthys 09dada415e - Updated doc/technical/token.txt, reported by webfox (#0002373). 2005-02-28 21:09:41 +00:00
Bram Matthys f5110bca31 - Made spamfilter 'u' also check nickchanges, reported by Gilou (#0002251). 2005-02-28 20:15:28 +00:00
Bram Matthys afcfabe8f6 - Made it so halfops can -h themselves, and chanadmins can -a themselves, reported
by fez (#0001503).
2005-02-28 19:50:19 +00:00
babass dc704bd1c0 Traduction de la FAQ + modification de la partie charset 2005-02-28 12:47:25 +00:00
Bram Matthys 6fdc15524b credit -> HERZ 2005-02-28 03:01:06 +00:00
Bram Matthys 0d3b7415ab typo in changelog 2005-02-28 00:28:22 +00:00
Bram Matthys 3597c4a135 - Fixed 'russian-w1250', was not ok at all. 2005-02-28 00:28:02 +00:00
Bram Matthys 19cc435119 - Made badwords (+G) now work with hardcoded word boundaries. Also made the fastbadwords
system accept more characters. Basically what this means is that the (fast) badwords
  system can now be used to properly block words with accents and things like that, just
  the way you block English words. Bug reported by MJ12Helios (#0002311).
2005-02-28 00:11:29 +00:00
Bram Matthys 914f6cceb3 - A warning is now sent to the oper if (s)he tries to add a (G)ZLINE on *@host.
(G)ZLINES should have an ipmask, not a hostmask, because they are processed BEFORE
  any dns lookups are done.
2005-02-27 22:39:51 +00:00
Bram Matthys 6afa0da62b - Fixed /(G)ZLINE [nick] placing the *line on *@host instead of *@IP, reported by
Snake (#0002246).
2005-02-27 22:25:17 +00:00
Bram Matthys 42b975a118 - Fixed various OperOverride issues:
- Opers with can_override can now +qa/-qa even if they are not netadmins,
    and they can also (un)set L/u.
  - Fixed several SAMODE bugs, such as not completely working for non-netadmins and
    not working if you were halfop'ed, etc.
  Bugs reported by pak, aquanight, niphler, Bugz, and more.
  If there are still any bugs left, please report them on http://bugs.unrealircd.org/
  NOTE: some of these enhancements will produce desynchs if your net is not 100%
        on current CVS / Unreal3.2.3 and an oper tries to use these 'new features'.
        So use with care on mixed-version nets.
2005-02-27 22:07:36 +00:00
Bram Matthys cc3a40c383 NICKCHARS:
- Added 'czech-w1250' and 'slovak-w1250' (both might miss a few characters).
  - Added 'windows-1250' group which contains czech-w1250, slovak-w1250, polish-w1250
    and hungarian.
  - Hungarian characters show both fine in w1250 and latin2, hence hungarian is included
    both in 'windows-1250' and 'latin2'.
  - Fixed bug: polish was not included in latin2
2005-02-27 19:41:21 +00:00
Bram Matthys de11702f2e - Added 'russian-w1251', supplied by Roman Parkin. There are like 3 main standards in Russia,
and 7 standards in total, so I didn't dare to call this one 'russian' ;).
2005-02-27 17:31:52 +00:00
Bram Matthys 03eb1935fd REVERT OF PREVIOUS 2, CHANGED TO AUTO-CONVERT:
- If a locop now has can_override/can_gkline/can_gzline we will print out a warning and
  convert it to globops. This is also what we always did for can_globalroute/can_gkill
  (well, except the warning). Giving such NETWORK (GLOBAL) privileges to a LOCAL operator
  does not make any sense and is therefore no longer allowed.
2005-02-27 16:22:24 +00:00
Bram Matthys d226a87522 - Made the can_override one an error since it makes 0.0% sense. 2005-02-27 16:07:31 +00:00
Bram Matthys f0718cc515 - Added warning on using can_override/can_gkline/can_gzline in combination with locops,
since these are global privileges they shouldn't be permitted (will be an error in 3.2.4).
2005-02-27 00:48:56 +00:00
Bram Matthys c01b0e1d0b typo in changelog 2005-02-27 00:02:03 +00:00
Bram Matthys 07d397b4ff - Changed the 'is a Secure Connection' msg/numeric in /whois from RPL_WHOISSPECIAL to
a slightly changed RPL_WHOISSECURE, namely: ':%s 671 %s %s :is using a Secure connection',
2005-02-27 00:01:36 +00:00
Bram Matthys 988a0eb0c2 - Fixed bug in +G where with not-really-matching-words color was needlessly stripped,
reported by SpeedFire (#0002375).
2005-02-26 23:40:54 +00:00
Bram Matthys 3b229d5d34 - Nicks with ~ are now also not cutoff anymore but rejected like any other illegal char (#0002074). 2005-02-26 23:31:07 +00:00
Bram Matthys 4887bb365b - Fixed halfop trying to set chanmode +G/+T/+j not getting an error message, reported
by Ron2K (#Ron2K).
- Module coders: using extcmode_default_requirechop is now depricated, check src/extcmodes.c
  ctrl+f extcmode_default_requirechop for more details (solution: copy+paste & fill in modechar).
2005-02-26 23:27:08 +00:00
Bram Matthys 7bad90fec1 - Made CHGIDENT, CHGHOST and CHGNAME use more numerics (where possible) (#0002358). 2005-02-26 23:10:14 +00:00
Bram Matthys 4788bc3f76 - Fixed bug where chanmode +f #t (per-user text kick[ban]) was also affecting halfops,
reported by seneces (#0002333).
- Fixed doc bug reported by Dukat (#0002374). Also fixed 2 error msgs related to
  the nickchars system printing out incorrect set:: directives.
- spamfilter.conf and dccallow.conf are now also copied upon make install, reported by
  TommyTheKid (#0002313).
2005-02-26 22:47:10 +00:00
Bram Matthys 4af12d14ea - Fixed a bug in mode-skipping (eg '+qk a b' if not +q) and error msgs, reported by brain2
(#0002372).
2005-02-26 17:42:24 +00:00
angrywolf c8a4857452 Doc update (week 08), I've also done some grammar corrections 2005-02-26 13:23:19 +00:00
trocotronic 78673b7228 Cambios semana 08 2005-02-26 10:21:05 +00:00
babass b8424dc50f Update support des caractères 2005-02-25 20:56:07 +00:00
codemastr 0b43d15d53 Fixed a bug where SAJOIN would list channels multiple times in the notices 2005-02-25 18:25:18 +00:00
codemastr d8fc8c0935 Fixed a bug causing SVSNICK not to send out a snomask +n notice 2005-02-25 18:14:35 +00:00
codemastr ab4a0a31b5 Updated wircd.def. Fixed a bug where USERIP would say USERHOST in the not-enough-parameters numeric 2005-02-25 18:09:09 +00:00
Bram Matthys b8c9e4fde5 - NickChars: Added 'icelandic', supplied by Saevar. 2005-02-25 16:28:39 +00:00
Bram Matthys eca350056c - NickChars: Updated polish a bit, and added polish-w1250 which is unfortunately more
common than real latin2 (iso-8859-2), supplied by k4be as well.
2005-02-24 00:09:57 +00:00
Bram Matthys 2a1bd9e244 - Fixed a doc typo, reported by SDF_of_BC. 2005-02-23 22:05:55 +00:00
babass 453d6b3fb6 Modifications de l'aide sur les charsets 2005-02-23 20:46:14 +00:00
Bram Matthys 0e811c403a - Added French example.fr.conf and help.fr.conf, translated/maintained by Babass. 2005-02-23 20:01:24 +00:00
Bram Matthys ad254b94c0 - Added hebrew (iso8859-8I / windows-1255), supplied by PHANTOm. 2005-02-23 19:54:43 +00:00
Bram Matthys 27396e9b26 - Added polish (latin2), submitted by k4be. 2005-02-23 16:32:59 +00:00
Bram Matthys 2c500fcf72 nickchars...
- Build in some additional checks (especially for Chinese).
  - Fixed a bug in chinese character range (affecting 3.2*)
  - Relaxed nick character checking from remote servers (rely on NICKCHARS= PROTOCTL
    to deal with problems). This is useful to prevent any kills in case we slightly
    change the characters that are allowed in a language.
2005-02-22 16:47:20 +00:00
Bram Matthys 8ba098a77a - NickChars:
- Got rid of 'latin7', tiny mistake ;)
  - Removed e' accent from German (used in borrow-words only), reported by Dukat.
  - Added 'swiss-german', which is just German without es-zett, reported by Dukat.
  - Added 'turkish', supplied by Ayberk Yancatoral.
2005-02-21 16:06:08 +00:00
Bram Matthys 97d4be791b - Added NICKCHARS= in PROTOCTL. This indicates which languages are accepted in nicks.
If 2 servers try to link and the allowed nick characters do not fully match, then
  the link will be rejected. Note that this will not prevent you from 3.2.2<->3.2.3/CVS
  charsets mistakes, but only with linking CVS/3.2.3+ servers. Suggested by Troco (#0002360)
  This might need some additional testing, but initial results are positive :).
2005-02-20 22:05:06 +00:00
gsf bff1caa482 Week 7 Doc Updates 2005-02-20 21:46:44 +00:00
babass cedddacbf1 Ajout sur les charsets plus qques autres modifications 2005-02-20 20:02:35 +00:00
Bram Matthys 01262aefd9 - Removed 2 unneeded characters from 'catalan'. 2005-02-20 19:20:15 +00:00
Bram Matthys 67bd44cb77 - set::allowed-nickchars:
- Renamed 'euro-west' to 'latin1' since that's more descriptive/fair ;)
  - Added 'hungarian' [supplied by AngryWolf]
  - Added category 'latin2': just Hungarian for now
  - Added 'catalan' [supplied by Trocotronic]
  - Added 'greek' [supplied by GSF]
  - Added category 'latin7': alias for 'greek'
  - Added category 'gbk': alias for 'chinese'
2005-02-20 17:24:44 +00:00
Bram Matthys 5b5b6ce919 - Various updates to unreal32docs from Ron2K (#0002354). 2005-02-20 16:07:49 +00:00
Bram Matthys c35947553f credit! 2005-02-19 21:58:45 +00:00
Bram Matthys 99d1d11676 - Added swedish support for nicks, supplied by Tank. 2005-02-19 21:58:26 +00:00
Bram Matthys 8650c97cd3 - No longer cutoff nick upon illegal character -- just reject the whole nick. The nick is
still cutoff if the nick is too long. Basically this is the same way as Hybrid does it
  so it should work ok :).
- Added nick character system. This allows you to choose which (additional) characters
  to allow in nicks via set::allowed-nickchars. See unreal32docs.html -> section 3.16
  for a list of available languages and more info on how to use it.
  Current list: dutch, french, german, italian, spanish, euro-west, chinese-trad,
  chinese-simp, chinese-ja, chinese.
  If you wonder why your language is not yet included or why a certain mistake is present,
  then please understand that we are most likely not experienced (at all) in your language.
  If you are a native of your language (or know the language well), and your language
  is not included yet or you have some corrections, then contact syzop@vulnscan.org or
  report it as a bug on http://bugs.unrealircd.org/
2005-02-19 20:47:41 +00:00
Bram Matthys 6128e121b3 - Some help.conf/005.txt updates, reported by Ron2K (#0002354). 2005-02-19 19:21:09 +00:00
angrywolf af5d1d7196 Doc update (week 07) 2005-02-19 14:39:21 +00:00
stylus740 e2ad6c059d Changes week 07 of doc/unreal32docs.de.html 2005-02-19 09:41:47 +00:00
trocotronic 44dad06890 Cambios semana 7 2005-02-19 09:36:34 +00:00
Bram Matthys 87557e0390 - Added greek docs, translator: GSF. 2005-02-17 19:42:02 +00:00
Bram Matthys db69e18e06 - Fixed a bug where shuns placed on IP's did not take effect to currently connected users.
- Fixed a small doc bug regarding shun in spamfilter, reported by KnuX (#0002338).
2005-02-14 15:28:13 +00:00
babass dcf50597e3 Quelques modifications mineures 2005-02-13 21:38:21 +00:00
Bram Matthys 11cb7a1136 - Fixed shuns not working as target in spamfilter and ban version { }, reported by Bugz
(#0002223).
2005-02-13 00:48:58 +00:00
Bram Matthys ab103a74cd - Docs: log { } from 'optional' -> 'recomended'
- If no log { } block is present a warning will be printed out and we will fallback
  to a default of logging errors to ircd.log. Suggested by w00t (#0002327).
2005-02-13 00:20:11 +00:00
Bram Matthys 9c38686f52 - Fixed SVSNOOP bug where remote servers still thought the opers had privileges, reported
by Zell (#0002185)
2005-02-13 00:01:31 +00:00
Bram Matthys 2665b9f04f updated docs on ~c 2005-02-12 23:40:12 +00:00
Bram Matthys 50520aee84 - Added a feature to +b ~c, ~c:[prefix]<#channel>, prefix can be +/%/@/&/~ and will
check if the user is voiced/halfoped/etc.. Especially useful for +e ~c. Idea from
  Bugz (#0002198). Obviously all servers need to be upgraded to make this work.
2005-02-12 23:33:26 +00:00
angrywolf 878777e642 - Doc update (week 06)
- Minor corrections again
2005-02-12 10:57:44 +00:00
trocotronic 9d541d8ed4 Cambios de la semana 6 2005-02-12 10:04:53 +00:00
stylus740 bfb3e15bce Update doc/unreal32docs.de.html Feb. 12. 2005 2005-02-12 10:04:43 +00:00
Bram Matthys b87e3f82fe made it a tad more clear that +j needs testing ;) 2005-02-12 00:11:12 +00:00
Bram Matthys d3a0bb92f6 - Added channelmode +j (jointhrottle), syntax: /mode #chan +j X:Y, and then it will
throttle the number of joins per-user to X in Y seconds. Idea from Angrywolf (who
  wrote a module that did this before). This might need some more testing :).
  It's enabled by default but can be #undef'ed in include/config.h (line 449).
2005-02-12 00:05:08 +00:00
angrywolf 0441305a3a Doc update (week 05) 2005-02-11 11:56:17 +00:00
codemastr e750d52f9e Made channel mode +S strip RGB color codes 2005-02-06 18:24:19 +00:00
codemastr 2d814ac488 Made channel mode +c block RGB color codes. Fixed a bug with channel alias{}'s where using the format syntax caused a crash. 2005-02-06 17:12:52 +00:00
stylus740 9654db70da changes doc/unreal32docs.de.html week05 2005-02-06 14:57:39 +00:00
Bram Matthys 432e3a3a6c - Win32 crash fixes due to modulizing 2005-02-04 20:03:46 +00:00
Bram Matthys 1790648081 plok 2005-02-04 19:08:26 +00:00
Bram Matthys 0945798211 [..] Also made loading m_*.so work again. 2005-02-04 15:49:29 +00:00
Bram Matthys 82d33e262c - Updated makefile to fix compile problem, reported by vonitsanet (#0002317) [?]. 2005-02-04 14:57:55 +00:00
Bram Matthys 3f46918f24 plok 2005-02-04 01:24:38 +00:00
Bram Matthys 1a655c11ca - Added spamfilter topic support ('t' in /spamfilter, or 'topic' in conf), suggested
by Z3l3zT (#0001929).
2005-02-04 01:05:42 +00:00
Bram Matthys be93950f40 - Fixed mode #chan +O set by locop causing a desynch, reported by Unim4trix0 (#0001946). 2005-02-04 00:42:19 +00:00
Bram Matthys 8eb88be500 - Made unreal_copyfile try hardlinking first, if that fails.. it will try to copy
(perhaps this should be a different function?). Anyway, this means less diskspace
  is needed (~1.5mb or more), and it also makes it a bit easier for RBAC (#2300).
- Made a new function DoMD5() which is ssl/non-ssl independent. Also made the cloaking
  module and the auth functions use it. Hopefully I didn't break anything ;). Suggested
  by Bugz (#2298).
2005-02-04 00:26:37 +00:00
Bram Matthys 3469211b62 plok 2005-02-03 18:33:47 +00:00
Bram Matthys e601339deb - Various (important) fixes to above, also made win32 compile work again. 2005-02-03 17:37:28 +00:00
Bram Matthys 4a3be9e58f .. 2005-02-03 17:13:53 +00:00
Bram Matthys bcfc9b85fb dumdeedum.. modulized fixes (timespan <2d) 2005-02-03 17:11:12 +00:00
Bram Matthys 9c979e4e04 join fixes? 2005-02-03 17:04:45 +00:00
Bram Matthys 3e1b7c0f47 bleh 2005-02-03 16:58:16 +00:00
Bram Matthys 03df91bbf3 opermotd tooooooo 2005-02-03 16:58:04 +00:00
Bram Matthys 4bf1758b89 ARGH botmotd GOOOONE 2005-02-03 16:57:42 +00:00
Bram Matthys b3257db161 - win32 makefile updates for above & more <= update 2005-02-03 16:56:02 +00:00
Bram Matthys 3b28ac0385 more modulized fixes 2005-02-03 16:53:29 +00:00
Bram Matthys 14879ae6f0 and another fix for modulized things 2005-02-03 16:51:32 +00:00
Bram Matthys b967f600df - win32 makefile updates for above. 2005-02-03 16:45:05 +00:00
Bram Matthys 6508c962f8 - Made m_template.c use CommandAdd() and CMD_FUNC()
- Modulized a lot of commands and related subfunctions: NICK (750 lines), USER (200),
  MODE (2300), WATCH (250), JOIN (600), PART (250), MOTD (100), OPERMOTD (100),
  BOTMOTD (100), LUSERS (100). More will follow soon (probably including more subfunctions
  related to existing commands).
2005-02-03 00:38:40 +00:00
Bram Matthys 74fdf83dcf copyright date updates 2005-01-31 14:54:28 +00:00
codemastr cee255cbe0 Fixed a win32 GUI problem where the tray menu's config submenu was not updated when new files were loaded or files were unloaded 2005-01-29 19:07:02 +00:00
babass 261c0f75c0 Ajout de corrections mineures 2005-01-29 18:19:17 +00:00
codemastr f43420a15c Fixed a problem when compiling Unreal with GUEST support 2005-01-29 18:07:12 +00:00
codemastr 7a37675909 Fixed a documentation inconsistency with me::numeric 2005-01-29 17:47:32 +00:00
codemastr 52fc709074 Corrected the help.conf documentation for /invite 2005-01-29 17:36:07 +00:00
codemastr a86c75bfb4 Fixed some problems with the /stats help and documentation 2005-01-29 17:22:54 +00:00
codemastr 839efd901a Added invite exceptions (+I) 2005-01-29 16:55:30 +00:00
Bram Matthys a557bc50d7 - Added debug code to trace proto-check bugs in DEBUGMODE [IsToken() etc]
- [Module coders] Added new function: do_cmd(cptr, sptr, cmd, parc, parv) which is an
  uniform method to call any other commands. For more info, see description in src/parcket.c.
  This will be used for any further modulization of commands that need to call other
  commands, like NICK (will be done soon).
2005-01-25 23:31:07 +00:00
codemastr 232b172256 Moved channel mode +G to extcmode to make room for invex 2005-01-23 21:45:49 +00:00
codemastr dd9e9417af Fixed a bug where specifying a reason to SVSPART would cause it to fail 2005-01-23 18:31:59 +00:00
codemastr 0258d13195 Added an options member to the ExtbanInfo structure. This currently supports one flag, EXTBOPT_CHSVSMODE. When set, this extban will be removed when an SVSMODE -b [nick] is executed 2005-01-23 18:24:34 +00:00
codemastr c2224bc5fd Made /stats E include tkl except stats as well 2005-01-22 18:39:33 +00:00
codemastr 64d8a67f4a makefile.win32 2005-01-22 18:34:09 +00:00
codemastr 3a052e213b Fixed a bug where /whois notices were not sent to users who are +R if the sender is -r and on a remote server 2005-01-22 17:59:23 +00:00
codemastr 282a5f3eab Reworded a cloak-key error message to make it clearer 2005-01-22 17:53:49 +00:00
codemastr cb1ca56cae Fixed a bug related to the sajoin recode regarding notices displayed 2005-01-22 17:51:17 +00:00
Bram Matthys 908387c024 ignore this ;p 2005-01-21 01:13:02 +00:00
Bram Matthys d0f4e86833 slight clarification + credit 2005-01-21 01:12:11 +00:00
Bram Matthys 68feb2ba64 - Fixed a resolver cache bug regarding CNAME's, this needs some more testing.
[this description will be updated after knowing if this indeed fixes #2229/#1236]
2005-01-21 01:04:17 +00:00
codemastr 8e0d1cd516 Fixed a problem with set::htm::incoming-rate being interpreted incorrectly 2005-01-18 16:50:53 +00:00
codemastr b9a516d664 Hopefully fixed the last of the alloca warnings 2005-01-17 20:41:27 +00:00
codemastr 107456853e Made it so +f notices are sent to %#chan, not @%#chan 2005-01-17 19:55:20 +00:00
codemastr 83fd8dfa11 Fixed a problem where doing ./unreal restart multiple times would not actually restart the ircd 2005-01-17 19:33:46 +00:00
codemastr 30c9781e72 Made /sajoin support multiple channels and using 0 2005-01-17 19:16:03 +00:00
codemastr 6c88aecf6c Made the win32 installer include the dccallow.conf. Made the win32 installer work with the latest version of Inno Setup (5.0.6) 2005-01-17 18:11:35 +00:00
codemastr 49a988c64f Fixed a couple of problems introduced with the ./Config -advanced changed 2005-01-17 18:04:39 +00:00
codemastr d3641acd7b Made SVSMODE -b and -e remove bans/excepts placed on IPs 2005-01-17 17:31:10 +00:00
codemastr 7e18fcd00e Fixed a minor typo in the "now an oper" announcement 2005-01-17 17:25:05 +00:00
Bram Matthys 7577ae774c clarification 2005-01-15 20:39:43 +00:00
Bram Matthys 3aeea5c63b - Fixed serious crashbug
- Fixed 'make install' error due to example.settings remove.
2005-01-15 18:37:15 +00:00
Bram Matthys 65024ce49e ouch! 2005-01-15 00:39:10 +00:00
trocotronic 4f93681c71 Informacion sobre las regexp 2005-01-08 11:22:21 +00:00
babass bb192d3016 *** empty log message *** 2005-01-06 11:56:38 +00:00
Bram Matthys 4a6f784e37 - Got rid of wma/wmv in dccallow.conf, better to require an explicit select here due to
recent DRM exploits (spyware etc).
- Fixed /restart reasons, reported by SouL-FoRTuNe.
- Partial (incomplete!) fix for alloca warnings during compile (especially w/SSL).
2005-01-05 01:44:42 +00:00
babass 1db7944c09 *** empty log message *** 2005-01-03 18:16:47 +00:00
angrywolf 0676d94ab1 Finished the translation of Appendix A (Regular Expressions). Also corrected some grammar mistakes in it. 2005-01-03 17:04:46 +00:00
stylus740 849205bb31 doc/unreal32docs.de.html week 53 2005-01-02 18:51:27 +00:00
stylus740 013b2de18f doc/unreal32docs.de.html week 53 patially Update (complete translation will follow soon) 2005-01-01 18:10:21 +00:00
codemastr 274230c55f Imported TRE 0.7.2 for *nix 2004-12-29 18:47:42 +00:00
codemastr 629825c6d9 Imported TRE to 0.7.2 for Windows 2004-12-29 18:35:36 +00:00
Bram Matthys d40fc31645 flatmap in /lusers 2004-12-29 04:58:59 +00:00
angrywolf 7c6a6332fc Continuation of the previous translation, part 3 2004-12-28 15:35:47 +00:00
angrywolf 854e64e253 Continued the translation of appendix A (Regular Expressions). 2004-12-28 00:16:24 +00:00
angrywolf 53b182a021 - Started working on the translation of appendix A (regular expressions).
- Corrected the grammar of all subtitles in section 4.
2004-12-27 02:04:44 +00:00
codemastr a07c13bdc2 Added some error checking to /sapart 2004-12-27 00:44:42 +00:00
codemastr 67470b474d Made the (?) kill message not show IP addresses 2004-12-27 00:21:08 +00:00
codemastr 7f8bcdb5b2 Made CIDR no longer accept bitmasks with less than 16bits for /*line commands 2004-12-27 00:14:07 +00:00
codemastr 77f8b18bad Added a basic regex tutorial to unreal32docs.html 2004-12-26 20:16:29 +00:00
Bram Matthys c251d4e198 - Some doc/ updates: removed: Unreal31_to_32.html & example.settings, updated: Authors &
translations.txt.
DEL: Unreal31_to_32.html & example.settings DUE TO outdated
MOD: Authors (added myself, updated griever end date), translations.txt (updated
     to mention that it takes a lot of time, and added a note on using word/frontpage).
2004-12-21 01:05:23 +00:00
Bram Matthys 5cf36dddca French docs update of week 49 (babass). Forgot to commit, woops ;p 2004-12-20 21:00:17 +00:00
Bram Matthys 3cbbaf125b - Fixed bug where servers behind ulines were not ulined, causing for example juped servers to
show up if flat-map was enabled, reported by GSF19 (#0002230).
2004-12-10 20:09:09 +00:00
Bram Matthys 02a00490ad - Fixed tkl except { } not working (post-3.2.2). 2004-12-09 17:15:52 +00:00
trocotronic 693f6e5183 *** empty log message *** 2004-12-04 13:49:14 +00:00
angrywolf 1d7b8bad06 Doc update (week 49) 2004-12-04 12:18:01 +00:00
stylus740 fbf2d2d394 Update unreal32docs.de.html week 49 2004-12-04 09:35:27 +00:00
Bram Matthys a76e4d4712 - Module coders: sendto_snomask* now only sends to opers, sendto_snomask_normal* can be used
to send to normal users w/the snomask set.
- Fixed dcc filtering a bit more.
- Made usermode 'g' operonly since it didn't do much, reported by DukePyrolator (#0002024).
2004-12-03 22:00:09 +00:00
Bram Matthys 54902b0285 - spamfilter.conf: fixed mIRC exploit sigs
- Fixed all spamfilters in configfile not working due to configrewrite (post-3.2.2).
2004-12-03 17:09:29 +00:00
Bram Matthys 4284c39307 - OperOverride INVITE notices are now also global (if you have the eyes snomask set) (#2212).
- Module coders: New function: sendto_snomask_global().
- Speedup sendto_snomask/sendto_connectnotice/sendto_fconnectnotice code.
2004-12-03 03:32:32 +00:00
Bram Matthys 6653e4ef3e help.conf: added long flags to OFLAGS. 2004-12-02 17:45:39 +00:00
Bram Matthys fd47548f55 added tiny note on how I generated indexes 2004-12-02 17:08:45 +00:00
Bram Matthys ecdb057111 - help.conf: Fixed a typo, updated *CMDS indexes a bit, reported crazy (#0002208). 2004-12-02 17:06:32 +00:00
Bram Matthys 55ece5e5e4 - Fixed Oper Override not giving a 'special join notice' if +z is set along with another mode
(eg: +i/+k), reported by tabrisnet (#0001487).
2004-12-02 16:47:55 +00:00
Bram Matthys 5b7e45545c - Fixed dcc spamfilter problem reported by TimeFX and Deadalus (#2177, #2204). 2004-12-02 04:51:29 +00:00
codemastr 9395e74143 Added missing documentation for spamfilter away target 2004-12-01 20:58:56 +00:00
codemastr afbf2070fa Added a set::gline-address which works like set::kline-address 2004-12-01 20:55:38 +00:00
Bram Matthys a6713f14cb - Fixed alloca warning @ Linux (post-3.2.2)
- Numeric audit: 15 small changes (int/long mismatches etc). This might have fixed some
  bugs on architectures where 'long' and 'int' have different sizes (eg: opteron).
2004-11-28 21:26:27 +00:00
codemastr bd142fc323 Added a config.h options, IPV6_COMPRESSED to make Unreal use compressed IPv6 addresses where possible 2004-11-28 17:53:43 +00:00
codemastr ad878b68c8 Changed the +z cannot join message to be a bit more descriptive 2004-11-26 23:28:48 +00:00
codemastr 78ff3fdd53 ... 2004-11-26 22:28:13 +00:00
codemastr 191127296a Rewrote some of the previous change to deal with some strange issues 2004-11-26 22:14:30 +00:00
codemastr 637a36a2af If a user is +b on a channel, and set::allow-userhost-change force-rejoin is used, a part/join is not sent in order to prevent flooding 2004-11-25 23:54:21 +00:00
codemastr 81de8345d2 Added some missing operflags to /stats O and SVSO 2004-11-25 19:22:13 +00:00
codemastr 45cee8f2bd Added the new /invite syntax to help.conf 2004-11-25 19:17:48 +00:00
codemastr a11e6df64b Using /invite with no parameters now lists the channels you are invited to but have not yet joined 2004-11-25 19:16:02 +00:00
codemastr 4c66f198c5 ... and set::hosts errors 2004-11-24 19:57:18 +00:00
codemastr 61f3c2cddf Fixed a minor bug in the new config system when displaying link {} errors 2004-11-24 17:48:31 +00:00
stylus740 aed701705a Update doc/unreal32docs.de.html week 47 2004-11-22 17:00:08 +00:00
angrywolf 84c5813bc4 Doc update (week 47) 2004-11-20 13:49:17 +00:00
trocotronic 174735967a *** empty log message *** 2004-11-20 12:55:41 +00:00
Bram Matthys d310864b43 - Added set::dns::bind-ip (rarely ever needed, but might be useful for paranoid people).
- Some unreal32docs->security section improvements.
2004-11-19 20:55:18 +00:00
Bram Matthys 30d0defdc0 - Fixed bug in remote version reply, reported by DukePyrolator (#0002180). 2004-11-19 20:42:43 +00:00
codemastr 1a035edc8c Fixed the crule parser to treat - and : as valid 'word' characters rather than separators 2004-11-19 20:12:10 +00:00
Bram Matthys ade0c0109d - Win32 installer: Apparently 'install as a service' was still not the default, reported
by fez (#0002191, #0002189).
2004-11-19 19:49:05 +00:00
Bram Matthys cb6bfc4d34 - Renamed some calls from report_error() to report_baderror() since otherwise the errors are
hardly ever seen (unless you have +s +j set). For example a bad link::bind-ip only caused
  "Couldn't connect to xxxxxx" without any meaningful error message. Additionally, errors
  sent to report_baderror() are now logged.
^^ way too long description for a small tweak :p
2004-11-17 17:38:54 +00:00
Bram Matthys bc809fd7aa French docs update of week 46 (babass). 2004-11-14 20:43:19 +00:00
stylus740 ce7bba8b5a doc/unreal32docs.de.html Changes week 46 2004-11-14 07:58:32 +00:00
codemastr dd2f5bedd8 Made typing /kline, /shun, /zline, and /gzline correctly report the correct /stats flag, and these commands now produce the same output as the respective /stats flag they emulate 2004-11-13 18:11:02 +00:00
codemastr 5439dddde5 Added documentation for set::options::fail-oper-warn, Removed an extra ) in the Throttle disconnect message, Fixed a bug where the "looking up your hostname" message could still be displayed even if hostname resolving was disabled 2004-11-13 17:51:26 +00:00
codemastr 77f898e985 Added support for using \\ in the config file to indicate a " 2004-11-13 17:40:49 +00:00
codemastr e964113964 Updated Donation file, Added a 'B' flag to /who output for bots, and allowed normal users to /who +m B 2004-11-13 17:15:17 +00:00
angrywolf fc78e50666 Doc update (week 46) 2004-11-13 10:44:05 +00:00
trocotronic 4e901fdd66 *** empty log message *** 2004-11-13 09:40:27 +00:00
Bram Matthys c3c29d38da - Fixed botmotd crash due to last change (post-3.2.2). 2004-11-10 16:48:24 +00:00
Bram Matthys c2d22329b9 - Fixed small memory leak on /rehash (post-3.2.2). 2004-11-09 20:50:37 +00:00
codemastr b213011ab9 Removed an excess space from the SAMODE notice when a mode without a parameter was set 2004-11-09 20:36:59 +00:00
Bram Matthys 4283702d2c - Fixed crashbug on /rehash due to config rewrite, also made DEBUGMODE working again.
Probably more fixes to come (small or not)...
2004-11-09 17:14:14 +00:00
codemastr 98cb02a410 Added the ability to specify a botmotd and opermotd in a tld {} 2004-11-08 19:40:29 +00:00
Bram Matthys 102d21855a Doc update - week 45 (babass) 2004-11-08 19:22:39 +00:00
stylus740 010d3275f2 unreal32docs.de.html update week 45 2004-11-07 08:05:54 +00:00
Bram Matthys 5af77f8779 - Small fix for above ($arg -> $ARG) 2004-11-06 19:18:46 +00:00
Bram Matthys f3cdcc72ab $arg -> $ARG 2004-11-06 19:17:14 +00:00
codemastr 1bb24f0515 Made ./Config better handle command line arguments, Removed NAZIISH_CHBAN_HANDLING as it didn't do anything, Added -advanced flag to ./Config to configure advanced options 2004-11-06 17:33:50 +00:00
angrywolf a69e979d3d Doc update (week 45) 2004-11-06 12:16:32 +00:00
trocotronic dc9d9dc62e *** empty log message *** 2004-11-06 09:41:29 +00:00
trocotronic 883ec36e8b *** empty log message *** 2004-11-06 09:38:33 +00:00
codemastr 2b3fda5a10 Documented the default behavior of snomasks when /mode nick +s is used and added 'const' to the functions in match.c 2004-11-05 21:26:38 +00:00
codemastr c52dff2da7 Fixed a bug with /rehash and classes due to the config parser rewrite and Modified the module symbol dependency code to do more accurate searching for the module hat contains the necessary symbol 2004-11-05 20:23:59 +00:00
codemastr fb0802a22b Corrected numerous -Wall warnings 2004-11-04 21:42:34 +00:00
codemastr e72b29f81c Recoded the config parsing code, faster, and duplicate config entry detection 2004-11-03 20:38:17 +00:00
Bram Matthys b4d7a60a72 - Added updated auspice.conf from Rocko since previous one was outdated (#0002147). 2004-10-30 15:18:48 +00:00
Bram Matthys aaabed6af2 - Some text updates... docs: now 3.2.2-CVS, lso got rid of double version to avoid
confusion. credits: fixed typo.
2004-10-30 12:21:24 +00:00
codemastr 43db020b75 Fixed a typo in the makefile for USERIP, Made the WATCH command work for WebTV users 2004-10-29 18:24:58 +00:00
Bram Matthys aaa29c02f8 ** 3.2.2 release ** 2004-10-27 18:27:40 +00:00
Bram Matthys f87a4fda13 - Changed version to 3.2.2 2004-10-27 18:18:06 +00:00
Bram Matthys 48bdcf92fc - Forgot to mention away spamfilter target in helpop, reported by Rocko. 2004-10-26 18:46:52 +00:00
Bram Matthys ed38124a1d notice->private-notice 2004-10-25 19:45:24 +00:00
Bram Matthys 50952ed629 REVERT 2004-10-23 21:24:29 +00:00
Bram Matthys cdecfbfedc clarifcation @ changes 2004-10-23 16:03:07 +00:00
Bram Matthys 2d3ca29a45 - Fixed bug where some ban ip { } masks didn't work. 2004-10-23 16:02:48 +00:00
angrywolf 3a9f8eee47 Doc update (week 43) 2004-10-23 09:33:29 +00:00
trocotronic 949de4f098 *** empty log message *** 2004-10-23 09:12:04 +00:00
stylus740 05b098396d Update doc/unreal32docs.de.html week 43 2004-10-23 08:25:26 +00:00
Bram Matthys f541d5f58f - French doc updates, hopefully synched now. 2004-10-22 20:37:00 +00:00
Bram Matthys 2ce551158a - Fixed some doc & release notes typos. Reported by Rocko, HiT. [release note correction was committed earlier] 2004-10-21 20:34:15 +00:00
Bram Matthys 64860fa6c3 Little typo @ release notes 2004-10-20 19:49:22 +00:00
Bram Matthys b434149c41 updated map, right before 3.2.2pre1:
+   IsupportStrings
+   Isupports
+   cmdstr
+   create_tkl_except
+   del_async_connects
+   find_spamfilter_user
+   gethost_byname_revquery
+   isupport_init
+   make_isupportstrings
2004-10-20 18:31:58 +00:00
Bram Matthys c333495b1b ** internal 3.2.2-pre1 release ** 2004-10-20 18:11:38 +00:00
Bram Matthys ea4db0c2fe - Updated version to 3.2.2-pre1 already. (well all the changes went with previous commit) 2004-10-19 18:26:08 +00:00
Bram Matthys 5133dcf755 Version number change -> 3.2.2pre1. Proto -> 2305. Some doc version updates (like Unreal3.2.tar.gz -> Unreal3.2.2.tar.gz). And a small note @ win32 compile instructions about no longer using /MDd but /MD. 2004-10-19 18:21:50 +00:00
Bram Matthys 9e855621e5 - Added some future SJOIN skip stuff. <= for future +I (invex) support. 2004-10-19 18:01:13 +00:00
Bram Matthys fbd7fa502a plok... 2004-10-19 15:30:41 +00:00
Bram Matthys f368a2ba04 this is supposed to be a better version... :p 2004-10-18 19:33:50 +00:00
stylus740 96582cb86e Update doc/unreal32docs.de.html week 42 2004-10-17 07:35:40 +00:00
Bram Matthys 2f42d44b74 - Fixed serious heap corruption bug if remote users were using qlined nicks, thanks to
Gilou and Trankill for making me able to trace this issue down (#0002032).
- Fixed qline notices again: now gives msg #1 for local qlined-nick attempts, and
  another msg in case of a remote client (eg: oper) using a qlined nick.
2004-10-16 19:32:04 +00:00
trocotronic bf829244b8 *** empty log message *** 2004-10-16 08:17:03 +00:00
Bram Matthys 5018dec02f - Windows version can now hold ~4096 connections instead of ~1024
- help.conf: clarified MKPASSWD documentation, reported by hypnetric (#0001926).
- Some modeskip handling for future versions
2004-10-13 18:30:41 +00:00
angrywolf 988f5ff9d6 - Made a few grammar corrections. 2004-10-12 15:10:00 +00:00
angrywolf c3b8d07de4 Update: except tkl::type 2004-10-12 14:44:47 +00:00
Bram Matthys e6156b4604 - Added spamfilter 'away' ('a') target (#0002057). 2004-10-11 18:46:53 +00:00
codemastr 6af767a885 Added file: include/macros.h and a new macro, ARRAY_SIZEOF, Added the ability to specify multiple types in a tkl except 2004-10-11 17:51:02 +00:00
Bram Matthys 681a0ce0c2 - Fixed OOB read/write on user quit (did no harm on Linux&FreeBSD).
- Fixed some tiny memory leaks (~100 bytes) on rehash.
- Updated chinese&japanese GBK nick code, fix supplied by Xuefer (#0002051).
- Added release notes (unfinished).
2004-10-10 23:37:25 +00:00
stylus740 31a7905c94 Update german doc/unreal32docs.de.html week 41 2004-10-10 08:51:44 +00:00
trocotronic 3716f12eee *** empty log message *** 2004-10-09 16:01:49 +00:00
angrywolf a0e3779f74 *** empty log message *** 2004-10-09 09:16:10 +00:00
angrywolf 2e9852c393 Update to the rest of the changes of week 41 (spamfilter target type clarifications). 2004-10-09 09:11:27 +00:00
Bram Matthys 2eadd2efa1 - IPv6: Fixed hostnames in link::hostname not working, reported by Jasmin (#0001990). 2004-10-07 23:52:46 +00:00
Bram Matthys 97ea680aec - Fix for too broad regex in badword::word causing the IRCd to hang, reported by Flop
(#0002101).
2004-10-07 20:45:18 +00:00
Bram Matthys 6f72b78d1b - Made docs a bit more clear on spamfilter targettypes. [sorry angrywolf ;pp] 2004-10-07 19:56:39 +00:00
angrywolf 4d7f9b5a5b - Doc update: alias::target, alias::format::target and spamfilter target 'user'.
- Also made a minor correction in the translation by request of groove-coverage.
2004-10-07 18:53:30 +00:00
Bram Matthys f6e36300bb - If a nick is qlined, the user is now lagged up to limit qline floods a bit (#0001335). 2004-10-06 22:03:11 +00:00
Bram Matthys fae77f21ec - Module coders: Added HOOKTYPE_REMOTE_JOIN, HOOKTYPE_REMOTE_PART, HOOKTYPE_REMOTE_KICK (all
work just the same as the HOOKTYPE_LOCAL_* variants).
- Module coders: HOOKTYPE_REMOTE_CONNECT is now also called during net-merge. You can use
  IsSynched(sptr->srvptr) to find out if it's called due to a net merge (0) or a connect (1).
- Added spamfiler 'user' (u) target. This regex is checked against nick!user@host:realname
  when a user connects. This makes it easy to ban drones with simple patterns.
  For example: '/spamfilter add u gzline 86400 Drone[0-9]+!.+@.+:Drone[0-9]'
  would kill any drones that have both a nick and realname with 'Drone' followed by digits.
2004-10-06 20:33:13 +00:00
codemastr d78acf841e Added channel alias {}'es and fixed an Isupport bug 2004-10-03 17:25:58 +00:00
Bram Matthys cf68fd7d41 - Fixed resolver not working in FreeBSD jail, reported & patch provided by urkel (#0002097). 2004-09-29 16:43:46 +00:00
Bram Matthys 33d9d1dbcd bleh 2004-09-28 18:56:45 +00:00
Bram Matthys d04b80dcc3 - Fixed a (useless) cloak typo / made it a few nanosec faster. Reported by Martin Brulisauer. 2004-09-28 18:56:12 +00:00
codemastr 3edac539d1 Updated Windows to TRE 0.7.0 2004-09-25 19:11:42 +00:00
codemastr 75b639af81 Fixed a +u problem and updated to TRE 0.7.0 2004-09-25 19:10:35 +00:00
Bram Matthys 188e7990ba - Temporary fix for ircsprintf %lu 1..6 issue. 2004-09-19 18:32:14 +00:00
Bram Matthys 47c5c36bda - Added salted passwords. Salts are useful because it "protects" against stored-plaintext
attacks (eg: rainbow) and prevents cracking of several passwords at once.
  This change means /MKPASSWD will now just generate a different string than before.
  Do note however, that the old syntax/encrypted passwords will still work and _will continue
  to work_ in the future, for at least the whole 3.2* series.
  If you are concerned with security and have some time, then converting your passwords
  is probably a good idea... Just in case your configuration file gets stolen one day ;).
- MD5 password encryption is now always available on *NIX, even if SSL is disabled.
2004-09-19 16:13:03 +00:00
Bram Matthys 9b882e5c6d - Fixed a bug regarding chanmode +mu where the <IRC> messages were not properly relayed
to all servers. Reported by Aenox (#0002079).
2004-09-18 22:31:08 +00:00
codemastr 9b86b48b81 Updated doc/technical/token.txt and resolved 2 token conflicts. 2004-09-18 17:49:42 +00:00
stylus740 cf760ad336 unreal32docs.de.html Changes week 37 2004-09-12 07:19:49 +00:00
Bram Matthys 19748e6f03 - Fixed prefix bug caused by previous 'fix'/behavior change. Reported by aquanight (#0002067). 2004-09-11 19:19:17 +00:00
trocotronic 3b6270056d *** empty log message *** 2004-09-11 16:26:55 +00:00
kolibot bbf0df59f1 *** empty log message *** 2004-09-10 12:01:26 +00:00
Bram Matthys 326f506cd9 - Updated installer for msvcr70.dll 2004-09-09 00:10:19 +00:00
codemastr f71bc9335e Changed some stuff to use the release version of MS libraries 2004-09-08 18:53:27 +00:00
kolibot dc77debaec test 2004-09-07 23:42:00 +00:00
Bram Matthys 1ee0f10401 - Added french docs, translated by Kolibot & Babass. 2004-09-07 23:20:42 +00:00
codemastr 18311db5bf Fixed a typo in the *nix Makefile 2004-09-05 23:17:37 +00:00
stylus740 edff4089c7 Update german Translation week 36 2004-09-05 06:46:02 +00:00
codemastr fea3b691b3 Added a USERIP command 2004-09-04 22:55:19 +00:00
angrywolf c88f698c88 - Update: snomask +o 2004-09-04 20:55:30 +00:00
codemastr 23ee49f602 Exported the isupport functions for use in Windows modules. Added a new snomask, +o to show oper-up notices (oper only) 2004-09-04 17:05:25 +00:00
codemastr 36a75d5b55 SVSO now removes +v 2004-09-04 15:53:02 +00:00
angrywolf 4896f37ed4 Some weird characters went into the description of link::ciphers. 2004-09-04 14:22:24 +00:00
angrywolf d8678f686c - Update to week 36.
- Many grammar corrections.
2004-09-04 14:11:11 +00:00
trocotronic 483570dc4a *** empty log message *** 2004-09-04 11:39:38 +00:00
codemastr cbc3eea61e Made it so WATCH will not respond with an erroneous reply if the parameter was simply + or - 2004-09-04 04:26:18 +00:00
codemastr 165386a44b Updated documentation to reflect that cmode +M allows voiced users to talk, not just registered users 2004-09-04 04:21:13 +00:00
codemastr a5a502c1d5 Added documentation for link::ciphers to unreal32docs.html 2004-09-04 04:18:01 +00:00
codemastr d18a82acfe Fixed a problem where a local TKL could be sent to remote servers when it is being changed 2004-09-04 04:08:07 +00:00
codemastr 53b8b86598 Fixed a bug with IP based except tkl {} lines did not validate the ident portion of the mask 2004-09-04 03:59:58 +00:00
codemastr b9558cebe4 ... 2004-09-04 00:00:49 +00:00
codemastr e1d088de41 Fixed a few compile warnings, made +b apply to IPs correctly 2004-09-03 23:48:15 +00:00
codemastr d4059fec92 Rewrote the 005 system to be dynamic and added an API to manipulate it 2004-09-03 21:46:32 +00:00
codemastr 2a1844812f Added a fix for installing unreal as a service under win2003 2004-08-24 16:18:05 +00:00
codemastr ed476aaf75 Added snomasks to /whois usermode output and made usermodes available to all opers not just +e 2004-08-22 18:05:04 +00:00
Bram Matthys 641b12bf00 - Some doc/example.conf clarifications, mainly for modules @ win32. 2004-08-08 15:06:36 +00:00
Bram Matthys 76cd27a028 - Made zip/non-zip modules on win32 binary compatible. Since it was nowhere documented
that you should pass the ZIP_LINKS etc options to 'nmake -f makefile.win32 custommodule'
  many people didn't do this which caused odd problems when reading certain clientstructs.
  Module coders: in the meantime, for 3.2.1 mods, use something like:
  nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib"
   ZLIB_LIB_DIR="c:\dev\zlib\dll32" custommodule MODULEFILE=m_mymodule
  For 3.2.2+ these additional parameters will no longer be needed (but wouldn't harm either).
2004-08-07 21:20:22 +00:00
Bram Matthys 0a97b75bfb changed last comment -> - unbroke spamfilter not working for msgs/notices (oops..). 2004-08-02 03:33:13 +00:00
Bram Matthys acf99712e9 - Oops.. made spamfilter for msgs/notices not working ;p.. fixed. 2004-08-02 03:16:54 +00:00
Bram Matthys fa1c1d4db7 - Windows: the 'notice' parameter in the usermsg callback was always 0 due some windows/vc
weirdness, this also affected spamfilter (so any spamfilters added only at notice
  and not at msg on windows would not work). Now using the real 'notice' parameter.
2004-07-29 19:52:39 +00:00
Bram Matthys 1e743f80d4 forgot to change some paths (c:\openssl -> c:\dev\openssl) 2004-07-28 20:54:02 +00:00
Bram Matthys 1a8706a645 url change 2004-07-28 20:41:20 +00:00
Bram Matthys 85f88aa002 - Updated doc/compiling_win32.txt again with curl build instructions.
Also linked to a page with an unreal dev package which contains zlib+ssl+curl
  precompiled. This basically means many people no longer need to compile zlib/ssl/curl
  anymore themselves (which is a pain to do and takes a lot of time).
2004-07-28 20:40:10 +00:00
stylus740 9c2048f8cf Update unreal32docs.de.html for week 30 2004-07-26 06:25:32 +00:00
Bram Matthys d97c8de0b1 - Improved doc/compiling_win32.txt a lot: now VC7 only, and has instructions on:
compiling modules and their (binary) compatability, zip links (zlib), ssl (OpenSSL)...
  Remote includes (curl and c-ares) instructions still need to be added.
- Made 'Install as a service' unchecked by default, this should help beginners a lot.
2004-07-25 00:49:05 +00:00
trocotronic 743312fceb *** empty log message *** 2004-07-24 08:03:28 +00:00
Bram Matthys 6ce838a933 changelog typo: id -> if 2004-07-22 22:10:31 +00:00
Bram Matthys 1bd085164b - Fixed possible crash id /rehash'ing and a servername was just resolving (due to
/connect or autoconnect) and was not present in the cache. Reported and traced by sh0
  (#0001976).
- Fixed compile bug at *NIX caused by ModuleGetErrorStr fix.
2004-07-22 21:57:44 +00:00
Bram Matthys 0597307562 - Fixed bugs regarding HOOKTYPE_SERVER_QUIT: was sometimes called twice and could cause
crashes due read-after-free. Reported by SET (#0001988).
2004-07-22 21:29:48 +00:00
Bram Matthys c665636045 - Applied patch from slePP for bug #0001252: if IPv6 was enabled then in some cases names
were not properly resolved. Original bug reported by kormat.
2004-07-22 21:12:42 +00:00
Bram Matthys 7aad095b33 improved changelog msg 'Fixed an MacOS X crash-on-first-connect' -> also mention sun solaris [and possibly others] etc :) 2004-07-22 16:41:06 +00:00
codemastr e578ae4ad1 Added a missing message to ModuleGetErrorStr 2004-07-22 16:28:14 +00:00
Bram Matthys 9b9aa1d80f - Fixed a bug if me::info was set to "". 2004-07-21 20:57:22 +00:00
Bram Matthys c38621994b - Fixed an MacOS X crash-on-first-connect if SSL was enabled (#0001982), reported by bit. 2004-07-21 15:57:06 +00:00
angrywolf 827b5fa7e8 Doc update (oper::modes) 2004-07-19 17:42:41 +00:00
codemastr bdda1a6943 Made example.conf refer to unreal32docs.html for oper flags 2004-07-18 22:39:06 +00:00
codemastr 8440b94865 Added oper::modes 2004-07-18 22:35:55 +00:00
codemastr c0ea216165 Added a new modules makefile 2004-07-18 22:18:19 +00:00
codemastr ef85e44157 Fixed an NT service bug and a win32 lockup 2004-07-13 22:27:28 +00:00
codemastr 70b32d0164 Added sapart and svspart comments 2004-07-12 17:00:46 +00:00
trocotronic f73784de19 *** empty log message *** 2004-07-10 08:46:59 +00:00
stylus740 a6fac49452 German Update for doc/unreal32docs.de.html Week28 2004-07-10 06:57:44 +00:00
codemastr 7d1c6344bb Fixed some who ? flag bugs 2004-07-09 17:36:57 +00:00
codemastr 9bc2c3ffcc Added src/win32/editor.c 2004-07-09 16:34:20 +00:00
codemastr cad4c1d4b3 Win32 code cleanups 2004-07-08 21:54:40 +00:00
codemastr 72c94cb5c1 Fixed a whois bug when PREFIX_AQ is undefined 2004-07-07 20:57:24 +00:00
codemastr ec6dcdb573 Win32 code cleanups 2004-07-07 18:22:27 +00:00
angrywolf 567649106e - Made several non-translated texts appear as Hungarian and made a few
spelling corrections.
- Updated the description of set::hosts::* directives.
2004-07-07 13:43:27 +00:00
codemastr 8f196cd879 Removed the * and ^ flags from /whois if PREFIX_AQ is not enabled, Updated the /who docs to use correct English, Added documentation for the /who and /whois flags 2004-07-07 04:19:01 +00:00
Bram Matthys 582c487cff - Fixed defizzer module. Reported by Rocko and netrixtardis. 2004-07-06 22:28:09 +00:00
codemastr 3f9d00a84d Fixed a bug where an ident in a vhost {} was never sent out to other servers and added user@host support for set::hosts 2004-07-06 21:55:34 +00:00
Bram Matthys 791152587c - Fixed ban bug: halfops were also prevented from doing nickchanges if banned, plus..
+b ~n:*!*@* also made nickchanges impossible for voiced(&halfop'ed) people (so like half
  of the purpose of it was defeated @$#&@#). Reported by Rocko.
2004-07-06 14:56:53 +00:00
codemastr 08bd0aa006 Make allow-userhost-change force-rejoin apply to /oper, and removed /hs -> helpserv from anope.conf 2004-07-05 22:00:14 +00:00
angrywolf 562766ae07 Corrected the mIRC link 2004-07-05 20:01:50 +00:00
Bram Matthys b4c03ed74a docs typo (mIRC link pointed to irssi >;p) reported by angrywolf + added additional semi-requirement for translations to put the document-in-progress online somewhere... this seems to be needed since like half of the translators end up dead / not responding ;) 2004-07-05 19:01:57 +00:00
codemastr ce913cd127 Fixed a win32 module problem where file not found errors would display random characters 2004-07-05 16:54:29 +00:00
angrywolf 8f5ee7983f Minor doc corrections reported by Ryan 2004-07-04 13:46:36 +00:00
Bram Matthys 5cc04d4020 temporary -> temporarily 2004-07-03 18:41:51 +00:00
Bram Matthys fd11ec968b added 'cloaking has been cracked' to release notes @ major bugs too 2004-07-03 18:33:45 +00:00
codemastr bd9a57f90f Changed version to 3.2.1 and moved 3.2 changes to Changes.old 2004-07-03 18:28:20 +00:00
codemastr 52f76673c7 Release notes updates 2004-07-03 17:26:07 +00:00
Bram Matthys add996a92a - Made release notes a bit more scary + some other text updates (mainly english grammar/spelling) 2004-07-03 16:19:46 +00:00
stylus740 63e7fd12cc Update doc/unreal32docs.de.html week 27 2004-07-03 07:17:56 +00:00
angrywolf 3b92a1dd2a Updated the copyright info 2004-07-03 06:42:42 +00:00
codemastr 7b12465473 Updated /Credits and added a donator. 2004-07-03 05:00:36 +00:00
codemastr 67598ba37e Fixed a win32 installer bug 2004-07-02 17:43:12 +00:00
angrywolf d3cd57b767 Fixed a typo reported by Toxyc 2004-07-01 15:26:11 +00:00
trocotronic b306553b0a *** empty log message *** 2004-06-29 23:31:03 +00:00
trocotronic b6508ac6e0 write test 2004-06-28 21:51:28 +00:00
Bram Matthys c065f16db6 - Added hungarian docs, translated by AngryWolf. 2004-06-28 21:12:50 +00:00
Bram Matthys 1f1cdab0a6 ** internal 3.2.1-pre2 release ** 2004-06-28 20:10:19 +00:00
Bram Matthys 0b5524cf7b - Fixed serious crashbug due to quick-rehashing bug! Basically if you did a /REHASH and
the clientcount for a class reached 0 (due to quits) it would crash.
2004-06-28 19:47:09 +00:00
Bram Matthys 1fe71cab31 - Added spanish docs, translated by Trocotronic. 2004-06-28 18:48:46 +00:00
Bram Matthys c607eb43ef - Various (>15) small fixes for unreal32docs.html, reported by AngryWolf (#0001906). 2004-06-27 23:24:48 +00:00
Bram Matthys 6c0b8db670 wircd.def 2004-06-26 22:50:50 +00:00
Bram Matthys e3e5f5005c updated for pre1 2004-06-26 22:50:16 +00:00
Bram Matthys 6b2ee1cb4e ** internal 3.2.1-pre1 release ** 2004-06-26 22:18:08 +00:00
Bram Matthys ae9d78e845 - Changed version to 3.2.1-pre1 and updated protocol # to 2304. 2004-06-26 19:47:20 +00:00
Bram Matthys aa9ee31e4e - spamfilter.conf: Added sig for a mIRC decode worm, submitted by nexus.
- Some release notes updates.
2004-06-26 17:48:14 +00:00
stylus740 602c3b94ad Changes german Translation week 26 doc/unreal32docs.de.html 2004-06-26 06:40:24 +00:00
Bram Matthys 5877a32b3b - Fixed "quickly-rehashing + autoconnect linkblocks = crash"-bug. This involved fixing
multiple reference count bugs, one related to sptr->serv->conf, and another one related
  to sptr->serv->class. Both caused problems when someone did a /rehash when a server
  was in the process of connecting (so it might also happen when connfreq was hit and you
  did a /rehash). Original bug was reported by sh0 (#0001872).
2004-06-25 23:50:08 +00:00
Bram Matthys af3c66dea5 - Updated HOOKTYPE_TKL_ADD/HOOKTYPE_TKL_DEL to cptr, sptr, tk, parc, parv, else it was
impossible to tell *who* removed a *line. Again, parc/parv are 0/NULL for expires.
2004-06-25 20:17:18 +00:00
codemastr 638d17fbaa Fixed a problem where the tmp directory was created in the wrong place 2004-06-25 19:36:56 +00:00
codemastr 283014822d Made the new numerics use nicknames 2004-06-25 19:28:38 +00:00
Bram Matthys ad82656408 - Added new logtype 'spamfilter' to log spamfilter matches
- Updated example.conf: added all new flags we added in the example block, removed
  old confusing comment on SEGV logging, config.h: ripped out lPATH since that define
  isn't anywhere used and is only confusing.
2004-06-25 01:37:56 +00:00
Bram Matthys 9c51507d36 - Made IPv6 bans work the way they should again, reported by al5001 (#0001876). 2004-06-25 01:03:32 +00:00
Bram Matthys ec338581d9 - Fixed '/stats P' negative usercount bug (#0001691). 2004-06-25 00:15:37 +00:00
codemastr c4ee6e5114 Converted a bunch of notices to numerics 2004-06-23 19:47:40 +00:00
codemastr 1671c330bf Fixed a CIDR bug 2004-06-22 18:37:00 +00:00
Bram Matthys 22425b09d3 dumdeedum 2004-06-22 01:37:22 +00:00
Bram Matthys d75ca39f78 - Made Mod_Version required (this should be no problem since it's done automatically).
- Added HOOKTYPE_LOG [int type, char *timebuf, char *logbuf]
- Updated the release notes.
2004-06-22 01:20:31 +00:00
codemastr 8e5fb728a4 Added ELIST support 2004-06-21 18:40:02 +00:00
stylus740 7c7592eaa7 German Translation update for: doc/unreal32docs.de.html
week 25
2004-06-20 06:42:18 +00:00
Bram Matthys 5385bd3f89 - internal: Added GetIP() which we will now use instead of all the Inet_ia2p() stuff
because it's slightly faster (already replaced all of them in src/s_kline.c).
  GetIP(acptr) will return the ip for local users and remote users that support NICKIP,
  it returns NULL for remote users that are on non-NICKIP servers (or have non-NICKIP
  servers along their path).
- internal: tkl_add_line now returns aTKline *
- Added some more hooks:
  - HOOKTYPE_TKL_ADD [aClient *cptr, aClient *sptr, aTKline *tk]
  - HOOKTYPE_TKL_DEL [aClient *cptr, aClient *sptr, aTKline *tk]
    NOTE: 'NULL, NULL, tk' is used for *lines that are removed due to expiring
  - HOOKTYPE_LOCAL_KILL [aClient *sptr, aClient *target, char *comment]
2004-06-19 22:49:02 +00:00
codemastr 05a96a3b56 Fixed an SVSNICK bug that could lead to duplicate users in very rare circumstances 2004-06-18 17:02:01 +00:00
codemastr 54ff17f164 Fixed a CIDR bug when compiled without IPv6 support 2004-06-18 16:07:35 +00:00
Bram Matthys 0ca3733542 - Fixed find_qline crashes regarding except tkl 'type qline', reported by Gilou (#0001882).
- Fixed some CIDR bugs causing things not to match.
2004-06-18 15:49:10 +00:00
Bram Matthys 3b398af944 - To be able to use /ADDLINE you now need the (new) 'can_addline' operflag (oper::flags),
reason for this is that it's such a powerful/dangerous command.
2004-06-17 22:32:33 +00:00
codemastr 6316006acb ... 2004-06-17 21:45:36 +00:00
codemastr 58943b710c Added CIDR support 2004-06-17 21:16:58 +00:00
Bram Matthys 2f1da20208 - Fixed compile problem with debugmode + ipv6 2004-06-17 18:32:59 +00:00
Bram Matthys 42a8ab5a84 just correcting my english ;) 2004-06-17 18:18:07 +00:00
Bram Matthys c5d57689a0 - Win32: Readded /J compiler flag (was accidently lost in December). This could cause
some weird issues. Reported by Troco (#0001877).
2004-06-17 16:18:50 +00:00
Bram Matthys e3df6672c4 teh date --> 2004-06-17 2004-06-16 22:11:18 +00:00
Bram Matthys 1ebae10921 - Minor doc tweakers, reported by AngryWolf (#0001871). 2004-06-16 22:00:39 +00:00
stylus740 f0d9b5f66c unreal32docs.de.html Changes week 24 2004-06-15 17:05:44 +00:00
Bram Matthys 023cef1fb7 - Made extbans desynchs a bit more friendly: if a bantype is unknown for the server
it will just accept it if it's from a remote server, and also ops/etc will be allowed
  to REMOVE any unknown extbans (but not add new unknown ones).
- Added extended ban type ~n (nickchange ban), if a user matches this (s)he can not
  change nicks (eg: +b ~n:*!*@*.aol.com) unless (s)he has voice or higher.
  This can be useful as an overall measure for some +m chans (+b ~n:!*@*) or against
  specific 'good' people that are just nickflooding due to a wrongly configured script.
- Added set::restrict-extendedbans by which you can disallow normal users to use
  any extendedbans ("*") or disallow only certain ones (eg: "qc").
- Made the negative TS message a bit more annoying if time is off more than 10 seconds.
2004-06-12 01:26:23 +00:00
Bram Matthys 47f3c43295 - Various (non-critical) fixes for dccallow reported by Rocko (incorrect nick in deny msg,
added set::maxdccallow in docs, added bmp/vob/log/ to dccallow.conf).
2004-06-10 15:53:13 +00:00
Bram Matthys fe89b2e36b new one... includes NICKIP & dccallow changes. 2004-06-10 02:33:19 +00:00
Bram Matthys 6ec3822ce1 CmdoverrideAdd, DCCALLOW, allow dcc { }, umode +v change, register_user fix.
- Module coders: if CmdoverrideAdd() is called for an override that is already in place, it
  now sets MODERR_EXISTS as errorcode and returns NULL (previously it added duplicates).
  In the past module coders had many issues with PERM mods... you had to use weird tricks,
  but now you can (and should!) just override on INIT and on HOOKTYPE_REHASH_COMPLETE.
- Moved register_user declaration to h.h, updated call in m_pingpong.c (due new 'ip' field).
- Usermode +v ('receive dcc send rejection notices') is oper-only now for privacy reasons.
- Added dcc allow { }, which allows one to make exceptions over deny dcc { }.
- Added deny dcc::soft and allow dcc::soft item, if set to 'yes' it allows someone
  to explicitly override it per-person via /DCCALLOW (see next).
- Added DCCALLOW system, taken directly from bahamut.
  With this system you can block certain (or all) DCC SENDs and then allow the user to
  'override' this limit for every user he/she trusts via '/DCCALLOW +User'.
  This is an attempt to stop (or at least limit) the spreading of viruses/etc.
  See '/DCCALLOW HELP' for more info.
- Added example dccallow.conf which filters everything except some known
  'safe types' (jpg, jpeg, png, gif, etc). Note that the purpose of this file
  is NOT to get a complete list, rather to limit it to a few 'known safe' entries.
- Added set::maxdccallow: max number of entries of the DCCALLOW list (default: 10).
2004-06-10 02:26:32 +00:00
codemastr f90a4667bf Added a couple donators to /credits 2004-06-09 17:00:04 +00:00
codemastr 6ab3161969 /who +i added, /who help cleanups, and /who +m fix 2004-06-06 18:30:57 +00:00
stylus740 892cad788d Update week23:
doc/unreal32docs.de.html
2004-06-05 07:26:29 +00:00
Bram Matthys 2fc75d1352 - Fixed a synch bug, reported by Troco (#0001857). 2004-06-03 16:44:20 +00:00
Bram Matthys 3c436c02e7 - Added a doc/translations.txt which describes the (current) translation process
and requirements a bit.
2004-06-02 00:04:29 +00:00
codemastr 30f7b2c519 Made the win32 socket error reporting also handle regular system errors 2004-06-01 21:28:54 +00:00
Bram Matthys 55001ad74a - Seems I forgot to del_Command() SPAMFILTER and TEMPSHUN. 2004-06-01 21:11:08 +00:00
codemastr de1ad88442 Added /dns c to clear the DNS cache 2004-06-01 20:38:18 +00:00
codemastr a450365faa Made Unreal create the tmp/ dir at startup, rather than configure 2004-06-01 20:29:20 +00:00
codemastr 756a7de955 Made a bunch of TKL parameters case insensitive 2004-06-01 20:12:49 +00:00
codemastr ecd9ca0c5b Added snomask +S to the documentation 2004-06-01 20:03:03 +00:00
Bram Matthys 57a3465ef4 clarifcation on '*' @ NICKIP 2004-05-31 19:10:14 +00:00
Bram Matthys bfde79e41d - And another one, should be fixed now. 2004-05-31 18:49:26 +00:00
codemastr facf1d62ef Fixed win32 socket error reporting and a NICKIP bug 2004-05-31 18:18:55 +00:00
Bram Matthys 9ebd9e9bcf - And one more. 2004-05-31 00:32:52 +00:00
Bram Matthys 24c2b72e1a Added some $Id$'z 2004-05-30 23:22:43 +00:00
Bram Matthys a2a4576ca2 more! 2004-05-30 21:49:50 +00:00
Bram Matthys 8337447439 - Fixed SSL problem caused by a fix of 2 days ago. Reported by Fury (#0001842). 2004-05-30 21:43:24 +00:00
Bram Matthys 45e373d683 - Fixed some other win32 crashes due to modulizing: WHOWAS, STATS [some], SVSMOTD.
All caused by missing "MODVAR"s. Reported by Troco (#0001841).
2004-05-30 20:34:33 +00:00
stylus740 324aa0f593 Update geman doc week22 2004-05-30 08:31:40 +00:00
codemastr e5f16b777a Made the win32 version use a dynamically linked libc 2004-05-30 00:59:05 +00:00
Bram Matthys 44b2ae15fa - Imported TRE 0.6.8 for windows 2004-05-29 19:48:40 +00:00
codemastr e050009b51 Added NICKIP to doc/technical/protoctl.txt 2004-05-29 19:01:13 +00:00
codemastr a9fbc71459 Imported TRE 0.6.8 for *nix 2004-05-29 18:58:23 +00:00
codemastr 558c9ede6b Fixed a compile error regarding AF_MAX 2004-05-29 17:12:32 +00:00
Bram Matthys 843d4696ff the '*CVS*' mark should be at current version, not at major version. 2004-05-28 01:18:35 +00:00
Bram Matthys fc37449a9e - unreal32docs.html: added flat-map and set::restrict-usermodes "s"; security tips. 2004-05-28 01:14:15 +00:00
Bram Matthys 8702450af2 Various stuff:
- Added release notes (no, we won't release 3.2.1 anytime soon.. just updating ;p).
- Added various extra messages to make it a bit more easier for people who are
  upgrading (win32 commands.dll, cloaking mod).
- Made win32 ssl<->non-ssl modules binary compatible.
- Added ssl/non-ssl check in Mod_Version on *NIX.
- Added set::options::flat-map: This makes all servers look like they are linked
  directly to the server you are on (/map, /links), thus you cannot see which server
  is linked to which ("hopcount"). This can make it a bit harder for kiddies to find
  any 'weak spots' (which server to attack/[D]DoS). Obviously opers will always
  see the real map.
2004-05-28 00:44:07 +00:00
codemastr 8c89274d3d compile warning cleanups 2004-05-27 22:45:17 +00:00
codemastr 9e9390e57e Configure checks for inet_ntop/pton 2004-05-27 22:10:18 +00:00
codemastr c1af4a4516 Added NICKIP 2004-05-27 22:05:58 +00:00
Bram Matthys 2313035766 - Fixed a permanent modules bug: custom allow/except/ban/deny types were lost
after /rehash. Reported by AngryWolf (#0001837).
2004-05-27 01:57:44 +00:00
stylus740 34cfe19e44 Test/correction ;p 2004-05-23 22:15:04 +00:00
Bram Matthys 4a0c827879 - German doc updates (week 21) 2004-05-23 21:57:09 +00:00
stylus740 976c4a8281 test.. should work. 2004-05-23 21:43:16 +00:00
codemastr 8f2763fff1 Win32 module bug with strcasecmp 2004-05-23 18:30:05 +00:00
Bram Matthys 09d1dd87e4 - spamfilter.conf: Added yet another sig for a site that causes Backdoor.Delf.lq
infection (reported by nexus), also changed LOI trojan and Bloodhound.Exploit.6
  action to gline.
2004-05-21 23:15:33 +00:00
Bram Matthys 9bb3623c4d [vesioncheck] - Improved the above: made it work on windows and also added a check for curl. 2004-05-20 21:21:15 +00:00
Bram Matthys 1fc97c815e blah 2004-05-20 20:49:00 +00:00
Bram Matthys 443c529f9f cvs test + win32 ssl/zip library version check error msgdshfsdhsd 2004-05-20 20:37:01 +00:00
Bram Matthys 1a6e72c1b3 - Added zlib+SSL version check on boot to make sure the runtime version is the same
as the 'compiled for' (header) version. If they mismatch, UnrealIRCd could crash,
  so a big warning is posted if it happends.
2004-05-19 20:47:14 +00:00
Bram Matthys 8c20440e04 - Added optional parameter to SVSJOIN to deal with channel keys. Reported by
DukePyrolator (#0001822).
2004-05-18 21:17:31 +00:00
Bram Matthys 683fae7a38 - German doc updates (week 20). 2004-05-18 00:58:55 +00:00
Bram Matthys 76f0f87fdd - Added set::spamfilter::virus-help-channel-deny. This allows you to block any
normal joins to the virus-help-channel. This way you could prevent users into
  accidental (or tricked) joining of the virus-help-channel and becomming infected.
  This feature is disabled by default. Requested by bleepy (#0001811).
2004-05-18 00:39:45 +00:00
codemastr 6d09e29d0c Fixed a win32 module bug 2004-05-17 20:24:14 +00:00
codemastr 79c4cee4b7 Updated to TRE 0.6.7 2004-05-15 19:43:20 +00:00
codemastr e1cc540182 Upgraded to TRE 0.6.7 2004-05-15 19:42:24 +00:00
codemastr ee9ca0e01f Fixed a remote include bug and a /credits typo 2004-05-15 04:25:29 +00:00
Bram Matthys aab9bffe23 - Changed the way MSG/NOTICE <prefix>#chan works:
- It now goes to <prefix> and higher, so '/notice +#chan hi!' goes to +vhoaq
  - You need at least voice in order to be able to msg/notice +#chan, %#chan or @#chan
  - You need at least ops in order to be able to msg/notice &#chan or ~#chan
  - Any multi-prefix targets will be converted automatically (eg: ~&@#chan to @#chan).
  - internal: use of the CHANOPPFX macro is now deprecated.
  All of this was done to make it a bit more 'safe' and userfriendly (#0001812).
2004-05-14 22:34:17 +00:00
Bram Matthys af94fd243a - Local opers can now also join +O (operonly) channels (#0001694). 2004-05-14 19:55:12 +00:00
Bram Matthys 98bd61c179 - Changed 'Services operator' in /whois (back) to 'Services administrator', this was
requested by many people and seems to be the best after all (#0001634).
2004-05-14 15:53:29 +00:00
codemastr a49e227bd4 Win32 module fixes for ssl/zip/curl 2004-05-13 16:39:23 +00:00
Bram Matthys 45a5bd231f forgot to add this one. 2004-05-12 23:22:52 +00:00
Bram Matthys 2bee263234 try this? 2004-05-12 23:20:01 +00:00
Bram Matthys 130669c03b hidehost.. byebye 2004-05-12 23:09:53 +00:00
Bram Matthys 16a82b6aeb - Modulized cloaking 2004-05-12 23:05:40 +00:00
codemastr dd85bf150d ... 2004-05-12 22:32:11 +00:00
codemastr 257d386a1b ... 2004-05-12 22:16:31 +00:00
codemastr 99bd34fbb9 Added module support for Windows 2004-05-12 22:02:05 +00:00
Bram Matthys d9a6dd34b9 - Include openssl/md5.h and openssl/ripemd.h if compiled w/SSL, this seems how it
should be done and also makes unreal w/SSL able to compile on OpenBSD (3.5).
2004-05-09 18:59:11 +00:00
codemastr 0924b208e7 Fixed an empty set::ssl::options crash bug 2004-05-09 17:21:08 +00:00
Bram Matthys bb003e2583 - Changed int_to_base64() warning so it has less false positives (#0001797). 2004-05-08 19:40:48 +00:00
codemastr 4b2dec05e8 Made it so chg* commands are not logged from services 2004-05-04 19:18:06 +00:00
codemastr 133eac2700 Fixed a doc typo and fixed a ./unreal bug 2004-05-04 19:09:04 +00:00
codemastr 087e36a112 Fixed a problem when compiling with GUEST defined 2004-05-04 18:25:44 +00:00
Bram Matthys 116aaa17ea - Replaced tre.dll/tre.lib, previous versions caused a crash (eg: if you included
spamfilter.conf).
2004-04-25 21:39:02 +00:00
stskeeps 425dae8005 as written 2004-04-25 21:06:57 +00:00
cvs2hg ff898a5a9e fixup commit for branch 'unreal3_2_fixes' 2004-04-24 23:07:41 +00:00
281 changed files with 21388 additions and 41852 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Configuration Program
for Unreal3.2.5
for Unreal3.2.3
This program will help you to compile your IRC server, and ask you
questions regarding the compile-time settings of it during the process.
+116 -3
View File
@@ -1,3 +1,116 @@
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 ;)
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
Vendored
+1 -1
View File
@@ -13,7 +13,7 @@
--braces-on-struct-decl-line
--paren-indentation0
--case-brace-indentation0
--line-length110
--line-length80
--declaration-indentation5
-T size_t
-T aClass
-1003
View File
File diff suppressed because it is too large Load Diff
+25 -84
View File
@@ -41,10 +41,6 @@ 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 "
@@ -81,14 +77,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 || exit 1
cd "$UNREALCWD"
$CONF
if [ "$CRYPTOIRCD" = "1" ] ; then
if [ ! -f server.req.pem ]; then
export OPENSSLPATH
@@ -278,75 +274,14 @@ 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"
SPATH="`pwd`/src/ircd"
HUB="1"
DOMAINNAME=`hostname`
DEFPERM="0600"
CRYPTOIRCD=""
SSLDIR=""
@@ -360,15 +295,13 @@ MAXCONNECTIONS="1024"
INET6=""
REMOTEINC=""
CURLDIR=""
PREFIXAQ="1"
PREFIXAQ=""
SHOWLISTMODES="1"
TOPICNICKISNUH=""
SHUNNOTICES=""
NOOPEROVERRIDE=""
DISABLEUSERMOD=""
OPEROVERRIDEVERIFY=""
DISABLEEXTBANSTACKING=""
MODULESWHICH=""
EXTRAPARA=""
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
c="\c"
@@ -403,7 +336,6 @@ while [ $# -ge 1 ] ; do
. ./config.settings
fi
RUN_CONFIGURE
cd "$UNREALCWD"
exit 0
elif [ $1 = "-clean" -o $1 = "-C" ] ; then
CLEAN="1"
@@ -479,7 +411,7 @@ done
TEST="$DPATH"
echo ""
echo "Where do you want to install the server configuration files?"
echo "What directory are all the server configuration files in?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
@@ -490,7 +422,7 @@ fi
TEST="$SPATH"
echo ""
echo "Where do you want to install the server binary?"
echo "What is the path to the ircd binary including the name of the binary?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
@@ -529,6 +461,17 @@ 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"
@@ -584,14 +527,14 @@ while [ -z "$TEST" ] ; do
done
if [ "$CRYPTOIRCD" = "1" ] ; then
TEST="$SSLDIR"
TEST=""
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="$TEST"
SSLDIR=""
else
SSLDIR=`eval echo $cc` # modified
fi
@@ -656,14 +599,14 @@ while [ -z "$TEST" ] ; do
done
if [ "$ZIPLINKS" = "1" ] ; then
TEST="$ZIPLINKSDIR"
TEST=""
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="$TEST"
ZIPLINKSDIR=""
else
ZIPLINKSDIR=`eval echo $cc` # modified
fi
@@ -727,8 +670,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,"
echo "PJIRC, irssi, CGI:IRC, etc.)"
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 "This feature should be enabled/disabled network-wide."
echo $n "[$TEST] -> $c"
read cc
@@ -892,6 +835,7 @@ BUFFERPOOL="$BUFFERPOOL"
MAXCONNECTIONS="$MAXCONNECTIONS"
NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
HUB="$HUB"
DOMAINNAME="$DOMAINNAME"
DEFPERM="$DEFPERM"
CRYPTOIRCD="$CRYPTOIRCD"
SSLDIR="$SSLDIR"
@@ -905,13 +849,10 @@ SHUNNOTICES="$SHUNNOTICES"
NOOPEROVERRIDE="$NOOPEROVERRIDE"
DISABLEUSERMOD="$DISABLEUSERMOD"
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
DISABLEEXTBANSTACKING="$DISABLEEXTBANSTACKING"
MODULESWHICH="$MODULESWHICH"
EXTRAPARA="$EXTRAPARA"
ADVANCED="$ADVANCED"
__EOF__
RUN_CONFIGURE
cd "$UNREALCWD"
cat << __EOF__
_______________________________________________________________________
+12 -28
View File
@@ -20,7 +20,6 @@
#*/
CC=@CC@
CXX=@CXX@
INCLUDEDIR=../include
NETWORKSDIR=
FROMDOS=/home/cmunk/bin/4dos
@@ -39,7 +38,7 @@ IRCDLIBS=@IRCDLIBS@ @TRELIBS@ @CARESLIBS@
CRYPTOLIB=@CRYPTOLIB@
OPENSSLINCLUDES=
XCFLAGS=-I@TREINCDIR@ -I@CARESINCDIR@ @CARESLIBDIR@ @CFLAGS@
XCFLAGS=-I@TREINCDIR@ -I@CARESINCDIR@ @CFLAGS@
#
# use the following on MIPS:
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
@@ -132,22 +131,11 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
'CRYPTOLIB=${CRYPTOLIB}' \
'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
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' 'URL=${URL}'
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 \
@@ -214,26 +202,22 @@ depend:
install: all
$(INSTALL) -m 0700 -d $(IRCDDIR)
$(INSTALL) -m 0700 -d $(BINDIR)
$(INSTALL) -b -m 0700 src/ircd $(BINDIR)
$(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 $(IRCDDIR)/doc
$(INSTALL) -m 0600 $(INSTALL_DOCS) $(IRCDDIR)/doc
$(INSTALL) -m 0600 doc/Authors doc/example.conf doc/coding-guidelines doc/tao.of.irc doc/unreal32docs.html $(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) -b -m 0600 $(INSTALL_CONFS) $(IRCDDIR)
$(INSTALL) -b -m 0700 unreal $(IRCDDIR)
$(INSTALL) -m 0600 spamfilter.conf dccallow.conf $(IRCDDIR)
$(INSTALL) -m 0600 badwords.*.conf help.conf LICENSE Donation $(IRCDDIR)
$(INSTALL) -m 0700 unreal $(IRCDDIR)
$(INSTALL) -m 0700 -d $(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
$(INSTALL) -m 0700 src/modules/*.so $(IRCDDIR)/modules
pem: src/ssl.cnf
@echo "Generating certificate request .. "
+33 -29
View File
@@ -1,32 +1,33 @@
===============================================
= UnrealIRCd v3.3* =
= UnrealIRCd v3.2.3 =
===============================================
Was brought to you by:
The head coders
================
* Stskeeps <stskeeps@tspre.org>
* Syzop <syzop@unrealircd.com>
* codemastr <codemastr@unrealircd.com>
The core team:
==============
* Stskeeps <stskeeps@tspre.org>
* codemastr <codemastr@unrealircd.com>
* Syzop <syzop@unrealircd.org>
* Luke <luke@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/
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>
Precenses on the Internet:
* http://www.unrealircd.com
CVS
====
To get anonymous access: (read only)
@@ -35,17 +36,19 @@
press enter when asked for password
Then, choose the appropiate branch you want:
latest 3.3 release (unstable/development):
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r devel -d Unreal-stable unreal"
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"
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
@@ -53,14 +56,15 @@
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.unrealircd.org 6667 - /join #UnrealIRCd
* IRC: /server irc.ircsystems.net 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; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias memoserv { type services; };
alias ms { target memoserv; type services; };
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; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias memoserv { type services; };
alias ms { target memoserv; type services; };
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; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias memoserv { type services; };
alias ms { target memoserv; type services; };
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; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias memoserv { type services; };
alias ms { target memoserv; type services; };
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; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias memoserv { type services; };
alias ms { target memoserv; type services; };
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; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias memoserv { type services; };
alias ms { target memoserv; type services; };
alias operserv { type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
+6 -39
View File
@@ -52,29 +52,14 @@ 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 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"
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"
fi
IRCDLIBS="$IRCDLIBS $CURLLIBS"
CFLAGS="$CFLAGS $CURLCFLAG -DUSE_LIBCURL"
URL="url.o"
AC_SUBST(URL)
])
@@ -109,16 +94,7 @@ AC_MSG_CHECKING(for openssl)
done
if test x_$found_ssl != x_yes; then
AC_MSG_RESULT(not found)
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
AC_WARN(disabling ssl support)
else
CRYPTOLIB="-lssl -lcrypto";
if test ! "$ssldir" = "/usr" ; then
@@ -151,16 +127,7 @@ AC_MSG_CHECKING(for zlib)
done
if test x_$found_zlib != x_yes; then
AC_MSG_RESULT(not found)
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
AC_WARN(disabling ziplink support)
else
IRCDLIBS="$IRCDLIBS -lz";
if test "$zlibdir" != "/usr" ; then
+31 -46
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 "`$CC -v --help 2>&1`" in
case "`gcc -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 "`$CC -v --help 2>&1`" in
case "`gcc -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,6 +367,8 @@ 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])],
@@ -375,7 +377,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/ircd") BINDIR="$withval",AC_DEFINE_UNQUOTED(SPATH,"`pwd`/src/ircd") BINDIR="`pwd`/src/ircd")
AC_DEFINE_UNQUOTED(SPATH,"$withval") 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))
@@ -391,26 +393,11 @@ 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)
@@ -438,41 +425,41 @@ IRCDLIBS="$IRCDLIBS -lresolv "
;;
esac
dnl REMEMBER TO CHANGE WITH A NEW PCRE RELEASE!
tre_version="7.2"
AC_MSG_RESULT(extracting PCRE regex library)
dnl REMEMBER TO CHANGE WITH A NEW TRE RELEASE!
tre_version="0.7.2"
AC_MSG_RESULT(extracting TRE regex library)
cur_dir=`pwd`
cd extras
dnl remove old tre directory to force a recompile...
rm -rf pcre-$tre_version
rm -rf tre-$tre_version
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz pcre.tar.gz
tar xfz tre.tar.gz
else
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
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
fi
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_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_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing PCRE regex library)
AC_MSG_RESULT(installing TRE 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 -lpcreposix -lpcre"
TRELIBS="-L../extras/regexp/lib -ltre"
else
TRELIBS="`$ac_cv_path_PKGCONFIG --libs libpcre.pc` -lpcreposix -lpcre"
TRELIBS=`$ac_cv_path_PKGCONFIG --libs tre.pc`
fi
AC_SUBST(TRELIBS)
cd $cur_dir
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
cares_version="1.4.0"
cares_version="1.3.0"
AC_MSG_RESULT(extracting c-ares resolver library)
cur_dir=`pwd`
cd extras
@@ -495,13 +482,11 @@ 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)
CARESLIBDIR="-L../extras/c-ares/lib"
AC_SUBST(CARESLIBDIR)
CARESLIBS="-lcares"
CARESLIBS="-L../extras/c-ares/lib -lcares"
AC_SUBST(CARESLIBS)
cd $cur_dir
AC_OUTPUT(Makefile src/modules/Makefile src/modules/chanmodes/Makefile unreal ircdcron/ircdchk)
AC_OUTPUT(Makefile src/modules/Makefile unreal ircdcron/ircdchk)
chmod 0700 unreal
chmod 0700 ircdcron/ircdchk
Vendored
+2201 -4678
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
+1 -57
View File
@@ -2,12 +2,7 @@
Some minor rules about patches & modifications to UnrealIRCd
1. When making a change, always add a small description in Changes, in the
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 ;)
BOTTOM
2. If new files are made, it must contain proper copyright headers,
and a $Id$ somewhere.
@@ -44,54 +39,3 @@ 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
+97 -53
View File
@@ -2,43 +2,30 @@
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 have problems with NOSPOOF, fix your client (bot?) instead (you should PONG
back to the initial PING at connect).
If you got 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++ (see below), compiling with
cygwin is not supported (nor is there any good reason to do so).
First of all you need Microsoft Visual C++, compiling with cygwin
is not supported.
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).
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.
== 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
@@ -51,14 +38,12 @@ 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 that your module
might seem to work fine at first (or not..) but will CRASH or cause memory
corruption and other subtle errors.
binary/module binary incompatible which practically means your module
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
@@ -82,28 +67,87 @@ 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 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).
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"
+764
View File
@@ -0,0 +1,764 @@
/*
* 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'.
*/
+12 -21
View File
@@ -14,11 +14,9 @@
* 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 */
@@ -290,9 +288,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", separate ciphers with :'s
*
* /* If we use SSL, we can choose what cipher to use in SSL mode
* * Retrieve a list by "openssl ciphers", seperate ciphers with :'s
* */
* ciphers "DES-CBC3-MD5";
*
* };
@@ -507,18 +505,6 @@ 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 {}
@@ -737,6 +723,11 @@ 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 */
@@ -763,7 +754,7 @@ set {
*/
oper-only-stats "okfGsMRUEelLCXzdD";
/* Throttling: this example sets a limit of 3 connection attempts per 60s (per host). */
/* Throttling: this example sets a limit of 3 connections per 60s (per host). */
throttle {
connections 3;
period 60s;
@@ -785,8 +776,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
@@ -0,0 +1,789 @@
/*
* 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
@@ -0,0 +1,793 @@
/*
* 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
@@ -0,0 +1,812 @@
/*
* 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
+9 -16
View File
@@ -1,4 +1,5 @@
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
@@ -106,7 +107,7 @@ CASEMAPPING string ascii Specifies what defini
characters are upper/lowercase
of eachother.
EXTBAN prefix,types ~,cqnr Specifies what extbans are
EXTBAN prefix,types ~,cqr Specifies what extbans are
supported by the server. The prefix
defines which character indicates
an extban and the types defines
@@ -123,7 +124,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
@@ -131,37 +132,29 @@ 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
@@ -1,465 +0,0 @@
<!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>
+2 -1
View File
@@ -1,8 +1,9 @@
Token List (c) 2002-2004 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
(As of Unreal3.2.3)
Command Token
------------------------------------------------------------------------------------------------
PRIVMSG !
PRIVATE !
WHOIS #
NICK &
SERVER '
+1 -2
View File
@@ -1,9 +1,8 @@
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,6 +1,3 @@
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
+97 -254
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; background-color: #eeeeee;}
pre { font: "times new roman"; font-style: normal;}
</style>
</head>
@@ -21,24 +21,23 @@
<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.nl.html">Dutch</a> |
<a href="unreal32docs.ru.html">Russian</a> |
<a href="unreal32docs.tk.html">Turkish</a>
<a href="unreal32docs.gr.html">Greek</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.5 </font><br>
<b>Letztes Update dieses Handbuchs:</b> 2006-06-15</div>
<font size="4">Version: 3.2.3 </font><br>
<b>Letztes Dokumentation Update:</b> 2005-03-13</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>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>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><b>Kompatible Browser: </b><br>
<ul>
<li>Opera 6.02
@@ -69,11 +68,9 @@ und&nbsp; eine FAQ @ <a href="http://www.vulnscan.org/UnrealIRCd/faq/.">http://w
-- 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<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>
-- 3.16. <a href="#feature_nickchars">Nick Zeichensätze</a><a href="#feature_cidr"><br>
</a>
-- 3.19. <a href="#feature_other">Andere Features</a> <a href="#feature_other"><br>
-- 3.17. <a href="#feature_other">Andere Features</a> <a href="#feature_other"><br>
</a>
4. <a href="#configuringyourunrealircdconf">Konfiguration der unrealircd.conf
Datei</a><br>
@@ -112,9 +109,8 @@ 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<br>
</a>---4.36. <a href="#cgiirc">Cgiirc Block</a><br>
---4.37. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
---4.35. <a href="#spamfilter"> Spamfilter Block</a><br>
---4.36. <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>
@@ -152,15 +148,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-2006</p>
werden. &#8211; Copyright UnrealIRCd Development Team 2002-2005</p>
<p>Bitte lesen Sie diese Anleitung, bevor Sie um Hilfe bitten und schauen Sie
WIRKLICH erst einmal in die <a href="#faq">FAQ</a>, da rund 80% der Fragen dort
WIRKLICH erst ein mal 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 <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
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
<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>
@@ -183,7 +179,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 (ansonsten wird es im nächsten Schritt
<li>Altes UnrealIRCd Verzeichnis umbenennen (oder es wird im nächsten Schritt
überschrieben)
<li>Neue UnrealIRCd Version entpacken und &quot;./Config&quot; und &quot;make&quot;
laufen lassen (*NIX).
@@ -209,8 +205,6 @@ 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>
@@ -229,12 +223,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.org">coders@lists.unrealircd.org
Details an <a href="mailto:coders@lists.unrealircd.com">coders@lists.unrealircd.com
</a> senden. <p><b>Installationsanleitungen</b><br>
Linux:<br>
<ol>
<li>gunzip -d Unreal3.2.X.tar.gz
<li>tar xvf Unreal3.2.X.tar
<li>gunzip -d Unreal3.2.2.tar.gz
<li>tar xvf Unreal3.2.2.tar
<li>cd Unreal3.2
<li>./Config
<li>Die hierbei angezeigten Fragen nach bestem Wissen beantworten. Allgemein ist
@@ -258,8 +252,7 @@ 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, weil man ansonsten Konzepte wie
cloaking, snowmask etc. nicht verstehen wird..</p></div>
vor oder nach der Installation zu lesen.</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.
@@ -276,7 +269,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 Algorithmus ist. Es verwendet intern md5 und erfordert, dass 3
sicherer, als der alte Algorithmis 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
@@ -290,13 +283,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>
@@ -345,7 +338,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 <a href="#aliasblock"> alias Blocks</a> in der Konfigurationsdatei definiert oder in
<p>Aliases werden in alias Blocks 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">
@@ -1009,51 +1002,45 @@ 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" 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
<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
(latin1)</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>
<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>
</table>
&nbsp;
<p>Anmerkung 1: Zu beachten ist, dass einige Kombinationen Probleme verursachen können.
@@ -1067,9 +1054,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 System und IRCd
den Nick BÄr hat. Das ist eine Einschränkung durch das aktuelle SDystem und IRCd
Standards, die nicht binnen kurzer Zeit gelöst werden können. Den Usern sollte
diese Einschränkung klar sein. Zu beachten dabei ist, dass es diese
diese Enschrä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>
@@ -1077,7 +1064,6 @@ 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">
@@ -1090,41 +1076,7 @@ Schriftzeichen gestatten will:<br>
<font face="Courier">
set { allowed-nickchars { chinese-simp; chinese-trad; }; };</font></div>
<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><font size="+2"><b><a name="feature_other">3.17 - 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>
@@ -1133,11 +1085,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 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
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
einen Bug meldet.</p></div>
<p><b><font size="+2"><a name="configurationfileexplained">4.1 Erklärung der
Konfigurationsdatei<br>
@@ -1170,7 +1122,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;<i>BLOCK-NAME</i>&quot; nicht dasselbe wie &quot;<i>block-name</i>&quot;. Es
daher ist &quot;BLOCK-NAME&quot; nicht dasselbe wie &quot;block-name&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;
@@ -1188,10 +1140,10 @@ einem Unterblock sein, der keinen Namen hat.</p>
&nbsp;&nbsp;&nbsp; über mehrere<br>
&nbsp;&nbsp;&nbsp;&nbsp;Zeilen */<br>
</p>
<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
<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
empfehlenswert, sich Schritt für Schritt durch alle Blöcke und diese Anleitung
als Referenz durchzuarbeiten.</p>
<p></p></div>
@@ -2236,9 +2188,6 @@ 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;
@@ -2341,7 +2290,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 rule Ausdruck erlaubt
<b>deny::rule</b> ist ein sehr komplexer Ausdruck. Ein crule 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
@@ -2490,7 +2439,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" style="width: 1195; height: 374">
</p><div class="desc">
<p>Syntax:
<pre>badword &lt;type&gt; {
word &lt;text-to-match&gt;;
@@ -2498,15 +2447,14 @@ 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 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'
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
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;
ersezt. Bei <b> badword::action</b> wird angegeben, was im Falle eines
erstezt. 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
@@ -2650,8 +2598,7 @@ 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 können keine GLOBAL
Oper Privilegien erhalten (sie werden gekilled), dient zu Test Links etc.</td></tr>
<tr><td><b>quarantine</b></td><td> Opers auf diesem Server behalten locop Status bei</td></tr>
</table>
<p>Beispiel:</p>
<pre>link hub.mynet.com {
@@ -2679,7 +2626,6 @@ 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>
@@ -2691,32 +2637,20 @@ 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) &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>
&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>
<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
@@ -2726,19 +2660,15 @@ 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, 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>
Alias weitergeleitet wird. <b> alias::format::type</b> definiert den Typ des
Alias, zu dem die Nachricht geleitet wird. <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.&nbsp;</p>
<p> Um Beispiele zum Alias Block
Users ersetzt wird, der den befehl ausgeführt hat. Um Beispiele zum Alias Block
zu sehen, schaue man in doc/example.conf.</p>
<p>&nbsp;</p>
</div>
@@ -2828,66 +2758,7 @@ 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="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>
<p><font class="block_section"><a name="setblock">4.36 - </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">
@@ -3012,17 +2883,6 @@ 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.
@@ -3030,7 +2890,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 werden.</p>
In dieser Syntax dürfen nur <b>lange Operflags</b> angegeben wwerden.</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>
@@ -3041,7 +2901,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 &quot;`!.&quot;.</p>
wenn der Client +d ist. Die Voreinstellung lautet "`".</p>
<p><font class="set">set::allow-userhost-change [never|always|not-on-channels|force-rejoin]</font><br>
Einstellung, was passiert, wenn sich der user@host ändert (+x/-x/chghost/chgident/setident/vhost/etc).<br>
<i>never</i> schaltet sämtliche Befehle ab, <i>always</i> gestattet so
@@ -3221,23 +3081,7 @@ 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 &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>
möglich. Beispiel: except "#help,#spamreport"</p> </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
@@ -3455,8 +3299,7 @@ geben, dies zu
</tr>
<tr>
<td height="19"><div align="center">d</div></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>
<td height="19">User kann keine Channel PRIVMSGs empfangen</td>
</tr>
<tr>
<td height="19"><div align="center">G</div></td>
@@ -4334,7 +4177,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. Das ist schön, allerdings sollte man nicht nur primär
Expolits erschweren, zu arbeiten. 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>
+3168 -3295
View File
File diff suppressed because it is too large Load Diff
+235 -369
View File
File diff suppressed because it is too large Load Diff
+53 -164
View File
@@ -5,7 +5,7 @@
<META http-equiv=Content-Type content="text/html; charset=iso-8859-7">
<STYLE>
<!--
.Normal {FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman";}
.Normal {FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; 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 | <a href="unreal32docs.nl.html">Dutch</a> | <a href="unreal32docs.ru.html">Russian</a> | <a href="unreal32docs.tk.html">Turkish</a><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 <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.5</SPAN><BR>
<B>Last doc update:</B> 2006-06-15</P>
style="FONT-SIZE: 13.5pt">Version: 3.2.3</SPAN><BR>
<B>Last doc update:</B> 2005-03-13</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> Ãéá íá ìðïñÝóåôå íá äåßôå áõôï ôï Ýããñáöï ðñÝðåé íá Ý÷åôå Ýíáí óõìâáôü ðåñéçãçôÞ, üðùò áõôïß ðïõ õðÜñ÷ïõí ðáñáêÜôù: Ôá ôåëåõôáßá âïçèçôéêÜ Ýããñáöá âñßóêïíôáé óôï <A
<P> Ëüãù ôçò áõîáíüìåíçò ðåñéðëïêüôçôáò ôïõ UnrealIRCd3.2 óôñáöÞêáìå óå Ýíá ðéï Ýõêïëï, ðéï ðåñéåêôéêü âïçèçôéêü Ýããñáöï. Ãéá íá ìðïñÝóåôå íá äåßôå áõôï ôï Ýããñáöï ðñÝðåé íá Ý÷åôå Ýíáí óõìâáôü ðåñéçãçôÞ, üðùò áõôïß ðïõ õðÜñ÷ïõí ðáñáêÜôù: Ôá ôåëåõôáßá âïçèçôéêÜ Ýããñáöá âñßóêïíôáé óôï <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,11 +108,8 @@ href="#feature_spamfilter">Spamfilter</A><BR>
href="#feature_cidr">CIDR</A><br>
-- 3.16. <a href="#feature_nickchars">Óåô ÷áñáêôÞñùí Nick</a><br>
-- 3.17. <A
href="#feature_cgiirc">ÕðïóôÞñéîç CGI:IRC</A><BR>
-- 3.18. <A
href="#feature_timesync">Óõã÷ñïíéóìüò ¿ñáò</A><BR>
-- 3.19. <A
-- 3.17. <A
href="#feature_other">¶ëëá ÷áñáêôçñéóôéêÜ</A><BR>
4. <A
@@ -224,9 +221,6 @@ 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
@@ -267,7 +261,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>
@@ -283,10 +277,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-2006</P>
<P>Áõôü ôï Ýããñáöï Ý÷åé ãñáöôåß ãéá áðïêëåéóôéêÞ ÷ñÞóç ìå ôï UnrealIRCd. Ç ÷ñÞóç ôïõ åããñÜöïõ ìå Üëëï ðñüãñáììá , Þ ç äéáíïìÞ&nbsp; áõôïõ ôïõ åããñÜöïõ ìáæé ìå Üëëï ðñüãñáììá áðáãïñÝõåôáé áõóôçñÜ ÷ùñßò ôçí ãñáðôÞ Üäåéá ôçò ïìÜäáò ðñïãñáììáôéóìïý ôïõ UnrealIRCd. Áõôï ôï Ýããñáöï ìðïñåé íá áíôéãñáöåß/åêôõðùèåß/åðáíáäçìéïõñãçèåß/åêäïèåß üóåò öïñÝò èÝëåôå, üóï ðáñÝ÷åôáé ãéá ÷ñÞóç ìå ôï UnrealIRCd êáé äåí Ý÷åé ôñïðïðïéçèåß ìå êáíÝíáí ôñüðï. &#8211; Copyright UnrealIRCd Development Team 2002-2004</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/"
@@ -327,11 +321,11 @@ name=installation></A>
</UL>
<UL type=disc>
<UL type=circle>
<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>
<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>
</UL>
</UL>
<UL type=disc>
@@ -339,28 +333,25 @@ name=installation></A>
</UL>
<UL type=disc>
<UL type=circle>
<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
<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>
</UL>
</UL>
<P><BR>
Áí ãíùñßæåôå ïôé ôï Unreal3.2 ëåéôïõñãåß óùóôÜ êáé óå Üëëá ëåéôïõñãéêÜ óõóôÞìáôá, ðáñáêáëïýìå óôåßëôå ôéò ëåðôïìÝñéåò óôï <A
href="mailto://coders@lists.unrealircd.org">coders@lists.unrealircd.org<BR>
href="mailto://docs@unrealircd.com">docs@unrealircd.com<BR>
</A></P>
<P><B>Ïäçãåßåò ÅãêáôÜóôáóçò</B><BR>
<P><B>Installation Instructions</B><BR>
Linux:</P>
<OL type=1>
<LI>gunzip -d Unreal3.2.X.tar.gz
<LI>tar xvf Unreal3.2.X.tar
<LI>gunzip -d Unreal3.2.2.tar.gz
<LI>tar xvf Unreal3.2.2.tar
<LI>cd Unreal3.2
<LI>./Config
<LI>ÁðáíôÞóôå ôéò åñùôÞóåéò ìå ôïí êáëýôåñï ôñüðï ðïõ óáò åðéôñÝðïõí ïé ãíþóåéò óáò. ØåíéêÜ áí äåí åßóôå óßãïõñïé, ïé ðñïåðéëåãìÝíåò áðáíôÞóåéò èá ëåéôïõñãÞóïõí ìéá ÷áñá!
@@ -378,7 +369,7 @@ href="mailto://coders@lists.unrealircd.org">coders@lists.unrealircd.org<BR>
name=features></A></P>
<DIV style="MARGIN-LEFT: 11.25pt">
<P>ÌåñéêÜ áðï ôá ðéï âáóéêÜ/ùñáßá ÷áñáêôçñéóôéêÜ áíáëýïíôáé óå áõôÞí ôçí ðáñÜãñáöï. ÐáñÝ÷åé ìéá ãåíéêÞ êÜôïøç, êáé ìåñéêÝò öïñÝò áíáöÝñåôáé óôï áñ÷åßï åðéëïãþí (êáôé ðïõ ßóùò ãéá ôï ïðïßï äåí ãíùñßæåôå ôßðïôá áêïìá).</P>
<P>Ìðïñåßôå íá áãíïÞóåôå áõôÞí ôçí ðáñÜãñáöï, üìùò ðñïôåßíïõìå áíåðéöýëáêôá íá ôçí äéáâÜóåôå ðñßí/ìåôÜ áðï ôçí åãêáôÜóôáóç ãéáôé áëëéþò äåí èá ìðïñÝóåôå íá êáôáëÜâåôå éäÝåò üðùò cloaking','snomasks',êôëð.</P>
<P>Ìðïñåßôå íá áãíïÞóåôå áõôÞí ôçí ðáñÜãñáöï, üìùò ðñïôåßíåôáé íá ôçí äéáâÜóåôå ðñßí/ìåôÜ áðï ôçí åãêáôÜóôáóç.</P>
</DIV>
<P><B><SPAN style="FONT-SIZE: 18pt">3.1 - Cloaking</SPAN></B><A
@@ -434,7 +425,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) ïñßæïíôáé ìå ôçí åðéëïãÞ <a href="#aliasblock">alias blocks</a> óôï áñ÷åßï åðéëïãþí, êáé ìðïñåßôå åðßóçò íá óõìðåñéëÜâåôå Ýíá áñ÷åßï ìå áñ÷éêÝò óõíôïìåýóåéò ãéá ôéò õðçñåóßåò ðïõ ÷ñçóéìïðïéïýíôáé óõ÷íüôåñá.</P>
<P>Ïé óõíôïìåýóåéò (Aliases) ïñßæïíôáé ìå ôçí åðéëïãÞ alias óôï áñ÷åßï åðéëïãþí, êáé ìðïñåßôå åðßóçò íá óõìðåñéëÜâåôå Ýíá áñ÷åßï ìå áñ÷éêÝò óõíôïìåýóåéò ãéá ôéò õðçñåóßåò ðïõ ÷ñçóéìïðïéïýíôáé óõ÷íüôåñá.</P>
</DIV>
<P><B><SPAN style="FONT-SIZE: 18pt">3.5 - Helpop</SPAN></B><A
@@ -951,7 +942,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>ÏõããñéêÜ, ÐïëùíéêÜ, ÑïõìÜíéêá</td><td>iso8859-2 (latin2)</td></tr>
<tr><td><b>latin2</b></td><td>hungarian, polish, romanian</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>
@@ -961,15 +952,9 @@ lang=EN-US>ban </SPAN>
<td class="Normal">×áñáêôÞñåò Åëëçíéêþí</td>
<td class="Normal">iso8859-7</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>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 class="Normal">chinese-simp</td>
<td class="Normal">ÁðëïðïéïçìÝíá ÊéíÝæéêá</td>
@@ -1012,28 +997,10 @@ lang=EN-US>ban </SPAN>
ÐáñÜäåéãìá 2, áí Ý÷åôå ðåñéóóüôåñï êéíÝæïõò ÷ñÞóôåò êáé èÝëåôå íá åðéôñÝøåôå "êáíïíéêïýò" êéíÝæéêïõò ÷áñáêôÞñåò:<br>
<pre>set { allowed-nickchars { chinese-simp; chinese-trad; }; };</pre>
</div>
<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>
<P><B><SPAN
style="FONT-SIZE: 18pt"><br>
3.17&#8211; <A name=feature_other></A>¶ëëá ×áñáêôçñéóôéêÜ</SPAN></B></P>
<DIV style="MARGIN-LEFT: 11.25pt">
<P>Ôï UnrealIRCd Ý÷åé ðïëëÜ ÷áñáêôçñéóôéêÜ ïðüôå äåí êáëýðôïíôáé üëá åäþ... Èá ôï êáôáëÜâåôå êáé áðï ìüíïé óáò.</P>
</DIV>
@@ -1043,10 +1010,8 @@ style="FONT-SIZE: 18pt">4.0 &#8211;
name=configuringyourunrealircdconf></A></P>
<DIV style="MARGIN-LEFT: 11.25pt">
<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>Ðñþôá áð&#8217;üëá, ôï íá äçìéïõñãÞóåôå Ýíá êáëü unrealircd.conf èá ðÜñåé áñêåôü ÷ñüíï, ðéèáíüôáôá ðåñßðïõ 10 &#8211; 60 ëåðôÜ. Ìðïñåßôå íá ðñïóðáèÞóåôå íá ôï îåêéíÞóåôå üóï ðéï ãñÞãïñá ìðïñåßôå êáé íá ôï âåëôéóôïðïéÞóåôå áñãüôåñá, Þ ìðïñåßôå íá ìÜèåôå ôéò óçìáíôéêüôåñåò ðáñáãñÜöïõò âÞìá âÞìá êÜôé ðïõ ðñïôåßíåôáé ;P. Áí Ý÷åôå êÜðïéï ðñüâëçìá, åëÝãîôå ôçí óýíôáîç, åëÝãîôå ôï åã÷åéñßäéï êáé åëÝãîôå ôï FAQ ðñéí æçôÞóåôå ïðïéáäÞðïôå âïÞèåéá/ôï õðïâÜëåôå þò bug.</P>
</DIV>
<P><B><SPAN
style="FONT-SIZE: 18pt">4.1 Ôï áñ÷åßï Åðéëïãþí áíáëõôéêÜ</SPAN></B><A
@@ -1061,14 +1026,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>Óçìåßùóç: Ôï áñ÷åßï åðéëïãþí åßíáé åõáßóèçôï óôá êåöáëáßá äçëáäÞ ôï <i>BLOCK-NAME</i> äåí åßíáé ôï ßäéï ìå ôï&nbsp; <i>block-name</i>. ÕðÜñ÷åé åéäéêÞ óçìåßùóç ðïõ áíáöÝñåôáé óôéò êáôá÷ùñÞóåéò óôï áñ÷åßï åðéëïãþí. Øéá ðáñÜäåéãìá, ìéëþíôáò ãéá ôï &lt;directive-name&gt; óôï ðáñÜäåéãìá ðáñáðÜíù, èá ëÝãáôå &lt;block-name&gt;::&lt;block-directive&gt;, êáé áí áõôü ôï üñéóìá Ý÷åé õðï-åðéëïãÞ ðïõ èÝëåôå íá óõìðåñéëÜâåôå, èá ðñïóèÝôáôå Üëëï Ýíá :: êáé ôï üíïìá ôïõ õðï ïñßóìáôïò. </P>
<P>Óçìåßùóç: Ôï áñ÷åßï åðéëïãþí åßíáé åõáßóèçôï óôá êåöáëáßá äçëáäÞ ôï BLOCK-NAME äåí åßíáé ôï ßäéï ìå ôï&nbsp; block-name. ÕðÜñ÷åé åéäéêÞ óçìåßùóç ðïõ áíáöÝñåôáé óôéò êáôá÷ùñÞóåéò óôï áñ÷åßï åðéëïãþí. Øéá ðáñÜäåéãìá, ìéëþíôáò ãéá ôï &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>Ôþñá ðïõ ãíùñßæåôå ðþò ëåéôïõñãåß, áíôéãñÜøôå ôï <i>doc/example.conf</i> óôïí öÜêåëï ôïõ UnrealIRCd (ð.÷: /home/user/Unreal3.2) êáé ìåôïíïìÜóôå ôï óå <i>unrealircd.conf</i> (Ç äçìéïõñãÞóôå ôï äéêü óáò <i>unrealircd.conf</i> áðôçí áñ÷Þ). ÓõóôÞíåôáé íá ðñï÷ùñÞóåôå âÞìá-âÞìá üëåò ôéò åðéëïãÝò êáé ñõèìßóåéò ôïõ áñ÷åßïõ åðéëïãþí êáé íá ÷ñçóéìïðïéÞóåôå áõôï ôï åã÷åéñßäéï ãéá áíáöïñÜ.</P>
<P>Ôþñá ðïõ ãíùñßæåôå ðþò ëåéôïõñãåß, äçìéïõñãÞóôå ôï äéêü óáò unrealircd.conf áðï ôçí áñ÷Þ ç áíôéãñÜøôå ôï doc/example.conf êáé áñ÷ßóôå íá ôï åðåîåñãÜæåóôå. ÓõóôÞíåôáé íá ðñï÷ùñÞóåôå âÞìá-âÞìá üëåò ôéò åðéëïãÝò êáé íá ÷ñçóéìïðïéÞóåôå áõôï ôï åã÷åéñßäéï ãéá áíáöïñÜ.</P>
</DIV>
<P><B><SPAN
@@ -2464,7 +2429,7 @@ cellPadding=0 border=0>
</TR>
<TR>
<TD class="Normal"> <P><B>quarantine</B></P></TD>
<TD class="Normal"> <P>ïé äéá÷åéñéóôÝò óå áõôüí ôïí server äåí ìðïñïýí íá áðïêôÞóïõí äéêáéþìáôá GLOBAL äéá÷åéñéóôÞ(èá ãßíïõí KILL), ÷ñçóéìïðïéåßôáé ãéá äïêéìáóôéêïýò äéáêïìéóôÝò êôë.</P></TD>
<TD class="Normal"> <P>ïé äéá÷åéñéóôÝò óå áõôüí ôïí server èá Ý÷ïõí ôïðéêÜ äéêáéþìáôá ìüíï status</P></TD>
</TR>
</TBODY>
</TABLE>
@@ -2497,35 +2462,25 @@ 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::spamfilter (ìÞ áðáñáßôçôï) Ý÷åé ïñéóôåß óå 'yes', ôüôå ôá spamfilters èá åëÝã÷ïíôáé (ç áñ÷éêÞ åðéëïãÞ åéíáé 'no').<br> Ç åðéëïãÞ 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 Ý÷åé áêüìá ìéá ÷ñÞóç ôçò ïðïßáò ï óêïðüò åðåîçãÞôáé ðáñáêÜôù.</P>
<P>Óýíôáîç [command alias]:</P>
<PRE>&nbsp;
alias &lt;name&gt; {
/* Ãéá aliases ðïõ óôÝëíïíôáé óå ÷ñÞóôåò/êáíÜëéá */
alias &lt;name&gt; {
&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; spamfilter &lt;yes|no&gt;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type command;
};</PRE>
<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>
<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>
</DIV>
<P><B><SPAN
@@ -2609,61 +2564,9 @@ 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.37 - ÅðéëïãÞ Set</SPAN></B> <B><SPAN
style="FONT-SIZE: 18pt">4.36 - ÅðéëïãÞ Set</SPAN></B> <B><SPAN
style="COLOR: red">REQUIRED</SPAN></B> <SPAN
@@ -2738,12 +2641,7 @@ 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>
<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>
Ïñßæåé ôï üñéï ãéá ôïí ìÝãéóôï áñéèìü ôùí SILENCE åðéëïãþí. Áí áõôç ç åðéëïãÞ äåí ïñéóôåß, ïñßæåôáé áõôüìáôá ôï üñéï ôùí 15.</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>
@@ -2753,7 +2651,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>
@@ -2862,16 +2760,7 @@ 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>
<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>
</DIV>
<P><B><SPAN
style="FONT-SIZE: 18pt">5 &#8211; ÅðéðëÝïí áñ÷åßá<A name=addtlfiles></A> </SPAN></B></P>
@@ -3101,7 +2990,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 (ìå ôçí åîÝñåóç áõôþí ðïõ áñ÷ßæïõí ìå óõãêåêñéìÝíïõò ÷áñáêôÞñåò,äåßôå set::channel-command-prefix)</P></TD>
<TD class="Normal"> <P>Ïñßæåé íá ìçí äÝ÷åóôå ìçíýìáôá êáíáëéþí PRIVMSGs</P></TD>
</TR>
<TR>
<TD class="Normal"> <P style="TEXT-ALIGN: center" align=center>G</P></TD>
@@ -3803,7 +3692,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
@@ -3823,7 +3712,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>
+85 -216
View File
@@ -12,34 +12,32 @@
.block_old { font-size: 14; }
.set { font-weight: bold; }
.desc { margin-left: 15px; }
pre { font: "times new roman"; font-style: normal; background-color: #eeeeee;}
pre { font: "times new roman"; font-style: normal;}
</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.nl.html">Dutch</a> |
<a href="unreal32docs.ru.html">Russian</a> |
<a href="unreal32docs.tk.html">Turkish</a>
<a href="unreal32docs.gr.html">Greek</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.5</font><br>
<b>Last doc update:</b> 2006-06-15</div>
<font size="4">Version: 3.2.3</font><br>
<b>Last doc update:</b> 2005-03-13</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>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>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>
<p><b>Compatible Browsers: </b><br>
<ul>
@@ -72,9 +70,7 @@ English |
-- 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_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>
-- 3.17. <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>
@@ -112,8 +108,7 @@ English |
---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="#cgiirc">Cgiirc Block</a><br>
---4.37. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
---4.36. <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>
@@ -127,7 +122,7 @@ English |
---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>
@@ -146,9 +141,9 @@ English |
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-2006</p>
modified in anyway. &#8211; Copyright UnrealIRCd Development Team 2002-2004</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
@@ -188,8 +183,6 @@ 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>
@@ -208,13 +201,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.org">coders@lists.unrealircd.org<br>
send the details to <a href="mailto:coders@lists.unrealircd.com">coders@lists.unrealircd.com<br>
</a> </p>
<p><b>Installation Instructions</b><br>
Linux:<br>
<ol>
<li>gunzip -d Unreal3.2.X.tar.gz
<li>tar xvf Unreal3.2.X.tar
<li>gunzip -d Unreal3.2.2.tar.gz
<li>tar xvf Unreal3.2.2.tar
<li>cd Unreal3.2
<li>./Config
<li>Answer these questions to the best of your knowledge. Generally if your not
@@ -234,8 +227,7 @@ 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 very much suggested to read it before/after installing
because otherwise you will not understand concepts such as 'cloaking', 'snomasks', etc.</p></div>
<p>You can skip this section, however it's suggested to read it before/after installing.</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>,
@@ -293,7 +285,7 @@ because otherwise you will not understand concepts such as 'cloaking', 'snomasks
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 <a href="#aliasblock">alias blocks</a> in the configuration file, and you can also include
<p>Aliases are configured by alias blocks 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">
@@ -301,7 +293,9 @@ because otherwise you will not understand concepts such as 'cloaking', 'snomasks
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>
</p></div>
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><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
@@ -566,11 +560,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, 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>
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>
<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
@@ -600,9 +594,6 @@ 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>
@@ -629,39 +620,17 @@ 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 - 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><font size="+2"><b>3.17 - 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 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>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><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
@@ -685,8 +654,8 @@ and check the <a href="http://www.vulnscan.org/UnrealIRCd/faq/">FAQ</a> before a
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 <i>BLOCK-NAME</i> is not
the same as <i>block-name</i>. There is a special notation used to talk about entries
<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
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
@@ -700,11 +669,9 @@ and check the <a href="http://www.vulnscan.org/UnrealIRCd/faq/">FAQ</a> before a
/* Multi line<br>
&nbsp;&nbsp;&nbsp;&nbsp;comment */<br>
</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>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></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">
@@ -766,11 +733,6 @@ 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>
@@ -784,10 +746,6 @@ 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 {
@@ -797,7 +755,7 @@ class clients {
recvq 8000;
};
class servers {
class servers{
pingfreq 90;
maxclients 10; /* Max servers we can have linked at a time */
sendq 1000000;
@@ -856,7 +814,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).</p>
if they supply a password).
<p>Examples:<br>
<pre>
allow {
@@ -1017,7 +975,7 @@ listen *:6601 {
<tr>
<td><div align="center">h</div></td>
<td><div align="center">helpop</div></td>
<td>Oper is marked as "availiable for help" when he/she is not away</td>
<td>Oper receives umode +h (helpop)</td>
</tr>
<tr>
<td><div align="center">w</div></td>
@@ -1104,6 +1062,11 @@ 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>
@@ -1269,7 +1232,7 @@ oper bobsmith {
global;
};
swhois "Example of a whois mask";
snomask cFfkoSsqNG;
snomask frebWqFv;
};
</pre></p>
<a name="operoverride"><b>Some little info about OperOverride:</b><br>
@@ -1302,18 +1265,11 @@ 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>
<pre>
include &lt;file-name&gt; {
bind-ip &lt;ip-to-bind-to&gt;;
};</pre></p>
include &lt;file-name&gt;;</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
@@ -1340,7 +1296,7 @@ include &lt;file-name&gt; {
<font class="block_required">REQUIRED</font><a name="loadmoduledirective"></a><div class="desc">
</p>
<p>Syntax:<br>
<pre>loadmodule &lt;file-name&gt;;</pre></p>
loadmodule &lt;file-name&gt;;</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>
@@ -1423,7 +1379,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.
@@ -1953,16 +1909,17 @@ 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 a leaf unless it has a hub directive. It is also a leaf if the leaf directive is *, or leafdepth is 1.
A server is either a hub or a leaf, you cannot combine these options.
</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 of what servers this hub may <b>not</b> connect. Saying * here would be the same as not having a hub directive.
The value is a mask that this server will act like a leaf towards.
</p>
<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><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>
<p><b>class</b><br>
The class this server is put into, often a separate server class is used for this.
@@ -1985,8 +1942,7 @@ 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 cannot get GLOBAL oper privileges
(they will get killed), used for test links and such</td></tr>
<tr><td><b>quarantine</b></td><td> opers on this server will maintain locop status</td></tr>
</table>
</p>
<p>Example:</p>
@@ -2015,7 +1971,6 @@ 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,
@@ -2025,50 +1980,37 @@ 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). 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>
any server), and channel (the target is a channel name). 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 <b>alias::format</b> specifies
is the same as above, the name of the alias command. The alias::format 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 <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
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
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.<br><br>
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. 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>
@@ -2152,63 +2094,7 @@ spamfilter {
</pre></p>
</div>
<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>
<p><font class="block_section">4.36 - </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
@@ -2252,7 +2138,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; gline-address "my@gline.address"; }; };<br>
set { options { hide-ulines; no-stealth; }; };<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
@@ -2312,14 +2198,6 @@ 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
@@ -2335,7 +2213,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>
@@ -2374,12 +2252,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. (NOT IMPLEMENTED)</p>
hours, 3 minutes.</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. (NOT IMPLEMENTED)</p>
if failure occurs.</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. (NOT IMPLEMENTED)</p>
Specifies the hostname of the server that will be used for DNS lookups.</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>
@@ -2493,22 +2371,6 @@ 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">
@@ -2714,8 +2576,7 @@ AU). Requests to these servers are sent in parallel, fastest reply wins.</p>
</tr>
<tr>
<td><div align="center">d</div></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>
<td>Makes it so you can not receive channel PRIVMSGs</td>
</tr>
<tr>
<td><div align="center">G</div></td>
@@ -2808,7 +2669,7 @@ AU). Requests to these servers are sent in parallel, fastest reply wins.</p>
</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>
<p>NOTE: the /helpop documentation is more up to date, use <i>/helpop command</i> (or <i>/helpop ?command</i> if you are oper)
to get more information on a command.</p>
<table width="90%" border="1">
@@ -2948,6 +2809,16 @@ 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>
@@ -3119,8 +2990,6 @@ 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>
@@ -3481,7 +3350,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 is nice, but should not be your main focus point, you have a far more bigger risk
work. This should however 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,
@@ -3501,7 +3370,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>
+76 -203
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; background-color: #eeeeee;}
pre { font: "times new roman"; font-style: normal;}
</style>
</head>
@@ -24,23 +24,22 @@
<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.nl.html">Dutch</a> |
<a href="unreal32docs.ru.html">Russian</a> |
<a href="unreal32docs.tk.html">Turkish</a>
<a href="unreal32docs.gr.html">Greek</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.5</font><br>
 <b>Utolsó dokumentáció frissítés:</b> 2006-06-15</div>
 <font size="4">Verzió: 3.2.3</font><br>
 <b>Utolsó dokumentáció módosítás:</b> 2005-03-13</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>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>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>
<p><b>Kompatibilis böngészők: </b><br>
<ul>
@@ -56,7 +55,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">Jellegzetességek</a><br>
3. <a href="#features">Featúrák</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>
@@ -68,14 +67,12 @@ 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 lehetõségek</a><br>
-- 3.12. <a href="#feature_antiflood">Árasztásvédelmi featúrák</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_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>
-- 3.17. <a href="#feature_other">További featúrák</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>
@@ -113,8 +110,7 @@ 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="#cgiirc">Cgiirc blokk</a><br>
---4.37. <a href="#setblock">Set blokk -=- (networks/unrealircd.conf)</a><br>
 ---4.36. <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>
@@ -128,7 +124,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>
@@ -147,9 +143,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-2006</p>
nem módosítod. &#8211; Copyright UnrealIRCd Fejlesztői Csapat 2002-2005</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
@@ -160,7 +156,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 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>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>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>
@@ -189,8 +185,6 @@ 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>
@@ -209,13 +203,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.org">coders@lists.unrealircd.org</a> címre.<br>
a részleteket a <a href="mailto:coders@lists.unrealircd.com">coders@lists.unrealircd.com</a> címre.<br>
</p>
<p><b>Telepítési útmutatások</b><br>
Linux:<br>
<ol>
<li>gunzip -d Unreal3.2.X.tar.gz
<li>tar xvf Unreal3.2.X.tar
<li>gunzip -d Unreal3.2.2.tar.gz
<li>tar xvf Unreal3.2.2.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
@@ -231,17 +225,16 @@ Windows:<br>
</ol>
</p>
<p> </p></div>
<p><font size="+2"><b>3.0 - Jellegzetességek</b></font>
<p><font size="+2"><b>3.0 - Featúrák</b></font>
<a name="features"></a></p><div class="desc">
<p>Néhány fõbb és hasznosabb jellegzetességrõl adunk magyarázatot ebben a részben. Általános áttekintést nyújt,
<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,
é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 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>Ezt a részt kihagyhatod, azonban ajánlott elolvasni a telepítés előtt vagy után.</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 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>
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>
<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>
@@ -290,12 +283,12 @@ mert m
<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) 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,
<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,
amely a ChanServhez továbbítódik, ha az első paraméter #-tel kezdődik, és a NickServ-hez, ha nem.</p>
<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>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><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
@@ -353,11 +346,11 @@ mert m
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 funkció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 featúrá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 lehetõségek</b></font><a name="feature_antiflood"></a></p><div class="desc">
<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>
<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
@@ -418,7 +411,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; funkció 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; featúra 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,
@@ -426,7 +419,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õ funkció a 't' banokra (a [20t#b30]:15 nem fog mûködni).<br>
Megjegyzendő, hogy nincs alapértelmezett törlési idő featúra 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>
@@ -603,9 +596,6 @@ 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>
@@ -632,39 +622,17 @@ enged
<pre>set { allowed-nickchars { chinese-simp; chinese-trad; }; };</pre>
</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><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> </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, 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>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><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
@@ -680,21 +648,21 @@ l
<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énk írni,
használjunk \"-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él használni,
használj \"-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 <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
<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
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énk, tegyünk hozzá egy másik dupla kettõspontot (::)
alblokkja, amire utalni szeretnél, tegyél hozzá egy másik dupla kettőspontot (::)
és az aldirektíva nevét. </p>
<p>Ha egy névtelen direktíváról szeretnénk beszléni, írjuk azt, hogy &lt;blokknév&gt;::, ami
<p>Ha egy névtelen direktíváról szeretnél beszléni, mondd 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>
@@ -703,11 +671,9 @@ l
/* Többsoros<br>
&nbsp;&nbsp;&nbsp;&nbsp;megjegyzés */<br>
</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>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></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">
@@ -1978,8 +1944,7 @@ 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> 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>
<tr><td><b>quarantine</b></td><td> az operátorok ezen a szerveren helyi operátorokként funkcionálnak</td></tr>
</table>
</p>
<p>Példa:</p>
@@ -2008,60 +1973,46 @@ 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ítsunk egy
<p>Az alias blokk [szabványos álparancsokra] lehetővé teszi, hogy parancsokat továbbíts egy
felhasználóhoz, például hogy a /chanserv üzenetet küldjön a chanserv felhasználónak.
Az alias:: megadja azt a parancsnevet, ami lesz az álnév (pl.: chanserv).
Az alias:: meghatározza 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::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>
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>
<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á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,
<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,
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-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
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
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,
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>
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>
<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>
@@ -2073,7 +2024,7 @@ help &lt;n
&lt;szövegsor&gt;;
...
};</pre></p>
<p>(Megjegyzés: általában elég csak betölteni a help.conf-ot)</p>
<p>(Megjegyzés: szokás 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
@@ -2107,7 +2058,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">Jellegzetességek - A spamszûrõ</a> szekciót további információért.<br>
Lásd a <a href="#feature_spamfilter">Featúrák - A spamszűrő</a> szekciót további információért.<br>
</p>
<p>Szintaktika:<br>
<pre>
@@ -2145,63 +2096,7 @@ spamfilter {
</pre></p>
</div>
<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>
<p><font class="block_section">4.36 - </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
@@ -2272,7 +2167,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 funkciót is.</p>
kellene megkérned, hogy megvalósítsanak egy restrict-channelmodes featúrá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>
@@ -2305,14 +2200,6 @@ 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
@@ -2328,7 +2215,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>
@@ -2486,19 +2373,6 @@ 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">
@@ -2704,8 +2578,7 @@ AU). A lek
</tr>
<tr>
<td><div align="center">d</div></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>
<td>Nem fogadsz csatornabeli PRIVMSG-ket</td>
</tr>
<tr>
<td><div align="center">G</div></td>
@@ -3467,7 +3340,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 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,
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,
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>
@@ -3479,7 +3352,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.
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
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
@@ -3499,7 +3372,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.
+15 -62
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,8 +159,7 @@ 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";
" Extended bantypes (for more info see /HELPOP EXTBANS) [h]";
" b <nick!ident@host> = Bans the nick!ident@host from the channel [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]";
@@ -195,35 +194,6 @@ 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";
@@ -237,7 +207,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";
@@ -264,7 +234,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 is marked as availiable for help is not away";
" h (helpop) Oper receives umode +h (helpop)";
" g (can_globops) Oper can send /GLOBOPS";
" w (can_wallops) Oper can send /WALLOPS";
" n (can_localnotice) Oper can send Local Server Notices";
@@ -282,6 +252,7 @@ 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-----------------------------==";
};
@@ -781,10 +752,10 @@ help Nachat {
};
help Kill {
" Forcefully Disconnects users from an IRC Server.";
" Forcefully Disconnects a user from an IRC Server.";
" IRC Operator only command.";
" -";
" Syntax: KILL <user1>,<user2>,<user3>,... <reason>";
" Syntax: KILL <user> <reason>";
" Example: KILL Jack16 Cloning is not allowed";
};
@@ -901,8 +872,6 @@ 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 {
@@ -978,8 +947,8 @@ help Squit {
" Usually used in routing of servers.";
" IRC Operator only command.";
" -";
" Syntax: SQUIT <server> [reason]";
" Example: SQUIT leaf.* Goodbye";
" Syntax: SQUIT <server>";
" Example: SQUIT leaf.*";
};
help Connect {
@@ -1070,7 +1039,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'):";
@@ -1163,7 +1132,7 @@ help Svskill {
};
help Svsnoop {
" Enables or disables whether IRCop functions";
" Enables or disables whether Global IRCop functions";
" exist on the server in question or not.";
" Must be sent through an U:Lined server.";
" -";
@@ -1259,9 +1228,7 @@ help Svsnline {
" spaces are indicated by _, Unreal will internally";
" translate these to spaces";
" -";
" Syntax: SVSNLINE + <reason_for_ban> :<realname>";
" (adds realname ban for <realname>)";
" SVSNLINE - :<realname> (removes ban for <realname>)";
" Syntax: SVSNLINE +/- <reason_for_ban> :<realname>";
" Example: SVSNLINE + sub7_drone :*sub7*";
};
@@ -1277,18 +1244,18 @@ help Svslusers {
help Svswatch {
" Changes the WATCH list of a user.";
" Must be sent through an U:Lined server.";
" Must be sent trough 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 through an U:Lined server.";
" Must be sent trough 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: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
" Example: SILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
};
help Svssno {
@@ -1358,17 +1325,3 @@ 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,14 +30,12 @@ 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 "pcreposix.h"
#include "tre/regex.h"
#else
#include "win32/regex.h"
#endif
+63
View File
@@ -0,0 +1,63 @@
/************************************************************************
* 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,6 +230,8 @@ 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.
+61 -41
View File
@@ -70,11 +70,6 @@
#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
@@ -114,6 +109,12 @@
*/
#undef STRIPBADWORDS_CHAN_ALWAYS
/*
* THROTTLING
* This will only allow 1 connection per ip in set::throttle::period time
*/
#define THROTTLING
/*
* No spoof code
*
@@ -200,11 +201,7 @@
* 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 */
@@ -217,32 +214,15 @@ extern char CPATH[262];
/* CHROOTDIR
*
* This enables running the IRCd chrooted (requires initial root privileges,
* but will be dropped to IRC_USER/IRC_GROUP privileges if those are defined).
* Define for value added security if you are a rooter.
*
* The directory to chroot to is simply DPATH (which is set via ./Config).
* All files you access must be in the directory you define as DPATH.
* (This may effect the PATH locations above, though you can symlink it)
*
* 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...
* You may want to define IRC_UID and IRC_GID
*/
/* #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
@@ -301,6 +281,19 @@ extern char CPATH[262];
#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
*
@@ -318,13 +311,17 @@ extern char CPATH[262];
#define NO_FLOOD_AWAY
/* 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 your network service names here.
*/
#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
@@ -361,7 +358,7 @@ extern char CPATH[262];
* 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 of max users)
* 32MB or more core memory : 1000+ (> 3/4 if 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
@@ -376,7 +373,7 @@ extern char CPATH[262];
/*
* Time interval to wait and if no messages have been received, then check for
* pings, outgoing connects, events, and a couple of other things.
* PINGFREQUENCY and CONNECTFREQUENCY
* 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.
@@ -390,10 +387,15 @@ extern char CPATH[262];
* 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
@@ -425,6 +427,18 @@ extern char CPATH[262];
*/
#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
*/
@@ -457,10 +471,6 @@ extern char CPATH[262];
#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 */
@@ -540,6 +550,16 @@ 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)
+20 -43
View File
@@ -19,7 +19,7 @@
* $Id$
*/
#ifndef DYNCONF_H
#define DYNCONF_H
/* config level */
#define DYNCONF_CONF_VERSION "1.5"
@@ -52,6 +52,13 @@ 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 {
@@ -66,6 +73,7 @@ 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;
@@ -73,14 +81,15 @@ struct zConfiguration {
unsigned use_ban_version:1;
unsigned mkpasswd_for_everyone:1;
unsigned allow_part_if_shunned:1;
unsigned check_target_nick_bans:1;
unsigned use_egd : 1;
unsigned use_egd;
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;
@@ -100,17 +109,11 @@ 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, *bogus5, *bogus8;
void *bogus1, *bogus2, *bogus3;
long bogus4;
int bogus6, bogus7;
#endif
enum UHAllowed userhost_allowed;
char *restrict_usermodes;
@@ -142,14 +145,7 @@ 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
@@ -169,6 +165,7 @@ 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
@@ -209,8 +206,10 @@ 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
@@ -247,24 +246,15 @@ 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
#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 */
/* Used for 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;
@@ -272,13 +262,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;
unsigned has_dns_bind_ip:1;
#ifdef THROTTLING
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;
@@ -287,8 +277,6 @@ 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;
@@ -301,9 +289,6 @@ 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;
@@ -322,8 +307,6 @@ 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;
@@ -360,12 +343,6 @@ 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,7 +2,6 @@
#define _IRCD_DOG3_FDLIST
/* $Id$ */
#ifndef NEW_IO
typedef struct fdstruct {
int entry[MAXCONNECTIONS + 2];
@@ -17,425 +16,6 @@ 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
+51 -66
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)->cclass ? (x)->cclass->sendq : MAXSENDQLENGTH)
#define get_sendq(x) ((x)->class ? (x)->class->sendq : MAXSENDQLENGTH)
/* get_recvq is only called in send.c for local connections */
#define get_recvq(x) ((x)->cclass->recvq ? (x)->cclass->recvq : CLIENT_FLOOD)
#define get_recvq(x) ((x)->class->recvq ? (x)->class->recvq : CLIENT_FLOOD)
#define CMD_FUNC(x) int (x) (aClient *cptr, aClient *sptr, int parc, char *parv[])
@@ -104,7 +104,9 @@ 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);
@@ -121,7 +123,6 @@ 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);
@@ -186,13 +187,7 @@ 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)));
@@ -212,33 +207,33 @@ extern void reset_help();
extern MODVAR char *debugmode, *configfile, *sbrk0;
extern char *getfield(char *);
extern void get_sockhost(aClient *, char *);
#ifdef _WIN32
#ifndef _WIN32
extern char *strerror(int);
#else
extern MODFUNC char *sock_strerror(int);
#endif
extern int dgets(int, char *, int);
extern char *inetntoa(char *);
#ifndef HAVE_SNPRINTF
#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF)
/* #ifndef _WIN32 XXX why was this?? -- Syzop. */
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;
extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno;
#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, debugtty, maxusersperchannel;
extern MODVAR int debuglevel, portnum, 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);
@@ -250,16 +245,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 *);
@@ -268,12 +263,15 @@ 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,
@@ -321,10 +319,20 @@ 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);
@@ -332,7 +340,6 @@ 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 **);
@@ -340,6 +347,7 @@ 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));
@@ -356,12 +364,14 @@ 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 *);
@@ -375,7 +385,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(int firsttime);
extern void init_resolver(void);
extern time_t timeout_query_list(time_t);
extern time_t expire_cache(time_t);
extern void del_queries(char *);
@@ -387,7 +397,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 *, int);
extern int add_to_watch_hash_table(char *, aClient *);
extern int del_from_watch_hash_table(char *, aClient *);
extern int hash_check_watch(aClient *, int);
extern int hash_del_watch_list(aClient *);
@@ -475,6 +485,7 @@ 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
@@ -539,9 +550,10 @@ 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(aClient *sptr, char *curr, char *newhost, int mode);
extern char *make_virthost(char *curr, char *new, 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);
@@ -564,7 +576,6 @@ 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();
@@ -574,10 +585,8 @@ 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);
#else /* ifndef NEW_IO */
#endif /* ifndef NEW_IO */
extern int set_blocking(int fd);
extern void set_sock_opts(int fd, aClient *cptr);
extern void iCstrip(char *line);
extern time_t rfc2time(char *s);
@@ -605,19 +614,22 @@ 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 void *extcmode_get_struct(aChannel *, char);
extern CmodeParam *extcmode_get_struct(CmodeParam *, char);
extern void make_extcmodestr();
extern void extcmode_duplicate_paramlist(void **xi, void **xo);
extern void extcmode_free_paramlist(void **ar);
extern CmodeParam *extcmode_duplicate_paramlist(CmodeParam *);
extern void extcmode_free_paramlist(CmodeParam *);
#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 **);
#endif
extern void SocketLoop(void *);
#endif
#ifdef STATIC_LINKING
extern int l_commands_Init(ModuleInfo *);
extern int l_commands_Test(ModuleInfo *);
@@ -627,7 +639,6 @@ 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);
@@ -655,6 +666,7 @@ 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 *);
@@ -672,10 +684,7 @@ 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);
@@ -720,29 +729,24 @@ 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, int flags);
extern MODVAR int (*find_spamfilter_user)(aClient *sptr);
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, 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);
extern MODVAR int (*dospamfilter)(aClient *sptr, char *str_in, int type, char *target);
/* /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
@@ -757,29 +761,10 @@ 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, ...) __attribute__((format(printf,2,3)));;
extern void sendtxtnumeric(aClient *to, char *pattern, ...);
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,7 +63,9 @@ typedef struct hashentry {
/*
* Throttling
*/
#ifdef THROTTLING
#define THROTTLING_HASH_SIZE 1019 /* prime number */
#endif
#define NullChn ((aChannel *)0)
-27
View File
@@ -57,30 +57,3 @@ 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
+24 -67
View File
@@ -22,9 +22,9 @@
#define MODULES_H
#include "types.h"
#define MAXCUSTOMHOOKS 30
#define MAXHOOKTYPES 150
#define MAXHOOKTYPES 100
#define MAXCALLBACKS 30
#define MAXEFUNCTIONS 100
#define MAXEFUNCTIONS 60
#if defined(_WIN32)
#define MOD_EXTENSION "dll"
#define DLLFUNC _declspec(dllexport)
@@ -135,7 +135,6 @@ 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 */
@@ -150,6 +149,13 @@ 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;
@@ -175,40 +181,36 @@ typedef struct {
/** Store parameter in memory for channel.
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
* char *: the parameter.
* RETURNS: nothing! ;p
* return value: the head of the list, RTFS if you wonder why.
* 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).
*/
void *(*put_param)(void *, char *);
CmodeParam * (*put_param)(CmodeParam *, char *);
/** Get readable string version" of the stored parameter.
* void *: the param data
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
* return value: a pointer to the string (temp. storage)
*/
char * (*get_param)(void *);
char * (*get_param)(CmodeParam *);
/** 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 *, aClient *);
char * (*conv_param)(char *);
/** free and remove parameter from list.
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
*/
void (*free_param)(void *);
void (*free_param)(CmodeParam *);
/** 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.
*/
void * (*dup_struct)(void *);
CmodeParam * (*dup_struct)(CmodeParam *);
/** Compares 2 parameters and decides who wins the sjoin fight.
* When syncing channel modes (m_sjoin) a parameter conflict may occur, things like
@@ -219,43 +221,20 @@ typedef struct {
* aExtCMtableParam *: our parameter
* aExtCMtableParam *: their parameter
*/
int (*sjoin_check)(aChannel *, void *, void *);
/* Slot#.. Can be used instead of GETPARAMSLOT() */
int slot;
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
} Cmode;
typedef struct {
char flag;
int paracount;
int (*is_ok)(aClient *,aChannel *, char *para, int, int);
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 *);
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 *);
} 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 ***/
@@ -441,7 +420,6 @@ struct _Module
unsigned char errorcode;
char *tmp_file;
unsigned long mod_sys_version;
unsigned int compiler_version;
};
/*
* Symbol table
@@ -547,7 +525,6 @@ 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);
@@ -603,8 +580,7 @@ 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)(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);
Command *CommandAdd(Module *module, char *cmd, char *tok, int (*func)(), unsigned char params, int flags);
void CommandDel(Command *command);
int CommandExists(char *name);
Cmdoverride *CmdoverrideAdd(Module *module, char *cmd, iFP function);
@@ -659,16 +635,6 @@ 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
@@ -678,7 +644,6 @@ 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
@@ -705,14 +670,6 @@ 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
+2 -15
View File
@@ -80,25 +80,12 @@
#define MYTOKEN_INET6 ""
#endif
#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
#define GCCVER 0
#endif
#ifdef UNREALCORE
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
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;
unsigned int our_compiler_version = GCCVER;
#else
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
DLLFUNC char 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;
DLLFUNC unsigned int compiler_version = GCCVER;
#endif
+2
View File
@@ -303,6 +303,8 @@ 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,7 +84,6 @@
#define ERR_SUMMONDISABLED 445
#define ERR_USERSDISABLED 446
#define ERR_NONICKCHANGE 447
#define ERR_FORBIDDENCHANNEL 448
#define ERR_NOTREGISTERED 451
@@ -337,8 +336,6 @@
* 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
@@ -347,8 +344,6 @@
#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
@@ -359,8 +354,6 @@
#define RPL_DUMPRPL 641
#define RPL_EODUMP 642
#define RPL_SPAMCMDFWD 659
#define RPL_WHOISSECURE 671
#define ERR_CANNOTDOCOMMAND 972
+3
View File
@@ -26,6 +26,9 @@
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(int);
extern void init_resolver(void);
struct hostent *unrealdns_doclient(aClient *cptr);
+6 -3
View File
@@ -183,6 +183,12 @@
/* 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
@@ -237,9 +243,6 @@
/* 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
+66 -81
View File
@@ -65,7 +65,7 @@
#endif
#include "auth.h"
#ifndef _WIN32
#include "pcreposix.h"
#include "tre/regex.h"
#else
#include "win32/regex.h"
#endif
@@ -109,7 +109,6 @@ 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;
@@ -138,11 +137,13 @@ 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 IRCCommand aCommand;
typedef struct Command aCommand;
typedef struct _cmdoverride Cmdoverride;
typedef struct SMember Member;
typedef struct SMembership Membership;
@@ -158,6 +159,7 @@ 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
@@ -169,12 +171,14 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define REALLEN 50
#define TOPICLEN 307
#define CHANNELLEN 32
#define PASSWDLEN 48 /* was 20, then 32, now 48. */
#define PASSWDLEN 32 /* orig. 20, changed to 32 for nickpasswords */
#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)
/*
@@ -286,8 +290,6 @@ 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 */
@@ -305,7 +307,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_CGIIRC 0x8000 /* CGI IRC host: flag set = ip/host data has been filled in already */
#define FLAGS_TS8 0x8000 /* Why do you want to know? */
#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 */
@@ -323,7 +325,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#ifdef USE_SSL
#define FLAGS_SSL 0x10000000
#endif
#define FLAGS_NOFAKELAG 0x20000000 /* Exception from fake lag */
#define FLAGS_UNOCCUP4 0x20000000 /* [FREE] */
#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 */
@@ -356,9 +358,8 @@ 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 */
#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 */
/* note: client->proto is currently a 'short' (max is 0x8000) */
/*
* flags macros.
@@ -404,14 +405,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
@@ -426,16 +427,10 @@ 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)
@@ -467,7 +462,6 @@ 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)
@@ -523,9 +517,6 @@ 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)
@@ -538,9 +529,6 @@ 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)
@@ -572,7 +560,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 */
/* 0x00020000 is free, previously addline */
#define OFLAG_ADDLINE 0x00020000 /* Oper can use /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 */
@@ -596,6 +584,7 @@ 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)
@@ -617,11 +606,6 @@ 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)
@@ -682,6 +666,13 @@ 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
@@ -750,7 +741,6 @@ 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 */
@@ -773,7 +763,6 @@ struct User {
#ifdef JOINTHROTTLE
aJFlood *jflood;
#endif
TS lastaway;
};
struct Server {
@@ -829,9 +818,6 @@ 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;
@@ -897,6 +883,7 @@ extern void CmodeDel(Cmode *cmode);
#endif
typedef struct {
EXTCM_PAR_HEADER
unsigned short num;
unsigned short t;
} aModejEntry;
@@ -904,7 +891,9 @@ 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
@@ -958,7 +947,7 @@ struct Client {
#ifdef NOSPOOF
u_int32_t nospoof; /* Anti-spoofing random number */
#endif
int proto; /* ProtoCtl options */
short proto; /* ProtoCtl options */
long sendM; /* Statistics: protocol messages send */
long sendK; /* Statistics: total k-bytes send */
long receiveM; /* Statistics: protocol messages received */
@@ -980,7 +969,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 *cclass; /* Configuration record associated */
ConfigItem_class *class; /* 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 */
@@ -1074,7 +1063,6 @@ 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
@@ -1100,10 +1088,8 @@ 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;
@@ -1121,7 +1107,6 @@ struct _configflag_allow {
unsigned useip :1;
unsigned ssl :1;
unsigned nopasscont :1;
unsigned wrongpasscont :1;
};
struct _configitem_allow {
@@ -1131,7 +1116,7 @@ struct _configitem_allow {
anAuthStruct *auth;
unsigned short maxperip;
int port;
ConfigItem_class *cclass;
ConfigItem_class *class;
struct irc_netmask *netmask;
ConfigFlag_allow flags;
};
@@ -1141,7 +1126,7 @@ struct _configitem_oper {
ConfigFlag flag;
char *name, *swhois, *snomask;
anAuthStruct *auth;
ConfigItem_class *cclass;
ConfigItem_class *class;
ConfigItem *from;
unsigned long modes;
long oflags;
@@ -1152,7 +1137,6 @@ struct _configitem_oper_from {
ConfigItem *prev, *next;
ConfigFlag flag;
char *name;
struct irc_netmask *netmask;
};
struct _configitem_drpass {
@@ -1204,7 +1188,7 @@ struct _configitem_link {
u_short port, options;
unsigned char leafdepth;
int refcount;
ConfigItem_class *cclass;
ConfigItem_class *class;
struct IN_ADDR ipnum;
time_t hold;
#ifdef USE_SSL
@@ -1217,19 +1201,6 @@ 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;
@@ -1246,18 +1217,13 @@ struct _configitem_ban {
unsigned short action;
};
typedef struct _iplist IPList;
struct _iplist {
IPList *prev, *next;
char *mask;
/* struct irc_netmask *netmask; */
};
#ifdef FAST_BADWORD_REPLACE
#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
@@ -1266,7 +1232,9 @@ struct _configitem_badword {
ConfigItem *prev, *next;
ConfigFlag flag;
char *word, *replace;
#ifdef FAST_BADWORD_REPLACE
unsigned short type;
#endif
char action;
regex_t expr;
};
@@ -1314,7 +1282,6 @@ struct _configitem_log {
char *file;
long maxsize;
int flags;
int logfd;
};
struct _configitem_unknown {
@@ -1334,7 +1301,7 @@ struct _configitem_unknown_ext {
typedef enum {
ALIAS_SERVICES=1, ALIAS_STATS, ALIAS_NORMAL, ALIAS_COMMAND, ALIAS_CHANNEL, ALIAS_REAL
ALIAS_SERVICES=1, ALIAS_STATS, ALIAS_NORMAL, ALIAS_COMMAND, ALIAS_CHANNEL
} AliasType;
struct _configitem_alias {
@@ -1343,7 +1310,6 @@ struct _configitem_alias {
ConfigItem_alias_format *format;
char *alias, *nick;
AliasType type;
unsigned int spamfilter:1;
};
struct _configitem_alias_format {
@@ -1367,7 +1333,6 @@ struct _configitem_include {
#ifdef USE_LIBCURL
char *url;
char *errorbuf;
char *bind_ip;
#endif
};
@@ -1453,22 +1418,36 @@ struct ListOptions {
#define NUMFLD 6 /* 6 flood types */
/* 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
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.. */
};
/* mode structure for channels */
struct SMode {
long mode;
#ifdef EXTCMODE
Cmode_t extmode;
void *extmodeparams[MAXPARAMMODES+1];
CmodeParam *extmodeparam;
#endif
int limit;
char key[KEYLEN + 1];
char link[LINKLEN + 1];
#if 0
#ifdef NEWCHFLOODPROT
ChanFloodProt *floodprot;
#else
/* x:y */
unsigned short msgs; /* x */
unsigned short per; /* y */
@@ -1621,9 +1600,11 @@ 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
@@ -1671,7 +1652,7 @@ struct liststruct {
*/
#define MyConnect(x) ((x)->fd != -256)
#define MyClient(x) (MyConnect(x) && IsClient(x))
#define MyOper(x) (MyConnect(x) && IsAnOper(x))
#define MyOper(x) (MyConnect(x) && IsOper(x))
#ifdef CLEAN_COMPILE
#define TStime() (time(NULL) + TSoffset)
@@ -1734,7 +1715,7 @@ extern MODVAR char *gnulicense[];
#endif
#define EVENT_HASHES EVENT_DRUGS
#include "events.h"
struct IRCCommand {
struct Command {
aCommand *prev, *next;
char *cmd;
int (*func) ();
@@ -1743,7 +1724,7 @@ struct IRCCommand {
unsigned parameters : 5;
unsigned long bytes;
Module *owner;
aCommand *partner; /* cmd if token, token if cmd */
aCommand *friend; /* cmd if token, token if cmd */
Cmdoverride *overriders;
Cmdoverride *overridetail;
#ifdef DEBUGMODE
@@ -1759,6 +1740,8 @@ struct _cmdoverride {
int (*func)();
};
#ifdef THROTTLING
struct ThrottlingBucket
{
struct ThrottlingBucket *prev, *next;
@@ -1817,6 +1800,8 @@ 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 **, char *);
void MODFUNC download_file_async(char *, time_t, vFP, char *);
char MODFUNC *download_file(char *, char **);
void MODFUNC download_file_async(char *, time_t, vFP);
void MODFUNC url_do_transfers_async(void);
void MODFUNC url_init(void);
+5 -27
View File
@@ -23,35 +23,13 @@
#endif
/**/
#define COMPILEINFO DEBUGMODESET DEBUGSET
/* 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.
/*
* Version Unreal3.2.2
*/
/** 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 UnrealProtocol 2306
#define PATCH1 "3"
#define PATCH2 ".3"
#define PATCH3 "-willneverbereleased"
#define PATCH2 ".2"
#define PATCH3 ".3"
#define PATCH4 ""
#define PATCH5 ""
#define PATCH6 ""
-189
View File
@@ -1,189 +0,0 @@
/* $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
@@ -1,17 +0,0 @@
/* $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
@@ -1,82 +0,0 @@
#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 */
+1 -6
View File
@@ -43,14 +43,9 @@
#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@/ircd"
ircdexe="@BINDIR@"
# The path to the ircd pid file
ircdname="@IRCDDIR@/ircd.pid"
+41 -45
View File
@@ -54,19 +54,11 @@ RC=rc
#
######### END SSL ########
###### _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
###### 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
#
#
#### END RELEASE BUILD ###
@@ -108,26 +100,25 @@ OPENSSL_LIB=/LIBPATH:"$(OPENSSL_LIB_DIR)"
!ENDIF
!ENDIF
!IFDEF DEBUGEXTRA
DBGCFLAG=/MDd /Zi /Od
DBGLFLAG=/debug
MODDBGCFLAG=/LDd /MDd /Zi
!ELSE
!IFDEF DEBUG
DBGCFLAG=/MD /Zi
DBGLFLAG=/debug
DBGLFLAG=/debug /debugtype:BOTH
MODDBGCFLAG=/LDd /MD /Zi
!ELSE
DBGCFLAG=/MD /O2 /G5
MODDBGCFLAG=/LD /MD
!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 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c
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 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE
MODLFLAGS=/link /def:src/modules/module.def wircd.lib $(OPENSSL_LIB) $(SSLLIBS) \
$(ZLIB_LIB) $(ZIPLIB) $(LIBCURL_LIB) $(CURLLIB)
@@ -143,11 +134,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/SCACHE.OBJ SRC/ALN.OBJ SRC/RES.OBJ SRC/MODULES.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/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 SRC/TIMESYNCH.OBJ $(ZIPOBJ) $(CURLOBJ)
SRC/EXTBANS.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
@@ -159,7 +150,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/WEBTV.C SRC/MODULES/M_NACHAT.C SRC/MODULES/M_OPER.C \
SRC/MODULES/M_MESSAGE.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 \
@@ -172,7 +163,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_ADDMOTD.C SRC/MODULES/M_ADDOMOTD.C \
SRC/MODULES/M_ADDLINE.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 \
@@ -183,7 +174,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_NAMES.C SRC/MODULES/M_SVSNOLAG.C
SRC/MODULES/M_LUSERS.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 \
@@ -206,7 +197,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_ISON.DLL SRC/MODULES/M_SILENCE.DLL SRC/MODULES/M_ADDLINE.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 \
@@ -218,7 +209,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_NAMES.DLL SRC/MODULES/M_SVSNOLAG.DLL \
SRC/MODULES/M_LUSERS.DLL \
SRC/MODULES/CLOAK.DLL
@@ -239,7 +230,7 @@ CLEAN:
-@erase src\modules\*.ilk >NUL
./UNREAL.EXE: SRC/UNREAL.OBJ SRC/WIN32/UNREAL.RES
$(LINK) $(DBGLFLAG) advapi32.lib src/unreal.obj src/win32/unreal.res
$(LINK) advapi32.lib src/unreal.obj src/win32/unreal.res
CONF:
-@copy include\win32\setup.h include\setup.h >NUL
@@ -251,10 +242,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 DEBUGEXTRA
@echo Standard version built
!IFNDEF DEBUG
@echo Non Debug version built
!ELSE
@echo Extra-Debug version built ...
@echo Debug version built ...
!ENDIF
#Source files
@@ -265,6 +256,12 @@ 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
@@ -296,6 +293,12 @@ 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
@@ -308,9 +311,6 @@ 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,8 +458,7 @@ 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 /D _CRT_SECURE_NO_DEPRECATE \
/D _USE_32BIT_TIME_T $(MOD_FILES) \
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE $(MOD_FILES) \
$(MODLFLAGS) src/win32/tre.lib /OUT:src/modules/commands.dll
src/modules/m_chghost.dll: src/modules/m_chghost.c $(INCLUDES)
@@ -535,7 +534,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 src/modules/webtv.c $(MODLFLAGS) src/win32/tre.lib
$(CC) $(MODCFLAGS) src/modules/m_message.c $(MODLFLAGS)
src/modules/m_nachat.dll: src/modules/m_nachat.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_nachat.c $(MODLFLAGS)
@@ -657,6 +656,9 @@ 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)
@@ -759,15 +761,9 @@ 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
@@ -0,0 +1,28 @@
/*
* 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
@@ -0,0 +1,23 @@
/*
* 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
@@ -0,0 +1,28 @@
/*
* 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
@@ -0,0 +1,27 @@
/*
* 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
@@ -0,0 +1,27 @@
/*
* 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
@@ -0,0 +1,25 @@
/*
* 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
@@ -0,0 +1,27 @@
/*
* 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
@@ -0,0 +1,26 @@
/*
* 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
@@ -0,0 +1,26 @@
/*
* 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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,26 @@
/*
* 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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,26 @@
/*
* 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
@@ -0,0 +1,23 @@
/*
* 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
@@ -0,0 +1,27 @@
/*
* 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
@@ -0,0 +1,28 @@
/*
* 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
@@ -0,0 +1,27 @@
/*
* 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
@@ -0,0 +1,26 @@
/*
* 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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,28 @@
/*
* 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
@@ -0,0 +1,27 @@
/*
* 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
@@ -0,0 +1,26 @@
/*
* 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
@@ -0,0 +1,26 @@
/*
* 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
@@ -0,0 +1,250 @@
#!/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
@@ -0,0 +1,38 @@
/* 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
@@ -0,0 +1,26 @@
*
* 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
@@ -0,0 +1,27 @@
/*
* 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
@@ -0,0 +1,20 @@
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";
};
};
+20
View File
@@ -0,0 +1,20 @@
set {
network-name "IRC"; // sets the name of your network
default-server "irc.ircnet.org"; // sets the address of your default server (like irc.dal.net)
services-server "services.ircnet.org"; // sets the name of your services server
stats-server "stats.ircnet.org"; // sets the name of your stats server
help-channel "#IRC"; // sets the name of your help channel
hiddenhost-prefix "mpx"; // sets the prefix for the hidden hosts
prefix-quit "Quit:"; // sets the first word to be used in a quit message
hosts {
local "locop.ircnet.org"; // sets the host to be given to locops
global "ircop.ircnet.org"; // sets the host to be given to global ops
coadmin "coadmin.ircnet.org"; // sets the host to be given to coadmins
admin "admin.ircnet.org"; // sets the host to be given to admins
servicesadmin "serviceop.ircnet.org"; // sets the host to be given to services admins
netadmin "netadmin.ircnet.org"; // sets the host to be given to netadmins
host-on-oper-up "off"; // sets whether to assign the hosts on oper up
};
};

Some files were not shown because too many files have changed in this diff Show More