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

3316 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
Bram Matthys 335ff44a54 *** 3.2 release *** 2004-04-24 23:07:39 +00:00
Bram Matthys 019666b21f hmk, rephrased the "module support @ windows " sentence I added. 2004-04-24 20:37:38 +00:00
Bram Matthys 5e16df15a0 - Some doc/release notes updates on win module support. 2004-04-24 19:58:53 +00:00
Bram Matthys 533895722b - Added temporary fix for include "http://www.blah.com/"; crashbug...although I doubt
many people would use it. Reported by Angrywolf (#0001757).
2004-04-24 15:30:36 +00:00
Bram Matthys 45bf0ede3d TYPO.. just in time before pre2 :P 2004-04-23 22:26:35 +00:00
Bram Matthys ad9a40e7c4 - Changed version to 3.2 already
** internal pre2 release **
2004-04-23 22:25:38 +00:00
Bram Matthys 6199e0f98c - Fixed some remote includes issues and added a connect/transfer timeout, server should
now no longer be frozen if the site is unreachable. Reported by Ron2K (#0001751).
2004-04-23 22:05:36 +00:00
Bram Matthys 0eb09818c0 gzline user@host -> *@ipmask 2004-04-23 20:38:48 +00:00
Bram Matthys 12b538a6a8 - Docs/help.conf tweak on /connect syntax (#0001755).
- German doc updates (from April 18) + gzline docs tweak.
2004-04-23 20:37:46 +00:00
Bram Matthys 8b26ed3a2a BLALBSDJFsid 2004-04-16 22:44:31 +00:00
Bram Matthys deb07e14b3 ** internal pre1 release (testing only) ** 2004-04-16 22:43:09 +00:00
Bram Matthys 324bcc3cf9 - Minor sajoin/sapart ERR_NEEDMOREPARAMS tweak. 2004-04-16 22:41:46 +00:00
Bram Matthys ebcfe963a5 - Fixed SJOIN bug: it sometimes was setting too many modes at once. 2004-04-16 20:52:42 +00:00
Bram Matthys f032115d8a - Changed version to pre1 2004-04-16 19:20:25 +00:00
Bram Matthys 090589cfad update.. 2004-04-16 18:10:05 +00:00
Bram Matthys 0a790a5649 oh, forgot target quit... 2004-04-16 17:41:31 +00:00
Bram Matthys 376494f384 - spamfilter.conf: added signatures for Gaggle worm. 2004-04-16 17:30:59 +00:00
Bram Matthys ac7aa6ed03 fixed implicit declaration for reread_motdsandrules(). 2004-04-15 22:06:03 +00:00
Bram Matthys e53a688c7e - doc/unreal32docs.html and help.conf updates (#0001734 + other stuff). 2004-04-15 21:51:01 +00:00
Bram Matthys 8350a7958a - Fixed /rehash bug if an .so (or remote include?) failed to load properly,
reported by fez (#0001736).
2004-04-15 16:14:14 +00:00
Bram Matthys ab22a8bcb1 - Added some release notes already. 2004-04-15 01:30:57 +00:00
Bram Matthys 407f9af942 - Various doc/text updates 2004-04-14 23:09:16 +00:00
Bram Matthys fa6edb8c64 - Made ./unreal rehash (= kill -1 <pid>) also reread motd/rules/etc just as a
normal /rehash does, reported by superh (#0001699).
2004-04-14 18:51:14 +00:00
Bram Matthys e501f1b90f - Force a TRE recompile if ./Config is re-run, due to timestamp fun if you were
upgrading to CVS every time TRE was not recompiled even if you did make clean.
2004-04-14 18:21:49 +00:00
Bram Matthys d1bfc78a45 - Fixed /who +m bug for opers, reported by Bugz (#0001715).
- Fixed halfop mode code to not check remote halfop modes (desynch danger).
2004-04-13 22:22:50 +00:00
Bram Matthys 24336c6153 - Updated server<->server code for MODE so operoverride bug #0001704 and other
feature requests can be fixed/added in the future (3.2.1).
2004-04-13 19:04:41 +00:00
Bram Matthys c78a8c6110 - Fixed something if sptr->user->virthost was NULL (which is/should never be the case),
just to be sure... (#0001724).
2004-04-11 15:20:19 +00:00
codemastr 7399ad2cde Fixed a typo in /credits 2004-04-10 16:10:07 +00:00
codemastr 7ba09e3efd Made a note in example.conf about not using link::options::autoconnect for services 2004-04-07 22:22:20 +00:00
codemastr 23eddafaf7 Fixed /stats ? for Q and q 2004-04-07 22:18:27 +00:00
codemastr 7ebd0473b9 Updated /credits a bit more 2004-04-07 22:13:21 +00:00
Bram Matthys e9d96c267a - German doc updates (spelling+synch). // + moved language choose thingy to top 2004-04-07 20:51:28 +00:00
codemastr 1d140eff88 Updated credits 2004-04-07 02:33:13 +00:00
Bram Matthys 1103ffe636 - Windows: Updated makefile/unrealinst.iss/zip.h to use zlib 1.2.1. 2004-04-05 22:26:03 +00:00
codemastr 05c1c38d76 Fixed vhost::swhois not being shown remotely 2004-04-05 22:06:31 +00:00
codemastr a3a4158556 Patched win32 TRE 2004-04-05 21:47:15 +00:00
Bram Matthys d1982e4983 - Patched TRE 0.6.6 to fix known crashbug (#0001684), testing is welcomed. 2004-04-05 17:04:14 +00:00
Bram Matthys 0ac1676043 reference to translated doc (and vice versa) 2004-04-04 18:12:58 +00:00
Bram Matthys 829c102c7f typo ;) 2004-04-04 16:47:19 +00:00
Bram Matthys 2c8e443170 Added $Id$ thingy 2004-04-04 16:46:47 +00:00
Bram Matthys 5f9e2bff0b - Added german translation of unreal32docs (doc/unreal32docs.de.html), translated by Stylus740 which will also maintain it. 2004-04-03 21:46:24 +00:00
Bram Matthys 3a738a4c5d - Added german translation of unreal32docs (doc/unreal32docs.de.html), translated
by Stylus740 which will also maintain it.
2004-04-03 21:45:38 +00:00
Bram Matthys db7e75636d - spamfilter.conf: added signature for LOI trojan. 2004-04-01 03:57:11 +00:00
codemastr 602ea12b9f Fixed an SVSMODE #chan -qaohv bug 2004-03-29 23:18:26 +00:00
Bram Matthys ef942d39a2 - spamfilter.conf: changed a lot of rules from 'block' to 'gline', left some
on 'block' however if there was some (very low) chance on false positives (even though
  just like 0.01%).
2004-03-27 22:54:42 +00:00
Bram Matthys f6b0bf15b5 - Usermode 'r' (registered) was unset even in case of "case"-nickchanges (like:
'Syzop' -> 'syzop'). This affected f.e. ircservices. Reported by LoVeR (#0001679).
2004-03-27 20:13:27 +00:00
Bram Matthys a87a1688b6 - Made the setup script use the new compression method 'lzma' which makes the setup.exe
~300Kb smaller. Now also requires Inno Setup 4.1.6 (tested with 4.2.0).
2004-03-27 00:58:18 +00:00
codemastr 1ac0936d8a win32 installer changes 2004-03-26 23:12:22 +00:00
codemastr ec12bd4c05 Fixed a win32 GUI bug with rehash all not rehashing motd/rules 2004-03-26 21:25:45 +00:00
codemastr f095d6e9de Fixed a win32 resolver problem with detecting nameservers 2004-03-26 21:14:43 +00:00
codemastr a998fe14cc Fixed a /stats S modes-on-join extended mode problem 2004-03-22 21:35:56 +00:00
codemastr 6be3ab9291 Updated TRE to 0.6.6 2004-03-21 19:01:15 +00:00
codemastr 6c7a6b507f Imported TRE 0.6.6 for win32 2004-03-21 18:12:21 +00:00
codemastr cdaaa80c70 Made environment variables correctly work in Config 2004-03-20 04:23:58 +00:00
Bram Matthys d731cf04ab - Fixed /spamfilter reason field bug.. things were double escaped sometimes,
especially in post-RC2-cvs this was noticable. Reported by Fury (#0001670).
- help.conf: updated snomasks section.
2004-03-19 21:32:03 +00:00
Bram Matthys da9bd6e5e9 - Fixed /spamfilter removal problem... often the wrong entry was removed [!] or
nothing was removed at all. Reported by MiNdErAsR, RealCFC and others (#0001669).
2004-03-19 02:18:04 +00:00
codemastr 51704ca942 Fixed an SQLINE memory leak 2004-03-14 22:25:24 +00:00
codemastr 4e5ebba53f Added Nkie worm spamfilters to spamfilter.conf 2004-03-14 20:21:12 +00:00
Bram Matthys 2da3de60c4 - Added conf check for too large spamfilter regex + reason field. Reported by
Z3l3zT (#0001648).
2004-03-14 20:16:54 +00:00
codemastr c35aede803 Fixed a version.c.SH typo 2004-03-13 19:35:51 +00:00
Bram Matthys 6094f628eb - Fixed win32 compile problem. Reported by Troco (#0001644). 2004-03-13 15:48:49 +00:00
Bram Matthys 04177a8106 fixed win32 compile problem 2004-03-13 15:46:33 +00:00
Bram Matthys 8273643f88 - More Opteron fixes... sizeof() fun, %B fun (always use a 'long'!), etc..
- Added __attribute__ stuff for ircsprintf() to catch more warnings.
2004-03-11 21:59:08 +00:00
Bram Matthys 1c671a47bd SSsshht ;p 2004-03-11 20:39:58 +00:00
Bram Matthys 3294afe918 - Hide server IP in /stats z
- First Opteron crash bugfix. Thanks to Liverbugg for helping us trace this issue.
2004-03-11 20:34:36 +00:00
codemastr 017669dc40 Removed cp -f from curlinstall (non-portable) 2004-03-10 18:42:47 +00:00
codemastr 99a3c53703 Remote include installer changes and /credits updates 2004-03-10 17:11:27 +00:00
codemastr 2f64d946b4 Made set::modes-on-join work with extcmodes 2004-03-10 03:49:04 +00:00
Bram Matthys 6717b75911 minor adjustment. 2004-03-10 01:43:45 +00:00
Bram Matthys 80f397df6b changed version to 'RC2 *CVS*' 2004-03-10 01:25:30 +00:00
Bram Matthys 3a3ca8bac8 pjoink!!! 2004-03-10 01:24:55 +00:00
Bram Matthys 15b52e94b4 - Added '__' -> '_' decoding for spamfilter reason field. 2004-03-10 01:23:58 +00:00
codemastr dd6eb1bd34 Fixed a spamfilter memory leak 2004-03-10 01:00:22 +00:00
Bram Matthys f1bd72ffad pjoink 2004-03-09 23:14:20 +00:00
Bram Matthys 0f3204698b - spamfilter.conf: added soex trojan. Sig provided by Jay. 2004-03-09 20:47:10 +00:00
codemastr 25639df741 Documented except tkl qline/sqline 2004-03-09 00:31:10 +00:00
codemastr 248188cf54 Removed src/win32/version.c 2004-03-08 18:47:58 +00:00
codemastr 3d87f28751 Added check to detect broad /spamfilter masks 2004-03-08 03:38:16 +00:00
Bram Matthys 445a85871a - spamfilter.conf: fixed fyle sig (was bad!), some minor updates to the rest,
added mirc 6.12 exploit sig. Reported by PHANTOm.
2004-03-08 00:22:31 +00:00
Bram Matthys 84be2cf06f pjoink 2004-03-07 22:10:56 +00:00
Bram Matthys 63d7c6d04a *** RC2fix release *** 2004-03-07 22:10:19 +00:00
codemastr ddcec35e9f Fixed a compile problem on Solaris 2004-03-07 22:03:41 +00:00
codemastr 5b1be6a347 Fixed a HOOKTYPE_PRE_LOCAL_JOIN bug 2004-03-07 21:50:07 +00:00
Bram Matthys c1ca95b71f *** RC2 release *** 2004-03-07 18:51:29 +00:00
Bram Matthys 47aab8caaa - Changed version to RC2 2004-03-07 17:27:02 +00:00
Bram Matthys 9b242fd101 - And some more spamfilter.conf rules (aplore, gtbot, sdbot, spybot). <== this was already committed, just updating changes on it ;)
- Minor doc update.
2004-03-07 15:23:51 +00:00
Bram Matthys 61ab744d2a minor 'reason' adjustments (to make it more general) + . -> \. thingy 2004-03-06 22:18:11 +00:00
codemastr 7bc23b4279 More spamfilter updates 2004-03-06 20:26:24 +00:00
Bram Matthys 301dbe6e59 spybot .syn sig 2004-03-06 19:57:21 +00:00
codemastr c324f1455a GTBot detection filters 2004-03-06 19:20:12 +00:00
Bram Matthys 6e05e85dfb blank 2004-03-06 18:43:01 +00:00
codemastr 4f00918d7a Spamfilter.conf typo 2004-03-06 18:12:36 +00:00
codemastr 01cb63c745 Updated /credits with more donators 2004-03-06 17:41:17 +00:00
Bram Matthys 16802a8b6b - And some more spamfilter.conf rules (mirseed & fagot). 2004-03-06 04:22:31 +00:00
Bram Matthys 29eb81904a - Added first 2 rules to spamfilter.conf, update release notes and unrealinst.iss
for it too (also added missing badwords.quit.conf file @ win32).
2004-03-06 02:27:08 +00:00
Bram Matthys 41d7b0733b - Added rest of release notes. 2004-03-06 00:01:11 +00:00
codemastr 0fb0490262 Imported TRE 0.6.5 on Linux 2004-03-05 22:43:38 +00:00
codemastr 76fdc6505f Upgraded win32 TRE lib to 0.6.5 2004-03-05 22:29:39 +00:00
codemastr 2b19a70d31 Redesigned HOOKTYPE_PRE_LOCAL_JOIN 2004-03-04 23:06:54 +00:00
Bram Matthys 1854b50784 let's be nice and give credit.. 2004-03-04 19:48:08 +00:00
Bram Matthys 8a6619c0a8 - Fixed yet another fun remote includes memory corruption crash bug due
to curl strangeness (took me 2 hours to trace down, great!).
2004-03-04 19:33:59 +00:00
Bram Matthys c389dc58b5 - Minor doc updates on SSL (mIRC now supports SSL a bit). 2004-03-03 22:49:47 +00:00
Bram Matthys f58c46a334 - Updated SSL error for underlying syscall error a bit (#0001615). 2004-03-03 21:27:05 +00:00
Bram Matthys 9ba52eea92 - Added 90% of RC2 release notes.
- Cosmetic doc updates (#0001596) reported by HERZ.
2004-03-02 20:31:59 +00:00
Bram Matthys ad1a98523f a 2004-02-29 21:18:35 +00:00
Bram Matthys 7d2da2b910 - Q comes after P. Thanks to Rocko for remind us! (fixes /stats P bug ;p). 2004-02-29 21:15:45 +00:00
codemastr d48540a6d4 Fixed another remote include bug 2004-02-26 00:49:27 +00:00
codemastr 739feded92 More win32 remote include fixes 2004-02-25 23:17:32 +00:00
codemastr 19d843e650 Fixed a remote include problem with deleting files 2004-02-25 22:14:30 +00:00
Bram Matthys afc24e4fa8 - Made numerics 518-520 a bit more clear by mentioning the channelname in it.
Suggested by Zell (#0001589).
2004-02-25 21:39:04 +00:00
Bram Matthys 179e6dfe6d - Fixed a zero-terminate bug in remote includes: urls with '?' in it could
cause a crash, reported by Joolz (#0001587).
2004-02-25 21:21:49 +00:00
Bram Matthys 669cf6e189 - Fixed an issue where chanmode +f was often set by the server again
in a netjoin when there was no need to (nothing to synch).
- Added spamfilter::except which allows you to specify targets
  (eg: channels) where spamfilter should not take action. Requested by Fury
  (#0001586). Ex: set { spamfilter { except "#spamreport,#help"; }; };
2004-02-25 20:49:00 +00:00
Bram Matthys 0a166e3663 GRRR! bad/old module header! badbadbad m_template!! 2004-02-23 23:14:32 +00:00
Bram Matthys a573b29a0f - Fixed a bug in individual m_*.so loading, 39 new modules were affected. 2004-02-23 23:14:05 +00:00
Bram Matthys 2ae44c13b6 - '0' tkltime in spamfilter now really means 'perm', not '*line for
0 seconds' or something. Reported by Certus.
2004-02-23 22:20:02 +00:00
Bram Matthys a16533d0e9 - Improved dcc blocking support (both for spamfilter and deny dcc). 2004-02-23 17:28:07 +00:00
codemastr 1435dcb9fa Fixed a TKL update bug with sqlines 2004-02-22 22:30:59 +00:00
Bram Matthys 139e019e30 - Added some extra debugging for tkl update notice...
- Fixed a problem in 'tkl update': lowest expire time won instead of
  highest. Reported by Malcolm.
2004-02-22 22:14:00 +00:00
Bram Matthys a54752dd9e - Added a warning if your listen portrange affects >100 ports
(eg for idiots doing 6667-7000 which uses 333 sockets).
2004-02-22 20:43:59 +00:00
Bram Matthys 511ca1c3ec - Minor fix for previous.
- Improved 'viruschan' spamfilter target:
  - better msg after the forced join
  - +oaq's in set::spamfilter::virus-help-channel receive a notice about
    which filter the user matched.
  - it disables all commands except PONG, ADMIN, and msg/notices to
    set::spamfilter::virus-help-channel.
- Made snomask +S also show the spamfilter reason field.
- Added class::pingfreq checking, should be 30-600 now.. else you might
  get mysterious (mass) disconnect issues.
- Lol, I made /connect dissapear during modulizing ;).
2004-02-22 19:39:43 +00:00
Bram Matthys 8e0b0eb0fa in-between-commit 2004-02-22 19:34:44 +00:00
codemastr a09d36532e Moved qlines to TKL 2004-02-22 18:41:06 +00:00
Bram Matthys ce850c8317 really.. 2004-02-22 03:23:31 +00:00
Bram Matthys 86e58f58ba now? 2004-02-22 03:21:51 +00:00
Bram Matthys 9bd077b7cd no it's not fixed syz, CHAOS chaoooos 2004-02-22 03:20:06 +00:00
Bram Matthys d071464264 - Fixed a bug which prevented "/spamfilter del[..]" from working.
Reported by Fury (#0001575).
2004-02-22 03:08:43 +00:00
Bram Matthys 790a69a402 compile fixes 2004-02-22 02:56:28 +00:00
Bram Matthys 2a8252d0c0 - Modulized: connect... should be the last one till 3.2final.
- Fixed some compile warnings/problems caused by modulizing.
2004-02-22 02:53:07 +00:00
Bram Matthys 3f14551bc2 pjoink 2004-02-22 02:52:12 +00:00
Bram Matthys 346dc05818 - Modulized: svsfline, dccdeny, undccdeny, whowas 2004-02-22 02:40:13 +00:00
Bram Matthys 6ca03d0922 win compile fix 2004-02-22 02:02:05 +00:00
Bram Matthys f47d14342c winfix 2004-02-22 01:59:50 +00:00
Bram Matthys 7b3fe6a13d - Modulized: server, stats 2004-02-22 01:57:47 +00:00
Bram Matthys 01143520c6 made it compile on win32 again 2004-02-22 00:33:54 +00:00
Bram Matthys 5afdd3139f removed m_eos... win compile fun 2004-02-22 00:31:12 +00:00
Bram Matthys 1612b284be GRRR 2004-02-22 00:28:30 +00:00
Bram Matthys efa91d73b4 removed wallops 2004-02-22 00:25:15 +00:00
Bram Matthys 809b19743e - Modulized: netinfo, links, help, rules, close, map, eos and made it compile on win32 again. 2004-02-22 00:21:58 +00:00
Bram Matthys f997b16918 - Modulized: addline, addmotd, addomotd, wallops, globops, locops, chatops,
admin, trace.
- Removed: gnotice, goper
2004-02-21 23:40:58 +00:00
Bram Matthys 8ebf5b9a18 - Updated docs on tempshun and new spamfilter features. 2004-02-21 15:50:15 +00:00
Bram Matthys bbda4bcc6b - Added /tempshun, temporary shuns the current session of specified nick
(just like the 'tempshun' in spamfilter and ban version). Suggested by
  Cnils (#0001526). [docs/help.conf will be updated later]
2004-02-21 04:24:21 +00:00
codemastr 6016b57f1d ... 2004-02-21 01:10:58 +00:00
codemastr f8a13c22b2 Remote include fixes for Windows 2004-02-21 00:52:54 +00:00
Bram Matthys 81a1431665 - Fixed a bug in 'Flood from unknown connection' (#0001566). 2004-02-20 23:47:07 +00:00
Bram Matthys 648d73556c spamfilter improvements
- Fixed a few wrong macro's (ircstrdup/ircfree) in s_conf.c causing
  very weird behavior... This also fixes a bug where set::spamfilter::ban-reason
  would have the value of ban-time.
- Improved spamfilter again.
  - The new syntax is:
    /spamfilter [what] [type] [action] [tkltime] [reason] [regex]
    [tkltime] specifies the duration of any *lines placed by this rule.
    [reason] specifies the *line, kill and/or block reason.. no spaces
    allowed, but '_' will be escaped to a space.
    In both cases you can simply use '-' to skip and use the default.
    Ex: /spamfilter add p block - - Come watch me on my webcam
        /spamfilter add p gline 3h Please_go_to_www.viruscan.xx/
        nicepage/virus=blah Come watch me on my webcam
  - A message is now shown if the msg/notice/dcc is blocked.
  - There are 2 new spamfilter action types:
    'dccblock' will mark the user so (s)he's unable to send any files by DCC.
    'viruschan' will part the user from all channels and join
     set::spamfilter::virus-help-channel (default: #help).
     this action might be improved to do more later.
  - Internal: added EXTTKL PROTOCTL, this determinates if 10 parameters
    instead of 8 are supported for m_tkl (used by spamfilter add).
  This new system needs some testing... :)
2004-02-20 23:28:57 +00:00
codemastr 389c51c212 Fixed a problem with setting +qaohv on a +S user 2004-02-20 04:16:53 +00:00
codemastr fc4649781c Remote include fix to deal with memory corruption bug 2004-02-20 03:51:01 +00:00
codemastr 110bc140c6 Made PATH_MAX get found under Solaris 2004-02-19 23:11:38 +00:00
codemastr 05030fa603 Fixed allow::options::noident 2004-02-19 00:16:26 +00:00
codemastr 1d9301b73a Fixed a VHP problem causing SETHOST to be sent before NICK or not at all 2004-02-18 22:30:45 +00:00
Bram Matthys 145bf5dc1d - Fixed a bug in the unreal_checkregex() routine which could cause a crash
if you added an invalid regex. Reported by Tony (#0001556).
or... 'freeing a buffer on the stack is not exactly good!' ;)
2004-02-18 00:27:30 +00:00
Bram Matthys 8992874efa - Added support for single-target specifiction like spamfilter { regex "blah";
action kill; target private; }; previously it didn't warn/error on this
  but it didn't work either.
2004-02-17 21:09:56 +00:00
Bram Matthys 4769908543 - Added some set::throttle::* checking if insane values were supplied.
Reported by Troco (#0001555).
2004-02-17 20:47:43 +00:00
stskeeps 9cfc83d98d Changes 2004-02-17 20:45:03 +00:00
Bram Matthys d6e0d8ba0e - Module coders: for extended channelmodes the EXCHK_ACCESS* the return
value should now be one of EX_*:
  EX_DENY        : disallowed, except for oper override
  EX_ALLOW       : allowed
  EX_ALWAYS_DENY : disallowed, even in case of operoverride (eg for
                   operlevel modes like +A).
  Note that it's backward compatible since TRUE/EX_ALLOW=1 and FALSE/EX_DENY=0.
- Fixed a few bugs with oper override & extended chanmodes, for example
  chanmode +T could not be set by a globop w/can_override and non-+hoaq.
2004-02-17 20:37:26 +00:00
codemastr 6696331f66 Slightly changed extcmodes access control 2004-02-17 01:15:16 +00:00
Bram Matthys 9c8a1047f4 more more more! 2004-02-17 00:52:24 +00:00
Bram Matthys 4ab6fe18e4 abc! 2004-02-17 00:47:21 +00:00
Bram Matthys bb936d21f6 pjoink 2004-02-17 00:46:31 +00:00
codemastr 6648072334 Modulized knock, umode2, squit, protoctl 2004-02-17 00:40:42 +00:00
Bram Matthys f775b3cf91 sjoin, pass, userhost, ison, silence modulized... 2004-02-17 00:20:24 +00:00
codemastr a306586071 ... 2004-02-16 23:20:24 +00:00
codemastr 38adc8e08a Modulized time and svskill 2004-02-16 23:17:13 +00:00
codemastr ee54d529b2 Added HOOKTYPE_REHASH_COMPLETE 2004-02-16 23:03:42 +00:00
Bram Matthys 376fecbf18 TYPO 2004-02-16 22:21:10 +00:00
Bram Matthys 3e9ea217fb boink 2004-02-16 22:18:51 +00:00
Bram Matthys 01c5b99faa - Added [OLD?] flag in /module so you can easily spot old beta* modules.
- Modulized: samode, sajoin, sapart, kick, topic, invite, list
2004-02-16 22:10:39 +00:00
codemastr 1fd40599ce Fixed an ircsprintf problem with SJB64 2004-02-16 22:06:37 +00:00
codemastr 1f7a1dfb2b Docs typo fix 2004-02-16 16:58:10 +00:00
Bram Matthys 8789c6860a HMM!!! 2004-02-16 15:11:00 +00:00
stskeeps 43cc8b4875 Renamed HOOKTYPE_LOCAL_TOPIC to HOOKTYPE_TOPIC and made it actually work. 2004-02-16 10:58:44 +00:00
stskeeps f33bfea7b2 - Added HOOKTYPE_UMODE_CHANGE (sptr, oldflags, newflags) - this may
not be accurate as umode changes are done manually many places.
2004-02-16 10:03:32 +00:00
codemastr 794ce094a4 Removed reference to svstime in help.conf 2004-02-16 04:59:33 +00:00
Bram Matthys 3c9f54fb45 - Fixed a bug in "unkickable users" (umode +q), they could still be kicked
by non-netadmin ircops in some (many) cases, reported by Zell (#0001541).
note: this fix is still "wrong", because the whole override/whatever
system is flawed ;p.
2004-02-15 16:14:16 +00:00
codemastr f8a2359f62 Fixed a tmp/ bug on Linux 2.2 and updated /Credits 2004-02-15 05:06:59 +00:00
Bram Matthys da86427258 *** RC1 release *** 2004-02-14 19:48:12 +00:00
Bram Matthys 46ed9c2ef7 pjoink! 2004-02-14 19:26:43 +00:00
codemastr 36673fe643 Changed version to RC1 2004-02-14 19:16:09 +00:00
Bram Matthys 476e2ce72b - Fixed fdlist bug/warning if a local operator /oper'd up twice. Reported by DukePyrolator (#0001539). 2004-02-14 17:09:33 +00:00
Bram Matthys 28174f6e44 this should be it.. hopefully... 2004-02-14 16:37:52 +00:00
Bram Matthys cc91e5fde3 - Ouch!! Fixed a severe bug which caused opers not being recognized on remote
servers causing various problems... This was caused by a change 1-2 days ago.
  Reported by Rocko (#0001537).
2004-02-13 20:49:43 +00:00
codemastr b8c0185563 setup.h.in cleanups 2004-02-13 04:52:07 +00:00
codemastr 865ac6f8a5 Added a new Donation file 2004-02-12 23:03:41 +00:00
Bram Matthys f7bc069ef7 typo :p 2004-02-12 01:23:28 +00:00
Bram Matthys f1be169364 - We are having fun with Makefiles... 2004-02-12 01:17:33 +00:00
Bram Matthys 1d9168e957 - Added 80% of release notes, rest will be added a day before release or so :). 2004-02-12 00:25:32 +00:00
codemastr 0a1822a628 Added m_svssno 2004-02-12 00:19:10 +00:00
codemastr a607cc8b19 Added svssno/svs2sno 2004-02-11 23:04:36 +00:00
codemastr 8e55a798fa Made mknod deal with umask settings 2004-02-11 03:51:47 +00:00
codemastr 176ce7b047 Removed remote restart 2004-02-11 03:47:59 +00:00
codemastr e4dddbe7c0 Fixed a problem with config loading and module errors 2004-02-11 03:44:31 +00:00
Bram Matthys 3f4eb6ab46 - Started using the umode->allowed stuff a bit ourselves, just to be sure. 2004-02-10 23:28:43 +00:00
Bram Matthys 0bc26457b1 - Fixed a snomask bug reported by Cat / HERZ (#0001531). 2004-02-10 15:51:21 +00:00
Bram Matthys f916c64422 - Added a section "Security tips/checklist" to unreal32docs.html, this is something
I worked on a few months ago... It tries to explain how to get a server/network
  secured, what the potential risks are, etc... Of course security is a complex topic
  so I cannot talk about everything in it, but I tried to mention the main risks and
  what you can do about it in a (hopefully) simple and understandable language ;).
2004-02-10 01:21:26 +00:00
Bram Matthys bfa00c8626 - Fixed minor compile warning. 2004-02-07 22:51:13 +00:00
Bram Matthys ebbeddf969 - Forgot to add src/modules/m_sendsno.c to CVS, also fixed 2 compile warnings
and a crashbug related to previous commit.. bug hunting will continue ;).
2004-02-07 17:05:44 +00:00
Bram Matthys 3671a765cb this should be the last "big commit" before release :p.
- Added snomasks 'S' (Spamfilter) which notifies you of any spamfilter matches.
- [internal] always return after spamfilter match, don't continue looping trough
  targets list (eg in case of: /msg #a,#b,#c spamspam), otherwise you would get
  duplicate notification msgs.
- Added SENDSNO server command, similar to SENDUMODE but for snomasks, this is
  used by the spamfilter snomask (+S) so you get network-wide notifications.
- Added "compiled for.." versioning system, this way a beta17 module can't be loaded
  on beta18, etc... People often forgot to recompile their modules or had old ones
  somewhere by mistake, therefore crashing after upgrades... this should fix this
  (in the future). Module coders don't have to do anything for making this work,
  it's done automatically (via modules.h).
2004-02-07 15:49:37 +00:00
Bram Matthys a29dc83e69 - Ripped out fast (bad)words support out of spamfilter to avoid confusion, also renamed
spamfilter::word to spamfilter::regex to make it even more clear (since we match
  on the whole line and have nothing to do with words.. 'word' doesn't make sense).
- Updated docs with some better regex examples, reported by AngryWolf (#0001520).
2004-02-06 21:37:28 +00:00
codemastr 45c557f0ec Made -qaohv on +S require +N 2004-02-05 22:58:24 +00:00
Bram Matthys 4d2de582f1 doc updates on snomask N 2004-02-05 19:52:55 +00:00
Bram Matthys e52cf2119a - [internal] cleaned up snomask removal after deoper, now remove_oper_snomasks() is
called which might look a bit ugly, but is better than before (scattered on 3 places).
- Added snomasks 'N' which allows you to see nick changes of clients on other servers,
  requested by several people (#0001323).
2004-02-05 19:47:37 +00:00
Bram Matthys 1d12b2b0f9 - Made blocked dcc notices (sent to umode +v) global, suggested by neothematrix (#1513). 2004-02-05 02:12:01 +00:00
Bram Matthys 781cce98cb - '/rehash -all' had bugs and is now considered depricated, just use '/rehash' instead.
On '/rehash' we reload everything already so the '-all' option was useless anyway.
  Reported by fez (#0001516).
2004-02-05 01:52:09 +00:00
Bram Matthys d4723ee2e2 - Added can_dccdeny operflag so you can give your local/global opers access to this too.
Co-admin, admin, sadmin and netadmin get it by default. Suggested in #0001247.
- Updated operflag docs.
2004-02-05 01:34:59 +00:00
Bram Matthys 43b5886b7e - Limited 'All Connections in Use' message to max 1 every 15s, this DOES NOT mean we will
introduce throttling of other msgs (or making this configurable)... this is just
  an exception because this msg is sent to _all opers_ and you cannot disable it by
  unsetting certain snomasks. Anything lower than 15s would be bad anyway since this
  is a very serious error condition. Requested by LoVeR (#0001412).
2004-02-05 00:50:40 +00:00
Bram Matthys d7967cc004 - Modified 404 numeric a bit (#0001515).
- Fixed 'no server notice on /restart or /die', reported by Lx (#0001062). This was caused
  by a bug in flush_connections(&me), hopefully there won't be any side effects.
- Fixed file owner problems when IRC_UID/IRC_GID is used (eg: when running chrooted).
- Fixed crashbug if we were unable to write a remote include file to disk.
2004-02-04 23:11:02 +00:00
codemastr 425a4e57ee Fixed a remote include cached file bug 2004-02-04 01:58:48 +00:00
Bram Matthys 7b4ef15606 - Fixed invalid nameserver info when chrooted (nameserver was always localhost). 2004-02-03 22:42:27 +00:00
Bram Matthys a65906bc5e - Fixed issue when 2 servers link with identical user@host *:lines but with different
expire times, reason field, etc... Entries are now fully synced between servers.
  Reported by Cnils (#0001448).
- Added umode +T to help.conf
- Fixed an issue with add/del/remove in /spamfilter being case sensitive.
2004-02-03 21:13:02 +00:00
codemastr 165da0c5bd Some setuid/setgid and chroot changes and sajoin changes 2004-02-03 19:02:53 +00:00
Bram Matthys 094acdf25c - Cosmetic 'stats /zip' output change (#0001435).
- Made services admins able to see on which channel services bots are, just
  like a netadmins can, suggested by EviL_SmUrF (#0001481).
2004-02-01 19:52:47 +00:00
Bram Matthys 96925ef9b4 - Fixed possible compile bug (caused by HOOKTYPE_TKL_EXCEPT). 2004-01-31 21:05:41 +00:00
Bram Matthys 5d4e4339ff - Added HOOKTYPE_TKL_EXCEPT (arg: cptr, tkline) which is called from find_tkline_match
and find_tkline_match_zap. This can be used to add custom TKL exceptions.
2004-01-30 21:48:41 +00:00
codemastr 4ce745ca37 SSL fix and added can_setq 2004-01-30 21:13:32 +00:00
codemastr 66700cf631 Prevent multiple spaces in a MODE message 2004-01-30 00:50:42 +00:00
codemastr 0d70cd81d7 Fixed a problem with the snprintf checking code 2004-01-29 22:57:20 +00:00
codemastr 10aa5e9978 Made ./Config remember libcurl directory 2004-01-29 22:38:40 +00:00
Bram Matthys 3821d5c558 - Fixed '/SetHost Error' flood from all servers in some circumstances like re-opering, reported by blotter45 (#0001400). 2004-01-29 16:58:05 +00:00
Bram Matthys 6ef85abc6f - updated /stats help and docs on '/stats f' 2004-01-29 16:50:02 +00:00
Bram Matthys be83c94c68 - added set::spamfilter::* to docs 2004-01-28 00:57:43 +00:00
Bram Matthys 8f4dd07074 - win32 compile fix (typo) 2004-01-28 00:24:57 +00:00
Bram Matthys d2c6bb5ad5 spamfilter etc... *pray* 2004-01-28 00:16:33 +00:00
codemastr bd5b7ee6b8 Fixed a bug with HOOKTYPE_CONFIGTEST with perm modules 2004-01-27 00:25:03 +00:00
Bram Matthys 3aef23eecf added HOOKTYPE_REMOTE_CHANMODE 2004-01-22 22:47:19 +00:00
Bram Matthys a68898df22 - Changed NOSPOOF msg in ./Config a bit since this can also be effective against
"blind proxies" (like HTTP POST proxies).
- WebTV updates: made it so (user generated) channel notices are now displayed as
  privmsgs in the channel. Also made the /knock channelnotice a privmsg for webtv.
2004-01-22 22:03:04 +00:00
Bram Matthys 7c4418113b - Changed random number generator to use arc4random-alike routines so we can get "secure"
random numbers. We will also no longer be using rand()/random() anywhere.
  Thanks to dek\ for pointing out this is potentionally dangerous, especially on
  win32 with NOSPOOF enabled.
2004-01-19 19:49:28 +00:00
codemastr dc11242795 Made the configure script not add -I or -L for /usr/include and /usr/lib 2004-01-18 21:58:01 +00:00
codemastr de40c73a20 Updated /module docs 2004-01-18 21:41:41 +00:00
codemastr 560af0ec1b Added set::silence-limit 2004-01-18 20:27:38 +00:00
codemastr 80dc3a80bc Updated /stats docs 2004-01-17 20:56:20 +00:00
codemastr 3185d8c23b Added HOOKTYPE_PRE_LOCAL_QUIT 2004-01-17 20:37:52 +00:00
codemastr c07e1f96e1 Renamed FAKE_LAG_FOR_LOCOPS and made chanops override chmode +V 2004-01-17 20:13:48 +00:00
codemastr e406e0d99a Added EXBCHK_PARAM and some noew logging flags 2004-01-17 19:30:46 +00:00
codemastr f6ed927791 Made permanent modules receive HOOKTYPE_REHASH 2004-01-17 19:01:25 +00:00
codemastr e7c7909d66 Various minor changes 2004-01-17 18:38:40 +00:00
Bram Matthys 3980a7f7f6 - internal: Ok, I'm committing this in parts... did most of the TKL spamfilter
integration now, no.. it doesn't work at all yet but most of the internal stuff
  has now been done (but I temporarely need to work on other things now).
   moved/added a lot of regex stuff, banaction/spamfilter helper functions, etc
  into s_misc.c. [note: current code has some bugs but since the stuff isn't
  used that's no problem... it's also a bit ugly, do NOT mail me about these things ;p]
- Enabled talk-trough-+M for opers (just like +m)
- Disabled talk-trough-+m/+M for opers if NO_OPEROVERRIDE is defined
- Display zlib/SSL version in /version (oper only)... will prolly be improved later.
- updated doc/compiling_win32.txt
2004-01-16 21:40:18 +00:00
codemastr cfa469a940 Doc change 2004-01-11 21:36:57 +00:00
codemastr cbf7f33bf1 /who fixes 2004-01-11 21:01:53 +00:00
codemastr 58d2882fb5 Fixed a /kick bug 2004-01-11 15:38:24 +00:00
codemastr 11877f5270 Various fixes 2004-01-10 16:33:26 +00:00
codemastr ccd8318cd4 Extban fixes 2004-01-10 05:53:36 +00:00
codemastr aeff467a36 Made extbans use the module objects system 2004-01-09 00:56:15 +00:00
codemastr 5ce3fcc1e3 Fixes for TRE under win32 2004-01-08 19:00:44 +00:00
codemastr 973ac25a4a Made CmodeAdd return MODERR_EXISTS if the mode already exists 2004-01-08 16:51:29 +00:00
codemastr 1da0b9a540 Bug fixes and EXTBAN 005 token 2004-01-08 16:39:35 +00:00
codemastr 759be00efe Fixed a compile bug regarding TRE 2004-01-07 00:28:46 +00:00
codemastr 3dd67bf248 Integrated TRE into Unreal 2004-01-04 20:12:31 +00:00
codemastr ce14fdec61 Added TRE compiling 2004-01-04 19:11:50 +00:00
codemastr ab919886b5 More work on TRE 2004-01-03 17:43:29 +00:00
codemastr 57dcbd80f7 Operoverride fixes 2004-01-03 05:01:00 +00:00
codemastr decc5ba107 Remove FLAGS_TS8 stuff 2004-01-03 01:23:08 +00:00
codemastr d274d493fd ... 2004-01-02 23:12:27 +00:00
codemastr 43070cde48 More TRE stuff 2004-01-02 21:15:35 +00:00
codemastr 5de605d767 Made the TRE library get compiled 2004-01-02 20:30:41 +00:00
codemastr be84de8bde Updated the TRE library source to 0.6.4 2004-01-02 20:14:15 +00:00
codemastr 7c0620eae8 Updated the win32 TRE lib to 0.6.4 2004-01-02 20:04:35 +00:00
codemastr 1ff17b798e Updated the TRE library source code to 0.6.3 2004-01-02 04:32:35 +00:00
Bram Matthys 56cb95f189 - internal: Modified TKL system (getting ready for anti-spam system):
Instead of 1 big list of *lines, it's now an array to easily distinct between types.
  Also made tk->usermask static (USERLEN+2) instead of dynamic.
  These changes should give enough speed improvement to make the new anti-spam/anti-ads
  feature fast enough.
2004-01-01 22:53:50 +00:00
codemastr 081056522e More remote include fixes 2003-12-31 21:24:23 +00:00
Bram Matthys 0e0015a77a - Added some additional warnings for insane large values for allow::maxperip, and class::* stuff. Reported by Erik_Rana (#0001463). 2003-12-31 17:22:10 +00:00
codemastr 042ce07691 Various remote include fixes 2003-12-30 18:45:40 +00:00
codemastr 829a3c8a1f Made remote includes work with SSL protocols 2003-12-26 00:51:25 +00:00
codemastr 3be92d0201 added configure checks for libcurl and other various changes 2003-12-26 00:29:36 +00:00
codemastr f8e916d356 Fixed a bug with unloading modules on Mod_Load failuer 2003-12-23 22:28:42 +00:00
codemastr 084d57cef1 Updated TRE dll and fixed a MAX_PATH problem 2003-12-23 01:47:02 +00:00
codemastr 99d1b1e0d1 Made it possible to use remote includes in win32 2003-12-23 00:25:04 +00:00
codemastr 5daa253210 Added join_channel 2003-12-21 20:22:50 +00:00
Bram Matthys 41f81b2643 - internal: changed is_banned() again: cptr,sptr -> sptr (dropped cptr). It was too
confusing (and thus causing bad code/bugs) and was never used anyway.
2003-12-21 15:10:13 +00:00
Bram Matthys 93e187f4a3 - As expected, fixed a crashbug in extended bans system. Reported by Rocko (#0001444). 2003-12-21 14:48:48 +00:00
codemastr da3afb3420 Made the extban stuff compatible with the module API 2003-12-20 21:21:10 +00:00
Bram Matthys 240f7fbd04 minor fix 2003-12-19 23:50:11 +00:00
Bram Matthys 6ad735364f - Updated win32 makefile... 2003-12-19 23:43:25 +00:00
Bram Matthys 426fbd9663 - Added "extended bans". An idea from SorceryNet ircd.
These bans look like ~<type>:<stuff>. Currently the following bans are available:
  ~q: quiet bans (ex: ~q:*!*@blah.blah.com). People matching these bans can join
      but are unable to speak, unless they have +v or higher.
  ~c: channel bans (ex: ~c:#idiots). People in #idiots are unable to join the channel.
  ~r: gecos (realname) bans (ex: ~r:*Stupid_bot_script*). If the realname of a user
      matches this then (s)he is unable to join.
      NOTE: an underscore ('_') matches both a space (' ') and an underscore ('_'),
            so this ban would match 'Stupid bot script v1.4'.

  These bantypes can also be used in the channel exception list (+e).
  +e ~r:*w00t* makes anyone with 'w00t' in their realname able to join,
  and +e ~c:#admin makes anyone in #admin able to join, etc..

  This system allows modules to add extended bantypes too.

  This feature requires some additional testing, also the module interface will
  probably be changed in the next few weeks, and perhaps more extended bans will
  be added before next release.. we'll see...
2003-12-19 23:39:30 +00:00
codemastr cd5567a02a Merged the win32 makefiles into one file 2003-12-19 20:18:37 +00:00
codemastr 3439f9f02b Added include/url.h 2003-12-17 19:19:10 +00:00
codemastr f8486ab94b Added a patch to make hide-ulines apply to /who, /whois and /whowas 2003-12-17 03:24:47 +00:00
codemastr af289c8687 Various fixes and changes 2003-12-16 19:39:38 +00:00
codemastr 53f0297b8c Started some work on the remote include system 2003-12-14 04:49:46 +00:00
Bram Matthys 105dd3c092 - Added set::static-part: similar to static-quit, default 'no' (static-part disabled).
If set to 'yes' or '1' it will strip all part comments,
  if set to something else it will use that as a part comment.
- Partial cleanup of m_part (hopefully I didn't destroy anything).
- Minor stats compile warning fixed
2003-12-11 21:27:33 +00:00
Bram Matthys 6c4e63656b - Made it compile at windows again 2003-12-10 03:28:40 +00:00
Bram Matthys c3d09408e9 - Added error checking/error messages to new module reloading system, to catch errors like
insufficient hd space, permission denied, etc..
2003-12-10 03:16:16 +00:00
Bram Matthys cb6b67e586 - Made "chanop notices" only go to @#chan on non-prefixaq servers (and to ~&@#chan otherwise),
internal: added ugly macro CHANOPPFX which is "~&@" if prefix_aq, else "@".
2003-12-10 02:28:12 +00:00
codemastr f2a2fa77c8 New module rehash system fixes 2003-12-07 04:58:39 +00:00
codemastr 3a5a4947f0 Made it so modules can be reloaded (new image) on /rehash 2003-12-06 01:09:32 +00:00
Bram Matthys 5a6e957a9d docs.. 2003-12-06 00:27:59 +00:00
Bram Matthys 5a48671691 - Added channelmode +T: no notices allowed in channel. 2003-12-05 22:43:48 +00:00
Bram Matthys 6d497a9ae6 - '/rehash <server>' didn't reload motds&rules files, reported by w00t (#0001409). 2003-12-05 14:55:11 +00:00
Bram Matthys 5cec9564f6 kine-address to kline-address 2003-11-30 23:25:46 +00:00
Bram Matthys b537553d2e - example.conf: added +i in modes-on-connect.
- Temporarely added fdlist debugcode, please report any bugreports it gives,
  it would especially be helpful if you know _what_ triggered the error :).
2003-11-30 23:17:33 +00:00
codemastr b27e04b7a1 Fixed a bug with SVSNLINE - 2003-11-30 00:48:37 +00:00
Bram Matthys 1f0e883094 documented E version flag... 2003-11-26 19:57:43 +00:00
codemastr 5eafc5a1bc Fixed a problem with the rehashflag hook 2003-11-26 19:52:13 +00:00
codemastr 957e72dd98 Added HOOKTYPE_PRE_LOCAL_PART 2003-11-26 19:51:02 +00:00
codemastr abef160bce Changed the callback for HOOKTYPE_REHASHFLAG 2003-11-24 21:28:46 +00:00
Bram Matthys 7571387422 - A last-minute fix, lalala... 2003-11-24 15:32:02 +00:00
Bram Matthys 039a9753cd - A last-minute fix, omg... 2003-11-24 15:04:48 +00:00
Bram Matthys e43e1e1799 got everything ready for sts to tag :p 2003-11-23 17:33:57 +00:00
Bram Matthys 364c4a879c - Changed version to beta19 2003-11-22 23:52:01 +00:00
Bram Matthys 9eedf89ea5 typo, gr! 2003-11-21 20:43:52 +00:00
Bram Matthys 044d01e1d7 - Added stuff that will easy the transition to extended bans next release.
- Added beta19 release notes
- Made USE_ZIP the default again in src/win32/unrealinst.iss
2003-11-21 20:30:53 +00:00
Bram Matthys 948b4e61ad - Added comment regarding MLOCK and set::restrict-chanmodes in unreal32docs.html.
- Made PREFIX_AQ a ./Config question at *NIX and enabled it by default at Win32.
2003-11-21 15:13:45 +00:00
Bram Matthys fd5579dbde - Fixed a compile problem on alpha, reported by Hyperi (#0001374).
- Made "operator count bug" not notice all opers (log only), unless in debugmode.
2003-11-20 19:33:03 +00:00
Bram Matthys 3897fa417b - Made OperOverride work for chanmode +Q (#0001370).
- A few example.conf changes.
2003-11-20 17:28:40 +00:00
Bram Matthys b462450293 - Made /rehash reread botmotd and opermotd (#0001291). 2003-11-20 02:22:01 +00:00
Bram Matthys dee0370ced - Fixed remote BOTMOTD bug reported by Angrywolf (#0001365).
- Workaround for "special ban makes it impossible to add other bans" bug
  reported by wilkie, SerialKillinNinja, etc.
2003-11-20 01:37:42 +00:00
Bram Matthys 37a93b5502 - Added oper::maxlogins which allows you to limit the number of concurrent session
with the same oper block. Suggested by kain.
- Made /dns oper-only (the ircd command, not your client /dns command :p).
- Various help.conf fixes. Reported by nukie (#0001373).
2003-11-19 23:41:34 +00:00
Bram Matthys eacfd5eb5c - Fixed a snomask issue reported by Magnet (#0001354). 2003-11-11 23:22:53 +00:00
Bram Matthys dc73bd3a2d - Made win32 work again (broke it by /module patch 35 minutes ago). 2003-11-11 20:20:23 +00:00
Bram Matthys d6fd665ede - Multiple /module changes (the command):
- Normal users can now get a list, versioninfo will be hidden however.
  - Opers get some additional details like hooks and commandoverride's.
  - Opers can use /module <servername> to get a remote list of loaded modules.
  - Added flag [3RD] to show it's a 3rd party module
  This was requested by by quite some people because serveradmins started to load
  "spy modules" without clearly mentioning it in the MOTD (which is highly unethical
  and in some countries even illegal due to privacy law). Also the remote module
  list was requested by quite a few opers.
  Sure, this isn't a 100% guarantee but at least if someone goes hiding stuff
  then it's clear what their intentions are (and thus will be refused support, ..).
- Changed emailaddr in help window at windows to unreal-users mailinglist.
- Made the cloak mismatch msg during linking a bit more scary.
- Added comment to 'Install as a service' option in installer to help n00bs a bit.
2003-11-11 19:45:09 +00:00
Bram Matthys 58f0749fa3 - Fixed desynch bug regarding extended channelmodes. Reported by AngryWolf (#0001347) 2003-11-09 02:52:43 +00:00
Bram Matthys 9d33644df1 - Fix for permanent modules w/ config hooks (they were not called). 2003-11-06 17:34:46 +00:00
codemastr 17104a0d9e Removed references to tkline/tzline from help.conf 2003-11-05 23:47:02 +00:00
Bram Matthys b4f5788c8f - (Internal) Moved most valid-host checking into 1 function, valid_host(),
which checks for invalid characters.
- Added hostname check for me::name since this could cause mysterious trouble.
2003-11-04 01:38:01 +00:00
Bram Matthys c3dd8d08d5 - Made it so chanmode +f flood detection doesn't apply to u-lined servers. This was
already indirectly the case because services don't support the EOS command, but
  now some (homemade) services do :p. Reported by Troco (#0001337).
2003-11-04 00:27:31 +00:00
Bram Matthys 448ad3839a - Fixed a UMODE2 bug. 2003-11-03 17:10:20 +00:00
Bram Matthys ae87101170 - Added insane OperOverride system for joining +z channels (#0001189).
This seems better than just allowing the insecure oper trough +z.
2003-11-03 01:06:23 +00:00
Bram Matthys 3b37b0927f - Fixed a bug where link::options::autoconnect wasn't working after rehash, ircd
had to be restarted to make it work. Will now try to connect on /rehash to
  servers with autoconnect enabled. Bug was reported by Rocko (#0001321).
2003-11-03 00:05:47 +00:00
Bram Matthys 1e162381ac - Fixed some other weird remote PING/PONG stuff as well. 2003-11-02 20:05:12 +00:00
Bram Matthys c25223913c - (Internal) Added __attribute__ format checking for most format string functions,
this will currently produce a lot of warnings with -Wall.
- Fixed 159 of 184 warnings detected by the above, the other warnings are false.
  Most warnings had to do with long vs int, and thus the format strings (%d->%ld)
  or the vars (int->long) have been changed (many of these were time_t/TS vs int).
  Only a few rare crashbugs were discovered.
- Module coders: for HOOKTYPE_LOCAL_CHANMODE the 'sendts' parameter was changed
  from type 'int' to 'time_t', while in most circumstances (like on ia32)
  you won't notice, I suggest you to update your callback functions anyway.
- Possibly fixed an issue with set::modes-on-join and mode +f, it could have
  set random remove-chanmode times in the default chanmode line.
2003-11-02 02:58:11 +00:00
Bram Matthys e52956fd77 - Don't allow remote pongs if unregistered. 2003-11-01 13:58:44 +00:00
Bram Matthys 79bc20a994 - Minor doc updates regarding snomasks reported by Stoebi (#0001324).
- Fixed two OperOverride kick bugs:
  - If ircop is +h and victim is +h it would deny it, reported by Special (#0001308)
  - Ircops (all except netadmin) had trouble kicking +q people, if the ircop isn't
    op'ed he can kick them, but if he has +o he can't. Reported by Michi (#0001012).
  If you use mixed unreal versions you can get desynch problems if you use those
  fixed things (like kick a +h if you are +h) because older servers will still block
  the kick. You will receive a 'You cannot kick channel' message from every older
  server so you'll at least be notified ;p.
2003-10-31 19:08:47 +00:00
stskeeps 5a32b8dc7e foo 2003-10-31 17:13:34 +00:00
stskeeps ba0dd97653 foo 2003-10-31 16:50:10 +00:00
Bram Matthys 2c00dd0546 added set::ban-version-tkl-time to /stats S and updated docs. 2003-10-30 21:38:45 +00:00
Bram Matthys 84d32b5378 - Fixed bug where color quits were stripped when they shouldn't be >:).
- Added 'action' field to ban version { } which can be: kill: kills the user (default),
  tempshun: shun the specific connection only, kline/zline/gline/gzline/shun: place
  a ban on *@IP. Time of those bans can be specified in set::ban-version-tkl-time.
  It's up to the admin to take a good decision, sometimes zlines are best (=won't use
  much sockets but will reconnect quite quickly), sometimes tempshun (=will use 1 socket
  but generates nearly no network traffic), sometimes klines/glines, etc..
2003-10-30 19:08:50 +00:00
Bram Matthys 5baebf692b - Moved it a bit too far (outside the loop), should be fixed now. 2003-10-28 18:47:05 +00:00
Bram Matthys 60f7aadf05 - Module coders: Moved call to HOOKTYPE_LOCAL_JOIN down to where the JOIN, NAMES, etc
are already sent... this seems to make more sense since we have a prejoin hook now.
2003-10-28 02:00:28 +00:00
Bram Matthys 9f4ce0d91d Added set::options::allow-part-if-shunned, is that name long enough? god.. 2003-10-27 00:44:41 +00:00
codemastr 4fcae4f1a1 Made DCC deny work with files with spaces 2003-10-26 20:39:47 +00:00
Bram Matthys 4264082420 - Fixed a bug regarding +f and bounce modes, would cause a crash, reported by Rocko. 2003-10-26 20:05:38 +00:00
Bram Matthys ff85a1f7b4 - Added HOOKTYPE_REMOTE_NICKCHANGE (called like: cptr, sptr, newnick). 2003-10-25 18:51:49 +00:00
Bram Matthys d64fb8dbab Multiple changes...
- Changed some useless stuff.
- Enabled EXTCMODE by default, I presume it's stable but can't promise anything.
- Module coders: changed 'allowed' callback function for umodes&snomasks,
  from 'aClient *sptr' to 'aClient *sptr, int what'.
  'what' will be MODE_ADD if trying to add and MODE_DEL if trying to remove.
2003-10-25 16:39:23 +00:00
Bram Matthys 2a469b1942 - Fixed a problem regarding module hooks, if a hook was called within a hook it could cause
problems (like pre connect hook -> exit_client -> quit hook).
2003-10-23 22:15:52 +00:00
Bram Matthys be86f0db32 - Fix for +L without +l desynch on serverlinking. 2003-10-23 17:30:32 +00:00
Bram Matthys ea7aca9a66 "typo"... not all *lines are glines :p 2003-10-19 20:11:33 +00:00
Bram Matthys 7efd5e8cda - Fixed gline with weird value causing a crash at windows, reported by Spectre (#0001309). 2003-10-19 20:03:23 +00:00
Bram Matthys ad9d0370fa Added remove-chanmode-after-X-minutes in +f & checks for /sethost&/chghost to same host.
- Added checks for /sethost&/chghost to same host.
- Added remove-chanmode-after-X-minutes in +f.
  The format is +f [30j#R5]:15, where 5 is the "do -R after 5 minutes". For a default
  action like +i you would have to do the same: +f [30j#i5]:15 (remove 'i' after 5 minutes).
  Additionally, 2 config items are added:
  - set::modef-default-unsettime, if this is set to for example '5' then things like
    +f [30j]:15 will be transormed into +f [30j#i5]:15. It's just a default, the user can still
    override it. By default this feature is not used.
  - set::modef-max-unsettime, specifies the maximum amount of time for the <time> parameter,
    by default this is set to 60 (=1 hour), the value should be between 0 and 255.
  I didn't do the extended tests I usually do but it seems stable, also the docs are updated
  but are probably updated again later to make it a bit more readable.
  Feel free to report any bugs as soon as you discover them.
  The only thing I could think of is: _usually_ only 1 server will have the -i/-R/.. timer
  running, so if that server splits (or even worse dies) it will only be -i/-R/.. at that server
  and when they sync back they merge chanmodes so +i/+R is set again.
  I don't consider this a huge problem but maybe it can be inconveniently, if people have
  a lot of trouble with this I'll have to consider a 50% recode of the +f system :/.
2003-10-18 18:44:54 +00:00
Bram Matthys 2b9f88c6d2 - Optimized send code re-enabled, I disabled it 6h ago due a bug-triggering-a-bug (see next).
- Fixed a PING bug resulting in 'trying to send .. to myself' msg.
- Some spelling corrections in unreal32docs.html.
2003-10-14 19:43:07 +00:00
Bram Matthys e02aab8d41 temporarely rollback... have some crashbug somewhere. 2003-10-14 14:01:07 +00:00
Bram Matthys b189e632c9 - Now it would be even better if it actually compiles... 2003-10-14 04:26:27 +00:00
Bram Matthys 3ef5ae6a80 - Yet another code audit:
- (Just for the record, this audit has nothing to do with the ircnet buffer overflow,
     unrealircd is not vulnerable)
  - Various fixes
  - Visual bug regarding +f & server synching, it was sometimes setting mode +f multiple
    times depending on the ban-/userlist.
  - Fixed a possible desynch regarding chmode +L.
  - Fixed possible client confusion regarding bans.
2003-10-13 17:56:49 +00:00
codemastr f3f2390615 Added umode +T (no ctcp) 2003-10-04 20:13:10 +00:00
codemastr 0e22126286 Added the ability to limit /who replies 2003-10-03 23:36:39 +00:00
Bram Matthys 5a65bcac20 blah... useless change. 2003-10-03 20:01:15 +00:00
Bram Matthys 8359ab9c76 - Fixed even more negative oper count bugs... 2003-10-03 19:52:12 +00:00
codemastr 97402c11a6 Fixed a negative oper count bug in SVSNOOP 2003-10-02 22:32:53 +00:00
codemastr 573dc68378 Documentation fixes 2003-09-28 21:08:52 +00:00
codemastr 59d73bf18c Added a command override system for modules 2003-09-28 19:43:15 +00:00
Bram Matthys 7d95c02ed1 - Minor botmotd-on-mode+B fix (was causing some useless servertraffic). 2003-09-28 02:06:03 +00:00
codemastr db445c0faf Sped up the message searching functions 2003-09-27 00:29:24 +00:00
codemastr 6612642d47 ... 2003-09-24 00:15:34 +00:00
codemastr 55ce8f9356 fixed a problem with tre.dll 2003-09-24 00:06:00 +00:00
Bram Matthys b0705fb7c5 - Changed version to 'beta18' 2003-09-21 22:19:38 +00:00
codemastr 3e4cfea3da Updated modules to use the new macros 2003-09-21 19:59:50 +00:00
Bram Matthys 7646a3735c - Minor doc update. 2003-09-21 18:09:14 +00:00
cknight 138923af18 Added ref link to section 4.9 from section 4.34 2003-09-21 18:04:54 +00:00
cknight 6b5adc7fe8 Updated .CHANGES.NEW to read Beta18 2003-09-21 17:23:54 +00:00
cknight b1338a1b41 Very Very small change to doc/example.conf 2003-09-21 16:46:25 +00:00
Bram Matthys 1b719f393f - Fixed hunt_server* bug 2003-09-21 16:40:54 +00:00
Bram Matthys 59a417e369 - Fixed a win32 resolver lockup bug 2003-09-21 14:31:17 +00:00
codemastr d803c716d6 Added some macros for modules 2003-09-20 23:39:45 +00:00
codemastr d051786f5c Channel hook changes 2003-09-20 19:57:46 +00:00
Bram Matthys 729689a4cd - Fix for HOOKTYPE_REMOTE_QUIT (was called for local quits too) 2003-09-20 14:47:47 +00:00
codemastr af2834d5e9 Added HOOKTYPE_REHASHFLAG 2003-09-20 00:20:36 +00:00
Bram Matthys 7aa7ea31b8 - Added beta18 release notes (might be changed) 2003-09-19 23:00:38 +00:00
codemastr b72b10d5ae TRE 2003-09-19 21:24:47 +00:00
Bram Matthys a316e4af6f - Added HOOKTYPE_REMOTE_QUIT 2003-09-18 23:41:32 +00:00
Bram Matthys 2d4f52665c - Added HOOKTYPE_LOCAL_PASS and HOOKTYPE_REMOTE_CONNECT 2003-09-18 01:31:10 +00:00
Bram Matthys d722051fb6 - Added set::default-bantime. It allows you to set the default time for a gline/kline/gzline/shun/etc when the time is not not specified (like with /gline *@*.stupid.net). 2003-09-18 00:08:48 +00:00
Bram Matthys 36392a485e +f regarding -R/-M blalbalba docs etc, grr commit plz! 2003-09-15 19:25:24 +00:00
codemastr 4ec62271c8 Made the win32 version use libtre for regex instead of GNU regex 2003-09-14 23:35:33 +00:00
codemastr 142f037fd2 Linux PPC fix 2003-09-14 16:43:02 +00:00
Bram Matthys 3c96db4e4d - Added HOOKTYPE_UNKUSER_QUIT (disconnects of unregistered clients). 2003-09-14 16:17:38 +00:00
codemastr 192556763f Fixed a win32 resolver bug 2003-09-12 21:33:11 +00:00
Bram Matthys 04f934d04c - Finished some of the extcmode code (memleaks). 2003-09-12 01:58:11 +00:00
Bram Matthys b63c1d2399 - Added checks for ipv4 listen lines on ipv6 compile. 2003-09-12 00:05:55 +00:00
Bram Matthys 7e2ca393ad - Minor +f code tweaks. 2003-09-11 19:33:20 +00:00
Bram Matthys 8f5fcc1704 - Fix-for-fix-for-+mu-fix (it was still crashing)... don't ask. 2003-09-08 00:29:02 +00:00
Bram Matthys 217c9ee30d there was no newline at end :p 2003-09-07 23:17:28 +00:00
Bram Matthys 6057b5749a - Fixed a SVSMOTD crashbug (removing of motd). 2003-09-07 22:55:15 +00:00
Bram Matthys 9e23c67a61 - Fixed Q:lined nickname msgs during linking and a debug fix. 2003-09-07 21:05:42 +00:00
Bram Matthys 632e0cbf88 - Improved SSL error msg sent to junk snomask. 2003-09-07 18:14:19 +00:00
codemastr d0a632a7b1 Fixed a typo 2003-09-07 16:07:41 +00:00
Bram Matthys 6237ee2239 - Fixed a crashbug introduced by +mu fixes 3 days ago (#0001237). 2003-09-07 15:50:11 +00:00
Bram Matthys da6eceef41 - Added official-channels block. These channels are listed in /list even if they have 0 users. 2003-09-06 23:16:18 +00:00
Bram Matthys 06cdd686de - Added clientsonly/serversonly/ssl/java flags to /stats P (#0000992). 2003-09-06 19:46:43 +00:00
Bram Matthys 7aa1ff0f78 - Added warn option to deny channel, this will send a notice to the eyes snomask when a user attempts to join. Suggested by Joolz (#0000992). 2003-09-06 19:27:37 +00:00
Bram Matthys 1eabf58160 Made it so that with +M and user not +r and not voice/halfop/ops/etc the part message isn't shown, just like with +m. 2003-09-06 00:39:07 +00:00
Bram Matthys e42336433c - Temporarely added trace code for hunting down negative operator counts (#0001155). 2003-09-05 23:06:17 +00:00
Bram Matthys 8899e0b366 - Will now strip/block color codes in quits if any channel the user is in has mode +S/+c. 2003-09-05 22:19:09 +00:00
Bram Matthys 4975d04299 - Badwords filtering is now only done for local clients, previously every server was filtering the message. This will reduce CPU usage, especially at hubs (#0001022). 2003-09-05 21:53:19 +00:00
Bram Matthys 4128d32eab - Fixed a chroot bug, reported by iceblade (#0001112). 2003-09-05 21:13:36 +00:00
Bram Matthys 153a3eea53 blah 2003-09-05 21:00:25 +00:00
Bram Matthys 8bfcc56c9e - Fixed an old bug where allow::hostname localhost (or *@localhost) didn't work (#0001115). 2003-09-05 20:38:52 +00:00
Bram Matthys 0475c6b874 - Fixed a /rehash crash regarding badword all & regex badwords, reported by Angrywolf (#0001230). 2003-09-05 20:11:48 +00:00
Bram Matthys 5c1225fc71 - Doc fixes/updates reported by Angrywolf (#0001163, #0001176). 2003-09-05 19:56:46 +00:00
Bram Matthys fb1ad02810 - Fixed a double OperOverride notice bug reported by DukePyrolator (#0001180). 2003-09-05 19:39:05 +00:00
Bram Matthys 49f5e68768 - Made anti away flood system work just like anti nick flood (#0001205). NO_FLOOD_AWAY is now enabled and away-flood is set to 4 per 120s by default. 2003-09-04 23:20:52 +00:00
Bram Matthys bc5a744312 - And another +f + modes-on-join one... 2003-09-04 20:33:20 +00:00
Bram Matthys 09178f3a0c - Fixed a crashbug with +f and services, reported by Rocko (#0001227). 2003-09-04 20:04:49 +00:00
Bram Matthys c9f03422e7 - Fixed a bug in +f + modes-on-join + 't' subfloodtype, reported by Rocko (#0001228). 2003-09-04 19:22:33 +00:00
Bram Matthys b140156778 - Probably fixed a bug regarding 'setting mode' notice with +f (was sometimes sent to non-chanops).
- Fixed multiple chmode +u bugs: remote join, netjoin, +mu relay between servers, kick and
  a part bug. Most of them reported by Lx (#0001097).
2003-09-04 19:04:43 +00:00
Bram Matthys aee400a104 extra +f action support: c#m c#M j#R m#M 2003-09-01 15:33:33 +00:00
Bram Matthys 8c5246bc25 - Fixed problem with opers having both 'admin' and 'coadmin' causing double-notices (#0001043). 2003-08-31 21:11:13 +00:00
Bram Matthys 7efe268c3b - Made SSL users unable to -z themselves, also added 2 flags to /stats S, reported by Joolz (#0001200). 2003-08-31 20:52:37 +00:00
Bram Matthys 331d10b5a4 - Fixed bug regarding hidden opers + m_whois cleanup (#0001208). 2003-08-31 20:04:00 +00:00
Bram Matthys 51b15e583c - Fixed minor config parser memleak reported by AngryWolf (#0001214). 2003-08-31 18:36:01 +00:00
Bram Matthys dc1a5a3e04 - Fixed a channel sync bug reported by thilo&Rocko (#0001218). 2003-08-31 18:10:16 +00:00
Bram Matthys 372814470f - Fixed ~5 compiler warnings at *NIX and ~20 at windows. Some of them _could_ have caused problems. // - Moved EOS debugging code to DEBUGMODE. 2003-08-31 00:36:31 +00:00
Bram Matthys 2f38c277f0 major channelmode +f change... oh-oh... I really hope this works ok :p 2003-08-30 20:23:49 +00:00
codemastr 09377cf3a0 Module system error reporting support 2003-08-24 19:41:51 +00:00
codemastr 23cdfb4597 ... 2003-08-24 15:53:22 +00:00
codemastr e741087ce4 extcmode changes 2003-08-24 00:56:31 +00:00
codemastr a450522052 *nix resolver for Windows 2003-08-21 16:11:08 +00:00
Bram Matthys bf156f47b6 - Allow opers to talk in channel even if +m (#0001109). 2003-08-17 19:39:30 +00:00
Bram Matthys e484db317d Allow o/a/q'd users to nickchange if banned (#0001150), Added badword all { }, config.h cleanup
==
- Allow o/a/q'd users to nickchange if banned (#0001150).
- Added badword all { }, this will add the badword to the badword channel, badword message
  and badword quit lists... could be useful :p.
- Little config.h cleanup (removed obsolete non-working defines).
2003-08-17 01:28:04 +00:00
Bram Matthys da18f18fa3 Minor oob read; someone forgot a parameter in sendto_one ;p 2003-08-17 00:05:38 +00:00
Bram Matthys 7f9841b01d Internal code cleanups, changed away flood configthing, added nickflood protection
===
- Internal code cleanups: EOS var rename, got rid of old UnknownUser structs, moved
  anti away flood to new flood struct.
- Changed away flood configuration to set::anti-flood::away-flood <count>:<period>.
- Added nickflood protection, can be set in set::anti-flood::away-flood <count>:<period>
  to allow max 'count' nickchanges per 'period' seconds. The default is 3 per 60s.
  As usual, the nickchange limiting does not apply to ircops.
2003-08-16 22:49:51 +00:00
Bram Matthys fe63f8476a - Fixed minor /WALLOPS bug reported by Praetorian_ (#0001195). 2003-08-16 16:11:52 +00:00
Bram Matthys 57f337a738 *just commit da crap* 2003-08-16 15:56:50 +00:00
Bram Matthys 1681fce504 multiple changes...
- Updated example.conf with a more strict default oper-only-stats.
- Made '/stats S' and '/stats Z' oper only again (always).
- Hopefully fixed incoming/outgoing rate in /stats T. Only the stats of the first
  listener was counted instead of the total. This also explains why on some (many?)
  ircd configurations it always showed 0.00 kb/s and why HTM (high traffic mode)
  was never kicking in.
2003-08-10 20:53:09 +00:00
codemastr 61fed28198 ... 2003-08-06 23:55:34 +00:00
codemastr 392fad7d3a Fixed a stats l/L bug 2003-08-06 23:55:13 +00:00
Bram Matthys 64eb8a9aa5 - A few documentation updates/fixes
- 005 CHANMODES= set back to original value before extcmode merge
- made some functions in channel.c non-static so module coders
  can use them (they are not defined in the header files [yet] however).
- fixed 2 minor oob write issues
2003-08-04 21:38:33 +00:00
codemastr c5643f70c3 Fixed a +k/+L bug with using the same parameter 2003-08-04 21:32:30 +00:00
codemastr f2ee326b4c ... 2003-08-04 20:54:51 +00:00
codemastr 73469bfea0 ... 2003-08-04 20:43:18 +00:00
codemastr 06b63be683 Added ModuleGetOptions and ModuleSetOptions 2003-08-04 20:40:32 +00:00
codemastr 78e9f881db Fixed a snomask and umode bug 2003-08-04 18:02:51 +00:00
codemastr 4db7542ee1 Recoded the usermode module system 2003-08-03 23:30:12 +00:00
codemastr c8bfc594cd Fixed a /stats bug 2003-08-03 18:05:49 +00:00
codemastr 4ac2e2ce6b /stats fixes 2003-08-03 00:00:56 +00:00
Bram Matthys 3eb5f121ef - stats bugfixes: a null pointer crash and a '/stats k' bug. 2003-08-02 00:00:21 +00:00
codemastr 83c2567d34 ... 2003-08-01 19:43:08 +00:00
codemastr 161e62ccc0 Added a new stats system 2003-08-01 19:13:46 +00:00
codemastr 313aa1e26c Fixed a problem with Sleep 2003-08-01 16:53:21 +00:00
Bram Matthys 6f2d85fbb6 - Fixed bug in /silence regarding cloaked hosts, reported by kuwatog (#0001157). 2003-07-31 16:37:25 +00:00
Bram Matthys 89ddc95c72 - minor m_kick tweak. [could help us in the future] 2003-07-29 19:13:36 +00:00
Bram Matthys 81035a2c3e - Fixed bug with SWHOIS: oper::swhois wasn't broadcasted correctly which made it only show up in local (or server) /whois, reported by format (#0001141). 2003-07-29 18:52:28 +00:00
Bram Matthys 41a0896d6d - First big part of modulized extended channelmodes system 2003-07-29 17:07:17 +00:00
Bram Matthys ded7f11727 - Some minor text/documentation fixes. 2003-07-28 15:43:30 +00:00
Bram Matthys b73de3c497 - Will now error at too large cloak keys (2147483647 and greater) because it's dangerous
and could cause cloak key differences (ex: mixed ia32&ia64 networks).
2003-07-22 17:01:58 +00:00
codemastr 6e45d6ccd3 Fixed a PPC problem 2003-07-18 22:02:14 +00:00
codemastr 4bda94acf3 Crontab fixes 2003-07-16 21:13:25 +00:00
codemastr 550ec43931 Documentation updates 2003-07-15 19:08:44 +00:00
codemastr 523c2fe815 Fixed a +b/+e bug 2003-07-15 18:31:53 +00:00
codemastr ecc53cc37a Fixed numerous logging bugs 2003-07-15 18:21:53 +00:00
codemastr d6f59a90c7 Various fixes/cleanups 2003-07-15 14:52:44 +00:00
codemastr 5732a799bd Made unreal work under Linux PPC 2003-07-15 14:35:46 +00:00
codemastr 51462f5ee1 ... 2003-07-14 22:23:32 +00:00
stskeeps f3f3703273 - Fixed ircd.c compile error discovered by Ravage 2003-07-14 15:33:43 +00:00
codemastr 822db16d91 Cleaned up some /die code under Window 2003-07-13 19:39:37 +00:00
codemastr 9df80388a7 various bug fixes and updates 2003-07-13 16:43:26 +00:00
Bram Matthys f574385475 - Fixed problem with make custommodule and multiple EXLIBS arguments (EXLIBS="-la -lb -lc"). 2003-07-07 18:27:47 +00:00
Bram Matthys 460a61a6d6 - Fixed ban version crash and another read-after-free. 2003-07-06 22:13:01 +00:00
codemastr 5ac4bae7ef Added a system to allow modules to create snomasks 2003-07-01 19:22:24 +00:00
codemastr d2187a72e1 Added a find text feature to the win32 editor 2003-06-26 15:15:27 +00:00
codemastr eed7f9c62d Made the win32 editor maximizable 2003-06-25 20:43:11 +00:00
codemastr 71c691ed0b Added a goto button on the win32 editor toolbar 2003-06-25 16:08:42 +00:00
codemastr 2d0e78cb02 Win32 editor changes 2003-06-25 00:27:06 +00:00
Bram Matthys 7a82d28b19 - Updated docs a bit (how-to-get-support/FAQ link style). 2003-06-22 21:49:04 +00:00
Bram Matthys f6cd86a00a added readme and fdlist bounds checking. 2003-06-22 21:33:50 +00:00
codemastr 9c713f7aa7 Added set::channel-command-prefix 2003-06-22 17:12:39 +00:00
Bram Matthys 507559b6be - IPv6: added warning if a ::ffff:a.b.c.d type addr doesn't work since this "feature" is disabled by default at newer *BSD versions. Also improved another warning. 2003-06-22 00:23:45 +00:00
codemastr b7c02898fe Fixed some SVSMODE/SVS2MODE bugs 2003-06-19 14:44:44 +00:00
Bram Matthys b4dbc4dc72 - Fixed bug with /list and '?' wildcard, reported by maGGus. 2003-06-18 23:32:36 +00:00
Bram Matthys 909bc03521 ./update will now refer user to the docs on upgrade instructions. 2003-06-16 19:24:58 +00:00
cvs2hg 1d04e380a2 fixup commit for tag 'unreal3_2_beta17' 2003-06-15 17:01:50 +00:00
codemastr 31f2e23e30 temporarily disabled TRE 2003-06-15 17:01:49 +00:00
codemastr 4535a0d008 Minor crontab fix and docs update 2003-06-15 16:52:04 +00:00
Bram Matthys 0c56bf9ad2 lalala 2003-06-15 16:17:34 +00:00
Bram Matthys d927eef7dd blah 2003-06-15 14:16:41 +00:00
stskeeps 5b8ca94431 *** Unreal3.2-beta17 release *** (god save us) 2003-06-15 09:10:02 +00:00
Bram Matthys 953d70ba28 - Fixed PRIVMSG bug with multiple targets. 2003-06-14 20:31:26 +00:00
codemastr 153b7c284a Added an experimental (disabled by default) prefix system for +a and +q 2003-06-14 00:05:26 +00:00
codemastr 9661a1a713 Made ./Config setup TRE 2003-06-13 15:11:57 +00:00
codemastr 41c3d206c5 Added the TRE regex library 2003-06-08 19:55:48 +00:00
codemastr c5489b186d Added some WebTV stuff 2003-06-04 22:50:48 +00:00
codemastr 40157a056b Added short motds 2003-06-03 22:38:46 +00:00
codemastr 3af1172dce Recoded some resolver mutex stuff 2003-06-01 19:18:57 +00:00
codemastr d478ad75c2 Fixed a win32 resolver bug 2003-06-01 19:05:03 +00:00
Bram Matthys 50911f28e9 - Minor oob fix for parse_v4_netmask 2003-06-01 19:00:48 +00:00
Bram Matthys 00f857ae99 - Resolver fix nr #1 (prolly not "the real problem"). 2003-06-01 18:49:46 +00:00
codemastr a6d33b3841 Win32 editor fix 2003-05-31 19:26:41 +00:00
Bram Matthys f7d2e7a972 - Fixed _some_ gcc3.3 + -Wall warnings. 2003-05-31 02:12:44 +00:00
Bram Matthys bb53b0be8c - Fixed some MOTD problems: remote MOTD gone after rehash (#0001007) and motd time, etc... 2003-05-31 01:28:14 +00:00
codemastr 88af97045e Changed /whois 'secret channel' flag to '?' 2003-05-30 21:02:15 +00:00
codemastr 825ee732bf ./Config fixes for Solaris 2003-05-30 20:31:07 +00:00
Bram Matthys b3576b29db - Removed "Duplicate user entry in SJOIN" notice because the problem has been traced down. 2003-05-29 19:23:12 +00:00
Bram Matthys cf91b1d89a - Doc updates 2003-05-29 14:35:33 +00:00
Bram Matthys 2cc542f427 added some helpop/docs stuff stating username in /oper is case sensitive. 2003-05-28 22:44:11 +00:00
Bram Matthys fce9f6463a multiple patches:
- Module coders: new hooks: part, kick, chanmode, topic. changed: quit (added 'comment' param).
- Enlarged REPORT_* vars a bit.
- IPv6: UnrealIRCd can now lookup ip6.arpa addresses too (original IRCnet patch modified for
  UnrealIRCd by Onliner).
2003-05-27 22:38:17 +00:00
codemastr 11b0c97e85 Changed some wording in TKL 2003-05-23 17:31:35 +00:00
Bram Matthys 187ef2996d - Fixed bug in HOOKTYPE_LOCAL_JOIN which could cause 0-member-channels if a hook returned 1 and the channel was new. 2003-05-22 18:52:11 +00:00
luke 83bf47452d Fixed /map 2003-05-21 14:21:40 +00:00
codemastr 0d33d9a412 Fixed a win32 editor bug 2003-05-20 18:43:57 +00:00
Bram Matthys 2dc82a43cc - Probably fixed server-notices bug (duplicates, to non-opers) caused by a few SVS* cmds, reported by _loco_ (#0000991). 2003-05-20 17:57:25 +00:00
codemastr a4a447e788 Made /whois slightly faster 2003-05-19 20:39:39 +00:00
codemastr d7efc09cef Removed a reference to pthreads 2003-05-18 17:30:56 +00:00
codemastr 225a84e300 Removed TSP 2003-05-18 17:27:51 +00:00
Bram Matthys 33b1fb5d41 set::options::mkpasswd-for-everyone + Added error messages if not oper for: sdesc, mkpasswd, htm, rping, opermotd 2003-05-17 17:52:24 +00:00
Bram Matthys 96720abeda - Fixed regex detection problem (introduced by a change 2 days ago). <- i added that () comment so ppl don't think it was in beta16 ;p 2003-05-17 15:48:57 +00:00
codemastr 23248c91e6 Changed who flag & to ? 2003-05-16 20:01:22 +00:00
Bram Matthys 83d19d60e4 - Updated src/win32/unrealinst.iss a bit 2003-05-15 18:52:53 +00:00
codemastr 730c302c72 Made regex use extended regexps, and fixed a Sun compile problem 2003-05-15 18:40:08 +00:00
codemastr 2c3eb0339c Solaris compile fix, and deny channel::redirect 2003-05-14 22:34:44 +00:00
stskeeps 878a0f899b - Check in autoconf for MacOS X that will make compiling and running on it
to work
2003-05-13 12:35:52 +00:00
stskeeps 9e70767b8d little fix 2003-05-13 09:50:08 +00:00
stskeeps 7ea0e34f85 - Committed little de-Fizzer module to extras/ 2003-05-13 09:12:59 +00:00
codemastr 7589b92df7 Fixed an SVSMOTD bug 2003-05-12 19:14:03 +00:00
Bram Matthys 99dbe995c0 - Code cleanup (sys_errlist[]) 2003-05-12 18:45:21 +00:00
Bram Matthys 9d377150a1 forgot to change date!!!~~~ 2003-05-11 22:52:28 +00:00
codemastr 2e03a27b15 Fixed a bug in del_throttling_bucket 2003-05-11 21:38:30 +00:00
codemastr 847a2f4944 Resolver changes 2003-05-11 21:33:30 +00:00
Bram Matthys 374a7d5950 Added set::ident::connect-timeout and set::ident::read-timeout, updated example.conf: added throttle block. 2003-05-11 21:08:13 +00:00
Bram Matthys b780fc9347 - Updated flags in /version (and greeting), added 'Z' for zip links support, updated tech doc. 2003-05-11 19:12:57 +00:00
Bram Matthys fb5ea7d873 channelmode +f fix /// IPv6: Fixed unable-to-resolve-bug if both a A/AAAA record and NS/MX/etc records were present 2003-05-11 16:26:58 +00:00
Bram Matthys 0e4a8945e6 - And another minor +L fix. 2003-05-10 23:19:51 +00:00
Bram Matthys 4e74bbac1e - Code cleanup/merge m_join/channel_link: fixed multiple channelmode +L problems. 2003-05-10 21:56:31 +00:00
codemastr 370acc2abe Made it so it is no longer necessary for modules to copy the ModuleInfo structure 2003-05-10 18:53:50 +00:00
Bram Matthys f0a5ab1310 - Moved /stats zip from NOTICE to RPL_TEXT, updated stats documentation. 2003-05-10 00:27:29 +00:00
Bram Matthys dc3f546925 - Fixed numeric checking... someone was really drunk when he coded this "if ((l < 0) && (l > 254))" ;p. 2003-05-09 23:44:11 +00:00
Bram Matthys f46494f02f /WHO code cleanup + partial recode + bugfixes /// Updated example.conf about U-lines since many people set them wrong. 2003-05-09 20:02:20 +00:00
stskeeps c7366d942f Added CASEMAPPING=ascii as per request 2003-05-09 08:29:41 +00:00
Bram Matthys e0a4cf5100 - Misc /whois and webtv whois fixes 2003-05-09 00:41:25 +00:00
Bram Matthys 66d64a62c5 Fixed minor ban_version undeflow, no risk.
No risk coz a 0 len can only happen by a "\1version :" and in that case the -1'th char would be ':'... ;p.
2003-05-08 23:43:55 +00:00
codemastr f3e2f1c524 NETINFO * for cloak-keys 2003-05-08 23:32:38 +00:00
codemastr 012ba4da76 made ban version {} also listen to CTCP SCRIPT 2003-05-08 19:09:31 +00:00
codemastr a9f06266b7 Made the command loop slightly faster 2003-05-08 17:43:31 +00:00
codemastr ed7a06f1e5 Renamed channel mode +a to 'channel admin' 2003-05-08 17:37:25 +00:00
Bram Matthys 54f35ce6a5 added include "help.conf" to example.conf, not worht mentioning in Changes ;p 2003-05-08 02:12:04 +00:00
codemastr 740e86e4b9 Added a CommandExists function 2003-05-06 22:26:48 +00:00
Bram Matthys c6be4ee44f - Removed some leftover TECHAT references (#0000953). 2003-05-06 21:55:21 +00:00
Bram Matthys 906f4dd0b7 - Little find_client() audit. 2003-05-06 18:42:52 +00:00
Bram Matthys eb6b8f89bb - Fixed ripemd-160 vs ripemd160 confusion, reported by thelight (#0000949). 2003-05-06 03:48:17 +00:00
Bram Matthys 1557bab74a - Fixed a local /kill bug during connection phase, reported by Gilou (#0000952). 2003-05-06 00:18:02 +00:00
codemastr 114cec45b1 New version flag system 2003-05-04 21:30:38 +00:00
codemastr 69f0e97c9e Fixed a SVSMODE bug 2003-05-04 18:50:24 +00:00
codemastr c7de811b78 Fixed an operoverride bug with +aq 2003-05-04 17:37:25 +00:00
Bram Matthys 337d05a43d - Fixed unprecise RPING output at windoze, reported by pak (#0000945). + useless code cleanups 2003-05-04 16:44:40 +00:00
Bram Matthys 0a74098238 Fixed a badword::action block bug with regex. 2003-05-04 14:10:13 +00:00
Bram Matthys 0c0faa05af - Removed some leftover +I code (can_stealth/^). 2003-05-03 22:28:31 +00:00
Bram Matthys d1fc8bff14 - Fixed "make install" error caused by bugreport file removal. 2003-05-03 22:00:51 +00:00
codemastr 8d6e18d086 Fixed a /topic operoverride bug and vhost::vhost verification added 2003-05-03 18:18:07 +00:00
cvs2hg 95762dff6d fixup commit for tag 'unreal3_2_beta16' 2003-05-03 15:37:06 +00:00
stskeeps 526cd8ba65 beta16 release 2003-05-03 15:37:05 +00:00
stskeeps 5023f55bc9 fooo 2003-05-02 15:55:39 +00:00
stskeeps ae68ad4994 blah 2003-05-02 15:54:28 +00:00
stskeeps d20f17fa8b Removed credits.potential 2003-05-02 15:44:04 +00:00
stskeeps f637e456d7 - Removed some more html files. 2003-05-02 15:40:53 +00:00
Bram Matthys 88cc0b6d96 BOPM windoze URL 2003-05-02 00:45:22 +00:00
Bram Matthys e91c2a8eed - Made SVSNOOP work. Reported by Lx (#0000933). [not dangerous to fix ;P] 2003-05-01 19:52:06 +00:00
Bram Matthys 09f74a9b11 Added warning if set::scan exists with a nice BOPM url etc. 2003-05-01 19:44:11 +00:00
Bram Matthys e244c24a26 release notes, moved REMOVED thing to top... will save us a few users screaming for help... 2003-05-01 19:29:54 +00:00
Bram Matthys 9f4d4e674e docs, module hook, blablabla. 2003-05-01 19:23:00 +00:00
stskeeps 40f4bb7e6c - Mm, let's see what this checkin brings:
* Removed thread questions from Config, and autoconf code from
    configure.in, leaving in the old macros though, but inactive
    --enable-standardthreads is dead as of now
  * Undefined HOOKTYPE_SCAN_INFO
  * Removed CONF_EXCEPT_SCAN
  * Removed locking in events, Lock/UnlockEventSystem still active for other
    possible uses.
  * Removed scanners, web server module
  * Removed except scan {}
  * Removed SCAN_API stuff from l_commands.c, win32 makefiles, etc
  * Removed basically any mentions of threads in source tree, excepting
    threads.h which Resolver uses on win32
  * Documentation changes not done yet
2003-05-01 18:31:58 +00:00
codemastr e385747451 Removed +I reference from help.conf 2003-04-29 22:28:15 +00:00
Bram Matthys 68a589daf5 Updated docs on +p 2003-04-29 18:45:57 +00:00
codemastr 0bdb6a2e78 Docs updates 2003-04-28 17:26:04 +00:00
codemastr b4e8b60973 release preparations 2003-04-27 21:40:22 +00:00
Bram Matthys ebc9d6242f - Preparing beta16: release notes ready, version updated in docs/text (except version.h). 2003-04-27 18:57:04 +00:00
Bram Matthys 9f1c81541d - Usermode +q can now be set by services admins, as stated in docs (#0000923). 2003-04-27 15:00:27 +00:00
Bram Matthys 59b1217a94 w00t ;P 2003-04-27 14:26:32 +00:00
codemastr d35810e819 Fixed a bug with ban version {} 2003-04-26 23:31:56 +00:00
codemastr a6f56a6121 ... 2003-04-26 18:52:29 +00:00
codemastr 69ac5a529b Allow Ulines to use a TS in the past for topics 2003-04-26 18:49:54 +00:00
codemastr a25630a958 module umode changes 2003-04-26 16:37:14 +00:00
Bram Matthys 31978ef74f Friendly IPv6 msg.. 2003-04-24 14:58:07 +00:00
Bram Matthys eed1a83d78 - Some documentation improvements regarding link::hostname. 2003-04-24 14:20:42 +00:00
Bram Matthys 9a56a16ee2 - Added link::options::nohostcheck which makes Unreal not to validate the incomming host/IP against the link::host field, usefull for dynamic DNS hosts. 2003-04-24 14:09:38 +00:00
Bram Matthys 8aefa6cdce - Fixed minor badwords /rehash memleak. 2003-04-24 02:13:28 +00:00
Bram Matthys d202cc0868 - Some code cleanups (s_conf.c, now has a config_setdefaultsettings()). 2003-04-24 01:42:16 +00:00
Bram Matthys 2d0abfa787 - Enabled throttling support by default, you need to have a (correct) set::throttle block to make it work, otherwise it's just turned off. 2003-04-24 01:21:52 +00:00
Bram Matthys fbabd2bd1e Additional SJOIN debug info in case of fishy timestamp 2003-04-20 20:34:09 +00:00
Bram Matthys 4a679b34c4 - Fixed usermode +S: was accidently a local usermode (#0000909) 2003-04-20 20:22:33 +00:00
Bram Matthys 01c8f8bdc7 - Added IP bans like *!*@194.109.* (#0000474). 2003-04-19 20:48:52 +00:00
Bram Matthys 4b066b3347 - Fixed far connect (+s +F): connects from U-lined servers are now hidden again. 2003-04-19 20:25:29 +00:00
Bram Matthys 3c5e7ff5e7 - Fixed a PRIVMSG channelprefix bug reported by aragon (#0000902) 2003-04-18 15:30:35 +00:00
Bram Matthys a63eee5ee9 I won the fight... 2003-04-17 18:13:01 +00:00
Bram Matthys 201c0e39bc Fix-for-fix (debug stuff), sendto... real... opers... 2003-04-17 18:01:55 +00:00
Bram Matthys 9691748a7e - Added some temporarely SQLINE debugging/trace code 2003-04-17 16:58:38 +00:00
Bram Matthys f13b9b539e - Fixed a compile error with openssl enabled at redhat 9. 2003-04-16 22:28:19 +00:00
codemastr d7f20fb507 Docs update 2003-04-16 19:28:39 +00:00
codemastr 8409ff6234 Fixed a bug where /nsg and /notice didn't use tokens for nick@server forms 2003-04-16 18:49:00 +00:00
codemastr f866ce40df Fixed a bug with reporting invalid set::dns directives 2003-04-16 18:12:32 +00:00
Bram Matthys 6ebcf46459 - Minor error msg improvements
- Fixed a bug with wrong hub/leaf settings ("non-hub introduced leaf") causing a crash (#0000732).
2003-04-16 17:05:00 +00:00
codemastr dd1364321a Fixed a ban version {} bug, added an aliases/anope.conf, and updated some docs 2003-04-15 21:56:24 +00:00
codemastr c2a4509d9c Made the channel be hidden from /who if you are +p 2003-04-13 23:46:04 +00:00
Bram Matthys 3c6ecbcbb2 - Fix for set::restrict-channelmodes (eating parameters). 2003-04-13 20:05:54 +00:00
codemastr bf0b2a98cd Docs update 2003-04-13 19:10:42 +00:00
Bram Matthys 3618b2a2fa - badword::action::block should now be ok 2003-04-13 19:04:46 +00:00
codemastr 8732330e38 Cleanups and /chgident fix 2003-04-13 18:10:56 +00:00
codemastr c8477ddb6a Made except ban override ban ip 2003-04-13 17:42:23 +00:00
codemastr a38c76dd44 ... 2003-04-13 17:13:01 +00:00
codemastr 7000658c42 Fixed some /stats b stuff and added badword::action 2003-04-13 16:51:08 +00:00
Bram Matthys e7672e9027 - Updated channelmode +f "algoritm", much better now. Reported by JimmyZ, Rocko, and others. 2003-04-13 16:39:40 +00:00
codemastr 87d89c721c Throttling fixes and changes 2003-04-13 00:43:04 +00:00
Bram Matthys 3ef30832cf Improved throttle hashing (both IPv4 and IPv6)... prime numbers are fun ;) 2003-04-12 21:46:58 +00:00
Bram Matthys 4c59392caa That's better... should be ok now ;). Not mentioning in Changes, no visual change. 2003-04-12 20:43:51 +00:00
Bram Matthys fa19910694 blah 2003-04-12 20:30:51 +00:00
Bram Matthys fca6689a19 fix-for-fix 2003-04-12 20:30:27 +00:00
Bram Matthys f473314312 - Improved IPv6 throttle hashing 2003-04-12 20:21:38 +00:00
codemastr 2c53187cad Fixed another throttling bug 2003-04-12 19:50:09 +00:00
Bram Matthys 7d88957dd6 Another code cleanup for -Wall.. added some functions to h.h etc. 2003-04-12 17:21:44 +00:00
Bram Matthys 406ba755d6 - code cleanup / misc minor bugfixes (MyMalloc, oper msgs) 2003-04-12 15:56:25 +00:00
codemastr 3a368be7e5 Fixed an SQLINE bug 2003-04-11 23:57:15 +00:00
codemastr 705c24399c docs update 2003-04-11 21:08:15 +00:00
Bram Matthys 3b56433320 - Added allow::options::ssl and allow::options::nopasscont, requested by iguy and Scytale. 2003-04-11 18:26:20 +00:00
Bram Matthys 498d82f5fe Added set::restrict-channelmodes and very minor speedup in restrict-usermodes handling. 2003-04-11 16:05:02 +00:00
Bram Matthys e21d4aceba - Fixed cloaking bug reported by Rocko (#0000869) 2003-04-11 14:29:35 +00:00
Bram Matthys fbd413549f blah 2003-04-11 02:30:26 +00:00
Bram Matthys 6f5683242a - Added tld::options::ssl so you can have different motd/rules files if the user is using SSL.
Also there's tld::options::remote but that's currently not used :P.
2003-04-11 02:19:29 +00:00
Bram Matthys 0778c391b6 Some useless BUFFERPOOL changes, only affects users manually running ./configure (do they exist? ;P)... 2003-04-11 00:57:48 +00:00
Bram Matthys f4c5418326 Let's be nice and give some thanks ;P. 2003-04-11 00:19:35 +00:00
Bram Matthys 8a4856fa8b Fixed MAJOR "messages are lost" caused by BUFFERPOOL being to low and bad return checking of dbuf_put.
If BUFFERPOOL dbuf_put would return -1, but at some places !dbuf_put was used,
I've changed it so it will return 0 (so use !dbuf_put now, don't use dbuf_put(...) < 0 :P).
I also added some nice warning thing. I couldn't send from the send routine because that's risky ;).
And...... I also doubled the default BUFFERPOOL, so if you leave everything the default then
BUFFERPOOL is now 52Mb instead of 26Mb, which should be ok for now.
2003-04-11 00:09:46 +00:00
codemastr d41d26a163 SQLINE/UNSQLINE and SVSNLINE fixes 2003-04-10 21:13:36 +00:00
Bram Matthys 7c9ba1feda - Added SSL quit error messages 2003-04-10 19:58:30 +00:00
Bram Matthys 49aa8d9921 - Changed throttling errormsg so mIRC recognizes it and waits a while. 2003-04-10 18:48:38 +00:00
Bram Matthys 152be25b08 - Fixed opermode bug which could cause the ircd to crash a while later (#0000823). 2003-04-10 17:59:17 +00:00
codemastr 27928952dd Possibly fixed an SSL crash 2003-04-08 23:49:01 +00:00
codemastr 318cd17c06 example.conf typo 2003-04-08 23:15:06 +00:00
codemastr f21a9758cf Fixed a bug with precedence in TKL 2003-04-07 21:46:47 +00:00
codemastr 6a990f2b05 Fixed a bug with ban version {} with NOSPOOF 2003-04-07 18:42:48 +00:00
Bram Matthys 5e95ab5595 - Fixed a fast badword replace crash (#0000834) reported by orga 2003-04-07 00:20:13 +00:00
codemastr b190794a4b Docs typo fix 2003-04-06 22:12:41 +00:00
Bram Matthys 94adac199e - Fixed yet another oob read in config parser (ie: #0000841).
Boring.. boring..
2003-04-05 22:37:20 +00:00
Bram Matthys 3348c84048 - Fixed 2 other oob reads in config parser (parsing of size and time). 2003-04-05 22:16:14 +00:00
Bram Matthys daf80ca716 - Fixed an oper bug with /names on a +s channel (#0000816). 2003-04-05 21:26:18 +00:00
Bram Matthys 629d0d59f7 - Fixed a set::modes-on-join bug and fixed an oob read in config parser.
(1st=someone forgot a bzero)
2003-04-05 21:16:21 +00:00
stskeeps c1dd98ece4 - Made throttling use DelListItem and fixed some confusing regarding
undeffing of THROTTLING
2003-04-01 12:25:59 +00:00
codemastr 4c23c4eeae Fixed some set::allow-userhost-change problems 2003-03-29 00:06:12 +00:00
codemastr 68fac1298d ... 2003-03-25 01:03:36 +00:00
codemastr 7424fa2904 Moved the 'missing user in SJOIN' notice to snomask +j 2003-03-24 17:36:27 +00:00
codemastr b71c11416a Away flood stopper patch 2003-03-24 01:07:57 +00:00
codemastr 8d950fbe2e ... 2003-03-23 20:22:08 +00:00
codemastr 21416a3a14 Added set::modes-on-join and fixed some docs typos 2003-03-23 17:27:04 +00:00
codemastr b6f456471e docs typo fix 2003-03-22 17:21:58 +00:00
codemastr f006ffe3c9 Added usermode +p 'hide channels in whois' 2003-03-21 21:43:38 +00:00
codemastr fe1dcfb6c2 Docs update 2003-03-21 17:23:55 +00:00
codemastr a2f68d0ae3 Docs updates 2003-03-21 00:49:08 +00:00
codemastr dc7564d5b8 Zip links fixes 2003-03-18 17:45:26 +00:00
codemastr df15fa62e1 Documentation update 2003-03-18 16:48:26 +00:00
codemastr ead651585e Rewrote the unknown connection flood system 2003-03-18 00:19:00 +00:00
codemastr 45a1b02ec2 Added ban version {} 2003-03-17 19:30:57 +00:00
codemastr 149a544fcf Fixed a bug where +x made hosts lowercase 2003-03-15 19:49:01 +00:00
codemastr e01932f2ba Added chmode +M to numeric 005 and a /restart and /die cleanup 2003-03-15 19:06:34 +00:00
Bram Matthys 631bf5823c - Fixed a restrict-usermodes bug reported by Rocko (#0000796)
Also some additional cleanups
2003-03-12 17:37:19 +00:00
Bram Matthys 1afff0c681 - Fixed compile error 2003-03-12 05:05:03 +00:00
codemastr 3e5953bfff Moved 'unknown connection flood' to snomask +f 2003-03-11 22:10:01 +00:00
Bram Matthys 0690d9bf2f - Fixed "proxyscan on quit" bug (#0000788) 2003-03-10 19:44:26 +00:00
codemastr 4ab745e0eb Updated some docs 2003-03-10 17:31:19 +00:00
codemastr 5250f5907e Added set::throttle::period 2003-03-10 17:09:51 +00:00
codemastr 6f78df5776 help.conf updates 2003-03-10 00:25:12 +00:00
Bram Matthys 3ff5f281a9 - Improved previous /version bugfix 2003-03-09 22:09:02 +00:00
Bram Matthys 9d6afdb321 - Improved fake lag stuff 2003-03-09 17:17:07 +00:00
Bram Matthys 9223dec1ee - Fixed a version bug. 2003-03-09 15:35:19 +00:00
Bram Matthys 45e2b69a07 - Fixed a match() bug
In case of a mask like '*\' it was trying to read out of bounds data.
2003-03-09 03:07:59 +00:00
Bram Matthys fa1f8c3d0f - Fixed a /who big which could make the server crash (oper only). 2003-03-08 20:53:15 +00:00
codemastr f5baa63cce Fixed a /list bug with +s channels and opers 2003-03-08 17:41:04 +00:00
stskeeps 853c27be84 bah 2003-03-07 14:47:30 +00:00
stskeeps 53f30bda07 - Fixed a buffer overflow that could be used against setuid setups,
found by rave@dtors.net, reported by kokanin
- Disabled CMDLINE_CONFIG(-f) by default
2003-03-07 14:37:26 +00:00
Bram Matthys 577125079e - Doc updates (SSL/stunnel example was wrong) 2003-03-04 21:08:47 +00:00
stskeeps 8ad07e6a5e h
:q
h
:q
2003-03-04 08:48:07 +00:00
stskeeps 849487df98 beta15 release 2003-03-03 18:37:55 +00:00
Bram Matthys 93a2477f3b - Fixed /setident bug 2003-03-02 23:13:33 +00:00
stskeeps 2271adf889 bah 2003-03-02 21:07:03 +00:00
Bram Matthys b231cf713d Improved story about SSL (links to xchat and stunnel, stunnel.conf example). 2003-03-02 02:17:06 +00:00
Bram Matthys 5957da083d Blah... layout
- bla
to
* bla
2003-03-01 23:10:27 +00:00
Bram Matthys dda16e5ef5 Integrated my unreal_beta15.txt into .RELEASE_NOTES, original release notes
still at end of the file. Most stuff about features has been integrated into
the documentation, so probably pretty much of it can be removed...
2003-03-01 23:08:13 +00:00
Bram Matthys 4d5987adee Documentation updates, and some replaces beta14->beta15 already (not yet
the version.h thing)
2003-03-01 21:33:41 +00:00
Bram Matthys d435c5becf - WebTV fixes 2003-02-28 14:40:11 +00:00
Bram Matthys a28a349eb2 - Documentation/text updates. 2003-02-28 01:00:36 +00:00
Bram Matthys def6483548 - Added SVSWATCH: allows U-lined server to modify the watch list of a user.
- Added SVSSILENCE: allows U-lined server to modify the silence list of a user.
2003-02-27 23:23:24 +00:00
Bram Matthys 06eaede3f2 - Added allow-userhost-change checks to /vhost.
Fixed Changes typo from me (forced-rejoin -> force-rejoin)
2003-02-27 18:41:26 +00:00
Bram Matthys 41e06cba28 - Made set::allow-userhost-change forced-rejoin work.
- Fixed chmode +u bug when chanop was parting but wasn't sent to normal users.
2003-02-27 17:13:04 +00:00
Bram Matthys b9ec2de0cb - Added feature that if the chan is +m AND +u (so both!) and you ban IRC!*@* then ops
will no longer see the "relayed" message from IRC.
2003-02-26 22:07:11 +00:00
Bram Matthys 60b77d4485 - Added EventMarkDel which marks an event for deletion for the (next) DoEvents() call.
- Fixed /rehash stall caused by delayed unloading of the scan module (deadlock).
2003-02-24 03:04:23 +00:00
codemastr 99ee86c9c9 NS cleanups 2003-02-23 21:47:56 +00:00
codemastr 931d78cd9b ... 2003-02-23 17:23:46 +00:00
Bram Matthys 28d355f649 - Code cleanup (gcc 3.2 warnings with -Wall).
Compile tests done: Linux, Linux SSL, Linux SSL+ZIP, Windows, Windows ZIP, Windows SSL+ZIP.
This might also have fixed some (or 1) bug(s) :P.
2003-02-23 03:41:39 +00:00
Bram Matthys 8fbb67818b - Added set::options::dont-resolve (=hostnames of incomming clients won't be resolved).
This is more usefull than the no nameserver + useip solution since with this no resolving
is done for incomming clients, but connecting to other servers (with hostnames) still works fine ;P.
2003-02-22 22:34:40 +00:00
Bram Matthys 4795a45150 - Fixed two ident bugs (multihomed&connect), both resulted in ident not working.
multihomed issue:
Instead of binding cptr->listener->ip it now uses getsockname(), otherwise it
won't work if you have a listen *:6667 thing + multihomed (it will connect for
example from 33.33.33.1 while the client connected to 33.33.33.5.
connect issue:
there was some kind of file descriptor race condition because of the way our
whole read_message() thing is coded... an ident socket might have been closed
+ a new might have been accepted... blablabla ;)
I wonder if anyone reads these CVS logs lol :).
2003-02-22 21:16:30 +00:00
codemastr 2a90309216 Added badword quit {} to replace CENSOR_QUIT 2003-02-22 19:41:00 +00:00
Bram Matthys 2cc2a89e5b Again. 2003-02-21 20:09:55 +00:00
Bram Matthys 76fd66d27f - Documentation updates (unreal32docs.html, example.conf).
Againnnnnn
2003-02-21 19:22:59 +00:00
Bram Matthys 64dab7821a - Fixed remote /rehash bug (#0000600). Actually rewrote 20/25% ;).
Also minor doc fixes, not worth mentioning in Changelog.
2003-02-21 02:44:48 +00:00
Bram Matthys 775378a410 - Documentation updates (added a section about features).
Also colour -> color ;P.
And... removed doc/Unreal31_to_32.html because it's no longer needed now
since I have integrated it in the features section / unreal32docs.html.
2003-02-20 23:51:25 +00:00
codemastr ca9a7a1e89 Fixed a TKL bug 2003-02-20 23:12:07 +00:00
Bram Matthys 2f10a46e1e - Fixed chmode +u again. 2003-02-19 16:02:29 +00:00
Bram Matthys 0d1e674fcf - Fixed win32 compile error 2003-02-19 02:59:50 +00:00
Bram Matthys aa44d4d728 - Updated win32 compile instructions
- Fixed set::dns error messages
2003-02-19 02:37:23 +00:00
Bram Matthys eb7333c874 - Added /who *.host.com support (ircop only), this was already possible via /who -h <host>
but most ppl expect it to work this way too.
2003-02-18 22:29:40 +00:00
Bram Matthys 4a7cef66dd - Fixed bug with channel mode +u: Quits/nick changes of other users were shown. 2003-02-18 18:59:37 +00:00
Bram Matthys 08eb667db8 - Fixed some case insensitive checks in configfile parsing, fixed to be case sensitive.
- Module changes: added two hooks: HOOKTYPE_USERMSG and HOOKTYPE_CHANMSG, changed umode_get.
The HOOKTYPE_USERMSG has been tested with a +D (deaf for private msgs except for opers)
module, the channel thing not yet...
added global/local mode flag to umode_get, or use umode_lget (local) / umode_gget (global) :P.
Blah.
2003-02-18 18:29:07 +00:00
Bram Matthys 7a4d7df866 - Fixed some case insensitive checks in configfile parsing, fixed to be case sensitive.
if someone used LoadModule instead of loadmodule no warning was shown. This issue is
known to cause negative psychological effects on some users.
2003-02-17 21:11:48 +00:00
codemastr d729d2a0e4 Fixed an alias bug 2003-02-17 20:03:55 +00:00
Bram Matthys 5a1bdba209 - Removed some debugging messages 2003-02-17 19:03:34 +00:00
codemastr 0c5ef6def4 Removed some more +I code, and fixed a /who bug 2003-02-16 22:36:07 +00:00
codemastr 8569877110 Fixed a TKL rehash bug and recoded aliases to be much faster 2003-02-16 21:57:31 +00:00
Bram Matthys e116c095f2 - Fixed MyConnect()/MyClient() bug causing memory leak. 2003-02-16 21:12:32 +00:00
Bram Matthys 9b38176f98 List options were not correctly freed when /list was completed.
The bug was it did free the yeslist/nolist elements but not the data in it (lp->value) :PP.
Changed to use free_str_list() instead, just like in exit_client.
2003-02-16 04:59:26 +00:00
Bram Matthys 36d7d271cc - set::services-server is now required to be set (#0000730). 2003-02-15 23:41:23 +00:00
Bram Matthys f2eb5f48b6 - Zip links: Added link::compression-level so you can set the compression level per link 2003-02-15 21:13:37 +00:00
codemastr 4606d94e27 +I stuff removed, and other stuff 2003-02-15 20:20:35 +00:00
Bram Matthys 0c12e70d59 - Fixed compile warning in ssl.c. 2003-02-15 18:16:57 +00:00
codemastr bf116f1f6c Removed cmode +H, coadmins can use /rehash -flags, added cmode +M 2003-02-15 01:27:48 +00:00
codemastr 8e3272ba0b Fixed a win32 bug 2003-02-14 23:20:05 +00:00
Bram Matthys f014032901 - Fixed link::port bug reported by AngryWolf: was signed so ports >32767 had problems 2003-02-13 17:12:54 +00:00
Bram Matthys 1901911405 - Removed usermode +I (invisibility) 2003-02-12 21:44:09 +00:00
Bram Matthys 5f772f0457 this helps... 2003-02-12 20:45:48 +00:00
Bram Matthys addd54c38f Revert set::options::owner-gets-dot patch. 2003-02-12 20:44:14 +00:00
Bram Matthys 71a7e91363 - Added set::options::owner-gets-dot which will give chanowners a . prefix. 2003-02-12 02:12:13 +00:00
Bram Matthys 82201421eb Made ".. did a /whois on you" always show the real host (#0000705). 2003-02-10 00:56:58 +00:00
Bram Matthys 934b898914 Fixed a bug in coadmin: global flags were not added (#0000716). 2003-02-10 00:41:19 +00:00
Bram Matthys 954ccf7265 added set::restrict-usermodes 2003-02-09 20:51:25 +00:00
Bram Matthys efc2c8f326 Updated docs. 2003-02-07 23:08:01 +00:00
codemastr 8070b2397e Fixed an except ban {} problem 2003-02-07 16:21:23 +00:00
Bram Matthys a127469d42 Added USE_ZIP stuff to win32 installer script. 2003-02-07 00:08:32 +00:00
Bram Matthys 09013995f6 Updated protoctl.txt (added ZIP). 2003-02-06 23:55:56 +00:00
Bram Matthys bd8cbf6713 * don't send SHOWCONNECTINFO if the link is (known to be) a server.
* same for scan message
* don't say "you have not registered" on NOTICE in unregistered state.
* made a send_prot(aClient, ConfigItem_link) for sending PROTOCTL message,
  takes care of sending ZIP in token in case of a ziplink (indeed, I don't
  send "ZIP" if it's not marked as a ziplink).
* added automatic fallback tot uncompressed link in case one of the sides
  has zip turned off or not compiled in.
* added configcheck for link::options::zip turned on when not compiled
  in (just like we do with ssl).
2003-02-06 01:09:17 +00:00
Bram Matthys af988ce74d Added config error if link::options::zip was enabled at a non-zip compiled server. 2003-02-05 22:14:39 +00:00
Bram Matthys 1c0860e841 - Fixed an ident bug, maybe it actually works now.. (#0000709) reported by marviiin. 2003-02-05 21:32:37 +00:00
Bram Matthys c177eb2580 Code (comments) cleanup. Yes very usefull.. ahem ;). 2003-02-05 20:15:28 +00:00
Bram Matthys 0dde38dd6a ZIP_LINKS fixes/debugging. 2003-02-05 01:28:31 +00:00
codemastr 0ca9f4c2c5 ... 2003-02-05 00:59:51 +00:00
codemastr 06dc8646a4 added ziplinks support to ./Config and updated SSL support in ./Config 2003-02-05 00:44:14 +00:00
codemastr da33a9e646 Fixed a bug when compiling with SSL ZIP_LINKS 2003-02-04 22:50:56 +00:00
Bram Matthys 1bea78bd0e - Fixed a bug in m_part reported by Angrywould, cause unknown (yet).
- Currently it's not possible to compile with ZIP_LINKS _and_ SSL without changing zlib.h :(.
It really sucks... it's because zlib.h has a typedef for 'free_func' and this is also used
in openssl header files as a (useless) name... :((. I did some updates to allow future zlib
changes, dunnow if they will because it can break other zlib programs. It compiled fine at
windows, but not at Linux... you need to replace free_func to zlib_free_func in zlib.h in
order to get ZIP_LINKS + SSL to work... but like I said, that may break programs (ARGH!).
2003-02-04 21:23:47 +00:00
Bram Matthys 6ceb9cb6f7 Code cleanup (in many files heh)... I replaced all:
IsHidden(sptr) ? sptr->user->virthost : sptr->user->realhost
stuff to a simple GetHost(sptr) macro (defined in struct.h).
Smaller and less error phrone :). Also fixed the if IsHidden -> if (IsHidden
found by codemastr .
2003-02-04 19:40:38 +00:00
Bram Matthys d98e7d3112 Fixed bug in ISON. 2003-02-04 18:50:55 +00:00
Bram Matthys 0b2d842d55 Code cleanup in m_umode. 2003-02-04 18:02:44 +00:00
Bram Matthys c0a3cd9c14 Fixed minor memleak with zip links (a few k per server link). 2003-02-04 16:54:53 +00:00
Bram Matthys 24f36c846c Documentation updates for nodnscache. 2003-02-04 02:13:35 +00:00
Bram Matthys 7ad5f10d76 - Fixed a resolver bug where cache entries didn't timeout correctly.
- Made async resolve-and-connect work
- Added link::options::nodnscache which means Unreal will not cache the host forever for
  outgoing server connections, you could for example enable this if you are linking two servers
  with an often changing host (like dyndns.org).
2003-02-04 02:09:40 +00:00
codemastr 1efcc56dce Fixed a throttling bug 2003-02-03 21:38:02 +00:00
Bram Matthys 39be4901df Added recvq column to /stats y reply. 2003-02-03 21:32:51 +00:00
Bram Matthys c5369043c7 Added better (specific) link error messages (only on the "incomming" side)
so you can easily see whether servername, hostname/ip or username is wrong.
2003-02-03 21:05:50 +00:00
Bram Matthys 6f9060ce4e Minor doc updates (mainly example.conf) 2003-02-03 20:27:33 +00:00
Bram Matthys 6f2be400c3 Major unreal32docs.html documentation update:
* Changed layout
* Removed text, split up 3.1.x->3.2.x upgrade info to Unreal31_to_32.html
  (actually that's just .RELEASE.NOTES, need a bit more explanation and
   stuff about converting configs etc).
* Improved Me, Class, Allow, Listen and Set block text/layout/etc.
* Removed typo's
2003-02-03 20:14:16 +00:00
Bram Matthys d7b0c619bd Fixed /topic for opers when not in +s-channel 2003-02-03 18:52:06 +00:00
Bram Matthys ded0df0b31 Don't encrypt SSL certificate by default @ win32. Why would we encrypt by default
at windows and not at *NIX? Also it's incompatible with running as a service.
AFAIK it doesn't increase security very much: if you own the box you can easily
snif the keyboard, read the certificate from memory, etc..
2003-02-03 17:44:33 +00:00
Bram Matthys 19960bf7de Fixed bug in ipv6 + unknown connection flood. 2003-02-03 17:27:21 +00:00
Bram Matthys 7e3664afe5 Bugfix for crash with STRIPBADWORDS_CHAN_ALWAYS (null pointer). 2003-02-03 16:33:05 +00:00
Bram Matthys 138fcd19e7 Added (optional) class::recvq so you can dynamically/per class set the recvq (flood control).
CLIENT_FLOOD in config.h is still used as a default value if recvq is not specified.
2003-02-03 01:51:26 +00:00
Bram Matthys 8d329b611a enabled FAST_BADWORD_REPLACE by default 2003-02-02 23:13:26 +00:00
Bram Matthys ef150daae7 Two tiny text fixes: missing space and an CRLF in 'sending to me' thing,
and some probably impossible oob read but just in case added a length check,
blahhh (sending empty line).
2003-02-02 23:05:03 +00:00
codemastr 56da92cab9 Added set::snomask-on-connect 2003-02-02 22:53:59 +00:00
Bram Matthys 0131baaf5b - Fixed bug which made opers unable to do -a/-q (#0000654).
- Fixed bug in +q/+a list (/mode #chan q) <= lol this was some historic
bug by DrBin or something ;). In case you wanna know.. the whole loop logic
was wrong... initalisation vs null pointer check... ;).
2003-02-02 03:39:52 +00:00
Bram Matthys 463a2b29c5 memleak bugfix for my previous improved-write/buffer-errors-patch.
Additionally, I've increased my life chances with 100% thanks to _this_ patch.
2003-02-02 01:09:43 +00:00
Bram Matthys 84596e0fc5 Redesigned "Dead socket" error msg thing. Added a error_str to client struct,
which is set if dead_link is called. You will now see "Write error",
"Max SendQ exceeded" etc error messages in the quit reason instead of just
the "Dead socket" message. Changed "notice" parameter of dead_link, now just
the reason and not a format string, maybe rename that var.
2003-02-02 00:48:02 +00:00
codemastr 47dabe4c36 Aliases updates 2003-02-01 19:18:06 +00:00
codemastr ab5ff5cdea Started work on set::allow-userhost-change 2003-02-01 19:14:31 +00:00
codemastr 0004c00d7a Documentation updates 2003-01-29 20:41:04 +00:00
codemastr 33cb958615 Fixed a channel mode +A bug 2003-01-29 20:27:02 +00:00
Bram Matthys 0a1aacda89 Fixed missing 's' flag in oper::snomask causing not receiving any server notices (attempt II) 2003-01-29 01:15:09 +00:00
codemastr 12a5746d47 Rechanged 'a Services Administrator' back to 'a Services Operator' 2003-01-29 00:56:01 +00:00
Bram Matthys a5ea13adc9 Added '/stats zip' 2003-01-29 00:19:16 +00:00
Bram Matthys 637867bc6d Added makefiles to compile with zip links @ windows (zlib needed). 2003-01-28 23:13:49 +00:00
Bram Matthys 95c0add864 Fix for error msgs flood at (at least) Linux 2.4.x and FreeBSD caused by
socket already disconnected when getpeername() is done.
2003-01-28 22:14:56 +00:00
Bram Matthys bcac798a99 Fixed whois: "a Services Operator" -> "a Services Administrator" 2003-01-28 20:32:21 +00:00
Bram Matthys 007d0c1d32 Added STRIPBADWORDS_CHAN_ALWAYS (a define, disabled by default) for always
censoring badwords from all channels (+G or not).
2003-01-28 20:24:55 +00:00
Bram Matthys f6333714a2 Fixed some minor sending-1-byte-too-much bugs when all connections where in use. 2003-01-28 19:06:56 +00:00
Bram Matthys 92fe4e04a3 Removed unnecessary #ifdef blocks added by previous ZIP_LINKS patch 2003-01-28 03:27:48 +00:00
Bram Matthys 482df3dce3 Added ZIP_LINKS: using flag FLAGS_ZIP (0x1000000, was FLAGS_UNOCCUP2),
instead of using a 2nd flag here for the special case of "the first zip msg"
like in hybrid/etc I use cptr->zip->first to flag that. Except for the many
#ifdef ZIP_LINKS blocks added I also had to do some stuff outside it, like
crc32->our_crc32 because zlib defines it, made a READBUF define (8192),
added a msg var to parsing/send functions.. blah.. etc ;P.
I've also put the patch online at www.vulnscan.org/tmp/zip_links.diff so you
can easily look what I've changed.
TODO: ask in ./Config if ziplinks should be enabled and let ./configure check
for zlib + add the library to IRCDLIBS in Makefile if enabled.
TODO: some little code cleanups
2003-01-28 02:50:19 +00:00
Bram Matthys d0dc13faa5 Little fix for previous throttling fix (accessing just free()d memory). 2003-01-27 21:25:27 +00:00
Bram Matthys 09776ff03f Fixed triple WATCH reply bug (#0000632) when USER was send before NICK. 2003-01-27 21:00:21 +00:00
codemastr 00698d9fd4 Fixed an SVSO bug and a throttling bug 2003-01-27 19:54:00 +00:00
codemastr 1db740e154 Fixed an HCN bug with client exiting notices 2003-01-27 19:30:34 +00:00
Bram Matthys e070a40353 Fixed crash when link::leaf (and some other link:: things) was empty. (#0000610) 2003-01-26 21:58:29 +00:00
Bram Matthys 9d48eee701 Tweaked fix for 2-bans-needed-trick a bit. I was checking against last virthost,
now always checking against cloaked host... Just feels better :P.
2003-01-26 15:20:06 +00:00
Bram Matthys deb038730a Minor documentation update for SVSNLINE. (#0000651) 2003-01-26 03:18:36 +00:00
Bram Matthys 74a984da48 Fixed 2-bans-needed-trick (#0000626). If a user got banned while having mode +x,
then does a -x virthost gets freed and the user can join again/circumvent the ban.
virhost should probably be moved in to the User struct like char virthost[HOSTLEN+1]
but in the meantime I've just removed the free() when someone does -x.
I noticed we already do make_userhost at connect even if mode +x isn't set, and also
is_banned checks if virthost exists.. if so -> check if that's banned... so this
patch won't decrease performance much.
2003-01-26 02:18:30 +00:00
Bram Matthys 117ec38808 Channel msging optimization by 10-30%. 2003-01-25 21:26:53 +00:00
Bram Matthys 423a8c2739 Fixed yet another bug in new badwords replace system (should be almost finished now! ;P). 2003-01-25 18:44:23 +00:00
Bram Matthys c4c87fb803 Blah... forgot to remove some debugging code in badwords.c (new fast replace system) 2003-01-25 01:32:17 +00:00
Bram Matthys efaf9d6709 Fixed halfop bug, ex: /mode -o+b user *!*@blah.com will get +b user!*@*. (#0000653)
The bug was we forgot to return wheter a parameter was eaten or not (returned always 0).
2003-01-24 23:37:33 +00:00
Bram Matthys 1dfdeb42f0 Temporarely added user-already-in-chan check in m_sjoin to help tracing user-twice-in-chan bug
which has been reported by two users (#0000594). About speed: I think it'll just use a few usec
so that's <100ms for X.000 users ;P.
2003-01-24 22:47:37 +00:00
Bram Matthys 3fc6734e65 Fixed minor bug in resolving of IPv4 names if IPv6 is enabled (#0000659).
We were doing: T_AAAA, if that fails then T_A. But in that case when a host
has both T_A and T_AAAA entries, the reverse lookup will fail for ipv4.
Now using T_ANY to fetch both T_A and T_AAAA addresses at once.
2003-01-24 20:34:11 +00:00
Bram Matthys 73810a4f82 Cleanups in badwords.c: removed duplicate code, now one big stripbadwords() function which
is called by stripbadwords_channel()/stripbadwords_message().
2003-01-24 02:49:41 +00:00
Bram Matthys e8d8a27cbc Added a much faster (>100x) badwords replace routine which will be used for easy replaces like
"blah", "*blah", "blah*" and "*blah*"... otherwise regexp is used. Disabled by default until
it's really finished and fully tested.
2003-01-24 02:18:33 +00:00
Bram Matthys 3a546fb04c Cleanup of m_userhost / my previous patch screwed things up ;P 2003-01-23 21:05:44 +00:00
Bram Matthys 358a00e90c Fixed some formatting issues. 2003-01-23 20:47:06 +00:00
Bram Matthys e333890b0f Fixed SSL session cache bug, symptoms were: stunnel can only connect the 1st time,
reconnecting etc fails with (in stunnel log) "SSL_connect: Peer suddenly disconnected".
This happends with OpenSSL 0.9.7.
2003-01-23 17:03:53 +00:00
Bram Matthys 78dc344785 Added much better checking for weird characters in hostnames.
We were doing "deny known bad characters" instead of "only allow known good characters", this was REALLY bad...
This patch limits hostnames to alphanumeric, '-', '_' and '.'.
2003-01-22 19:37:42 +00:00
Bram Matthys a79e26deff Fixed major (?) bug in resolver (affects ipv4 only), could cause long stalls / crashes.
for (i = 0; &HE(cp)->h_addr_list[i]; i++) was used in ipv4 mode, but should be
without the &... this caused some stalls (like 11 seconds) at my machine because the
loop was executing >1 million times (I don't understand why it didnt crash however).
2003-01-21 23:01:44 +00:00
Bram Matthys 735b011f3e (added to Changelog this time:) Added win32 compile instructions in doc/compiling_win32.txt 2003-01-21 22:47:45 +00:00
Bram Matthys e9b96afef8 Added win32 compile instructions in doc/compiling_win32.txt. 2003-01-21 22:46:48 +00:00
Bram Matthys d932cf0220 Fixed bug in channel mode +L #aaaaaaaaa<etcetc>. 2003-01-20 21:17:24 +00:00
Bram Matthys e71f39ea62 Fixed bug in non-working channel mode +H. There was a #ifdef ENABLE_INVISOPER
block around +H checking, but this #ifdef is only at this place and is also
never defined... Removed #ifdef because that's now in module...
2003-01-20 20:48:59 +00:00
Bram Matthys d944643010 Minor documentation fixes reported by Jollino (LUSERS, OFLAGS mode h) 2003-01-20 20:00:57 +00:00
Bram Matthys 1e51112790 Fixed win32 compile error because of report_error patch (oops, lalala :P).
Added P_ECONNABORTED and P_ECONNRESET.
2003-01-20 19:33:18 +00:00
stskeeps 56a0d8adf7 removed ircdreg 2003-01-20 16:08:35 +00:00
Bram Matthys 6a9579930a Fixed crash when +x is in modes-on-oper, user has -x and then /oper's. 2003-01-20 15:21:38 +00:00
Bram Matthys 9c31edf6e7 Made netadmins able to see users in all chans by using /who #chan or /names #chan. 2003-01-20 03:44:13 +00:00
Bram Matthys d7e7562626 I love ugly code!! I fixed an out of bound memory read a week ago in the
time function, however my fix was wrong / usually the out of bounds memory
reading went well so the function worked... now it didn't... patched ;P.
Some examples: 4s = 8, 1m = 61, 1h = 3601, 1h2m = 3722.
2003-01-20 01:38:59 +00:00
Bram Matthys 2a266829e3 Fixed SVSMODE bug in handling of non-qaohvbe modes. (#0000631)
*parabuf wasn't set to '\0' so previous modes were applied in some cases...
2003-01-20 00:46:27 +00:00
Bram Matthys 86021bdd9b Fixed shun: ADMIN and PONG are allowed if shunned, also manually removing
a SHUN from a user affects connected clients immediatly. Moved ~45 lines of
code to a seperate function for this.
2003-01-20 00:30:51 +00:00
Bram Matthys 87b22510c0 Fixed some of the FreeBSD warnings, like 'Cannot accept connections' and
'getsockopt(IP_OPTIONS)' reported in bug #0000616. There's still one around
somewhere, but it's a start. Also modified report_error so it reports both
the socket error AND the system error if they are different.
2003-01-19 23:46:16 +00:00
Bram Matthys 1c1f135f8d useless change: &me.name -> me.name in my previous patch, doesn't change
anything but it was annoying my eye ;P.
2003-01-19 23:29:22 +00:00
Bram Matthys 1d0936d07a Added RPL_ENDOFSTATS after tkl_stats output if called by /kline, /gline, etc
without parameters.
2003-01-19 22:58:07 +00:00
Bram Matthys 22f60e47c8 Fixed compile error in src/random.c at win32. Also added some nice #ifdef's
so we don't get unused var warnings in non-SSL mode...
2003-01-19 22:41:03 +00:00
Bram Matthys 5e2cf7b90f Fixed compile error in makefile.win32.ssl (added src/random.c) 2003-01-19 22:29:02 +00:00
Bram Matthys d5faf64581 Added message if '/helpop' is used without parameters by helpops. (dont panic!) 2003-01-19 21:26:34 +00:00
Bram Matthys f97b537b09 Fix for missing mode 'S' in 005 CHANMODES= message 2003-01-19 20:30:30 +00:00
Bram Matthys 193265ef69 Added access level required for chmodes, documented +G, changed USERCMDS layout 2003-01-19 20:21:35 +00:00
Bram Matthys 0c74c5cd11 Fixed example.conf set::dns::retries, 2s -> 2 2003-01-19 20:05:57 +00:00
cvs2hg 5ad7468aa1 fixup commit for tag 'unreal3_2_beta13' 2003-01-18 09:01:53 +00:00
stskeeps c5991fc8da fixed crypt on win32 2003-01-18 09:01:52 +00:00
stskeeps a05c61042b BAH FUCK 2003-01-17 22:20:48 +00:00
stskeeps e42a63972e ** beta14 released ** 2003-01-17 22:03:13 +00:00
stskeeps e5dc32a0d0 - Compile fixes regarding throttling
- Fix when you use another make than make
2003-01-17 20:32:49 +00:00
stskeeps 5289be076a - Preperations for beta14. Will be a recommended upgrade 2003-01-17 17:10:11 +00:00
luke f83daf4607 stupidity 2003-01-17 15:23:51 +00:00
codemastr eb1e4f000b Resolver bug fix 2003-01-16 22:10:06 +00:00
stskeeps 381350618f - One more fix to the above 2003-01-16 15:19:25 +00:00
stskeeps 1aabd39d27 - Fixed a bug where helpop would pass on a null pointer 2003-01-16 13:45:26 +00:00
stskeeps ea2f1c6fc7 - Fixed a bug where helpop would pass on a null pointer if it was a remote
client (this needs more investigating, could someone find out how the fuck
  it can get a remote helpop that's blank anyhow?).
2003-01-16 06:19:12 +00:00
mcskaf 3ff374d811 We were writing a null to the log file when we reached max size. Bug #0000613 reported by AngryWolf 2003-01-15 23:16:15 +00:00
mcskaf 0349a1d1d8 We were writing a null to the log file when we reached max size. Bug #0000613 reported by AngryWolf 2003-01-15 23:10:13 +00:00
stskeeps 7601cbcf12 - Adding throttling, read config.h for more info. For the uneducated,
throttling is to reconnect way too fast repeatedly. Thanks to [Real] for
  the idea
2003-01-15 18:32:25 +00:00
codemastr c02033f3ca Fixed a bug when leaving off a parameter for a password config entry 2003-01-15 16:40:15 +00:00
codemastr 3095782cfd Various fixes 2003-01-14 21:25:04 +00:00
codemastr fed61efcdb Misc. fixes 2003-01-11 19:33:42 +00:00
mcskaf fe9dc6d3c4 Fixed bug 601 - ipport_seperate() used strtok() to separate ip:port but when
just :port was specified it skipped the leading : and assigned the port to ip
and null to the port causing the calling routine to seg fault.
2003-01-07 02:30:21 +00:00
codemastr 8523a7554b Fixed a random bug and added link::password-connect encryption error 2003-01-05 16:51:15 +00:00
codemastr d47e956c5b Fixed a bug in the empty channel fix 2003-01-05 01:28:23 +00:00
codemastr b455704e7f Added a patch by Syzop to increase randomness of the random numbers 2003-01-05 01:26:28 +00:00
luke 909c5843cb Fixed bug with whole bunch of users in an empty channel (codemastr found it) 2003-01-04 21:42:03 +00:00
codemastr 286115c256 Fixed some conf3 bugs 2003-01-03 17:44:02 +00:00
codemastr 91b9fa2281 Removed USE_LONGMODE 2003-01-03 17:05:58 +00:00
codemastr a123023350 Added the ability to specify port ranges 2003-01-02 20:49:44 +00:00
codemastr d7c59f9961 Fixed a few bugs 2003-01-02 19:32:58 +00:00
codemastr efa61e7ec0 Fixed a bug in the binary searching routines 2002-12-29 17:34:51 +00:00
codemastr 2270e37dca Added pretty_time_val 2002-12-20 22:09:38 +00:00
codemastr 31171c09b4 Fixed a bug where setting umode -o didn't set -h 2002-12-19 21:59:22 +00:00
codemastr 67b1118abb Added set::snomask-on-oper 2002-12-19 21:49:37 +00:00
griever 24cd9ff5ef TKL fix and shit 2002-12-19 20:40:40 +00:00
mcskaf a94f2e208f Fix bug 552 2002-12-17 20:08:00 +00:00
mcskaf ab66342581 Fix bug 552 2002-12-17 19:56:36 +00:00
mcskaf c3f23435d5 Detect include file error. 2002-12-17 19:53:41 +00:00
stskeeps e1b22ca767 bah src/umodes.c 2002-12-16 13:36:50 +00:00
stskeeps 3c99989a07 fuck it all 2002-12-16 13:36:18 +00:00
codemastr 0fc5b50258 Docs updates 2002-12-15 16:30:47 +00:00
codemastr 5196094ca7 Added chmode +u to help.conf 2002-12-15 01:43:16 +00:00
codemastr 140eed6b4c Fixed a win32 bug with showing included files on the config menu 2002-12-15 01:35:07 +00:00
codemastr f5e278fac7 Fixed a +/-f bug when using values > 65535. Now limits to 500:500 2002-12-14 18:22:20 +00:00
codemastr 5a4e05a429 Fixed a crash if oper::flags is missing 2002-12-14 18:14:59 +00:00
codemastr 7c0bc3f0be Fixed a tsctl and a make install bug 2002-12-14 17:29:39 +00:00
codemastr a15d1337c0 ... 2002-12-13 22:35:07 +00:00
codemastr 696533a163 Rewrote some +G code 2002-12-13 22:06:17 +00:00
codemastr ef5f1c354b Added set::htm for htm options 2002-12-11 17:35:18 +00:00
stskeeps a76476371e *** beta13 released *** 2002-12-09 20:02:25 +00:00
stskeeps 04be404c6c - Changed base version name to Unreal3.2, instead of Unreal3.2-Selene
- Made McSkaf part of core coder team
2002-12-09 19:54:35 +00:00
mcskaf 997cb99faf Changed DWORD to u_int32_t. 2002-12-08 20:32:56 +00:00
mcskaf c609e0bbb1 IRCCreateThreadEx() was causing exception on Windows. 2002-12-08 20:09:27 +00:00
codemastr 2783e635b6 Fixed a typo 2002-12-08 18:44:30 +00:00
codemastr 5f9285e139 Updated version number in win32 installer 2002-12-05 20:09:27 +00:00
cvs2hg 2eef007c8a fixup commit for tag 'unreal3_2_beta13_rc1' 2002-12-05 19:51:26 +00:00
stskeeps d2e87700c3 - Added back the commands check that didn't get added in conf3 (lamers
beware)
2002-12-05 19:51:25 +00:00
codemastr 1c74c7458f docs updates 2002-12-05 16:54:05 +00:00
mcskaf 9102ebacf7 Use P_EWORKING in connect(). 2002-12-01 19:44:12 +00:00
mcskaf 2d9186c7a3 Fixed a dumb mistake. 2002-12-01 19:13:47 +00:00
mcskaf c28b3db527 Changed connect() success/fail checking in scanners for all OSs. 2002-12-01 19:10:26 +00:00
mcskaf 28fbd0bafe Added P_EWORKING define. Indicates a socket call is in progress on all OSs. 2002-12-01 18:53:06 +00:00
codemastr 2182c90be5 Release preparations 2002-12-01 18:23:11 +00:00
codemastr 6c167e3590 Documentation updates and misc. fixes 2002-12-01 17:50:08 +00:00
mcskaf b148656164 Change resolver to use our IRCMutex macros. 2002-12-01 17:42:56 +00:00
codemastr 5d31e2ac68 Changed the thread API to fix some win32 crashes 2002-12-01 17:11:34 +00:00
codemastr 1a64c71e7f Added a patch for logging vhosts in connect/disconnect notices 2002-11-30 21:11:05 +00:00
codemastr 48fb658531 Removed m_kline.c and m_zline.c they are now implimented as part of m_tkl.c 2002-11-30 21:01:12 +00:00
codemastr 211e930a1e Fixed an oper count bug with SVS2MODE 2002-11-30 19:22:43 +00:00
stskeeps f7d349e60a - Changed .SICI to point to cacert.org instead (patch by evilbunny) 2002-11-29 07:23:04 +00:00
stskeeps a5547b65f4 - Made config actually add listeners when rehashing (...) also you can now
change listener flags using /rehash
2002-11-28 17:34:19 +00:00
codemastr d21fc4bcca Fixed some logical module rehash problems 2002-11-28 16:21:05 +00:00
mcskaf b39615e26a Fixed doc: Changed set::scan::ban-time to set::scan::bantime. Added set::scan::timeout. 2002-11-27 22:05:59 +00:00
mcskaf a3c6b57a70 Changed set::scan::ban-time to set::scan::bantime. Added set::scan::timeout. 2002-11-27 22:03:47 +00:00
mcskaf ebed8efde7 Fixed typos in set::scan::bind-ip and set::scan::ban-time 2002-11-27 21:05:20 +00:00
codemastr 84fe71337e Docs fixes 2002-11-27 20:45:42 +00:00
stskeeps 8bf8eff75a - Removed makeconf 2002-11-27 20:40:30 +00:00
codemastr 9dd4b699b8 Cleaned up module code 2002-11-27 17:40:28 +00:00
codemastr 24eac63abd Changed the conf3 return values 2002-11-27 17:19:33 +00:00
stskeeps 4b738b28e2 - Small typo in config validation found by ins4ne 2002-11-27 15:23:35 +00:00
stskeeps c43a4d35c4 stuff 2002-11-27 14:55:47 +00:00
stskeeps fcfbf1cdaf serious who bug 2002-11-27 14:53:51 +00:00
codemastr dd2bf9e926 Fixed a bug where chmode +q users could not kick chmode +a users 2002-11-26 23:07:13 +00:00
codemastr 6750bca21c ... 2002-11-26 20:23:23 +00:00
codemastr 736474aa5f Finished module rehashing 2002-11-26 20:15:17 +00:00
codemastr 0ba49b9c4e Made modules rehash under dynamic linking 2002-11-26 19:52:02 +00:00
codemastr b87f79a271 Made alias{}'s get rehashed 2002-11-24 23:32:25 +00:00
mcskaf a21df7fcf5 Fixed sendto_ functions to use slot number as index into sentalong array. 2002-11-23 00:09:48 +00:00
codemastr 7ce89318f8 conf3 fix 2002-11-22 23:25:49 +00:00
mcskaf 3d945f5b1d Fixed sendto_ functions to use slot number as index into sentalong array. 2002-11-22 23:25:20 +00:00
mcskaf eba7f5ffe0 Fixed sendto_ functions to use slot number as index into sentalong array. 2002-11-22 23:07:35 +00:00
codemastr 387565717f Converted deny {} to conf3 2002-11-22 22:25:19 +00:00
codemastr 6a65111f12 Fixed several conf3 errors 2002-11-22 21:46:31 +00:00
stskeeps cd83b8a845 - Fixed win32 compile error with default: ; 2002-11-22 21:04:40 +00:00
stskeeps e4bd382898 - /rehash for conf3 (that works) :) 2002-11-22 16:16:33 +00:00
codemastr ce64bf6f6c Changes to the module config system 2002-11-18 20:04:36 +00:00
codemastr 594f8646d3 Made modules able to have config directives 2002-11-18 00:54:05 +00:00
codemastr e392d1435f Fixed a bug when set::help-channel is missing 2002-11-17 20:00:43 +00:00
codemastr d1e0d459c5 Added can_override oper flag 2002-11-17 17:31:30 +00:00
codemastr 1b17b5c0be Fixed a win32 debugger bug 2002-11-17 01:49:22 +00:00
codemastr 5e9107815e Added SVSLUSERS 2002-11-16 20:52:16 +00:00
codemastr 45590c3b5d Made alias {} work in conf3 and recoded the way aliases work somewhat 2002-11-08 21:26:44 +00:00
stskeeps 808acb8e57 - Finished up conf3, still needing some directives added but it sortof works. Rehash doesn't yet.
-  Fixed some idiotic lack of src/modules/Makefile.in changes for the sake of commands.so when
  /zline /kline etc was moved to a module
2002-11-05 19:25:21 +00:00
stskeeps f99caaa2bd Fixed alphabeticalising of named oper flags, added _conf/test_link 2002-11-05 13:52:44 +00:00
codemastr d75ffab485 Fixed some configure problems with gcc3 2002-11-02 20:32:47 +00:00
codemastr 16dd1804be Converted log and help to conf3 2002-11-02 17:24:54 +00:00
codemastr 85598d17ce Conf3 cleanups 2002-11-01 20:31:08 +00:00
codemastr b28ad5f76c Changed config flag parsers to use a binary search 2002-11-01 20:11:36 +00:00
codemastr 6dae920358 Made the main conf3 searching routine use a binary search 2002-10-27 20:31:02 +00:00
codemastr 9a280f3e14 Possible win32 resolver fix, conf3 fixes 2002-10-27 17:32:33 +00:00
stskeeps 402f031da1 bug 2002-10-26 21:42:36 +00:00
stskeeps 09bacf360e - Made CLIENT_FLOOD more customizable
- Fixed some conf3 compile errors and block-modded _*_tld
2002-10-26 19:55:24 +00:00
codemastr 6d77b60387 Added some additional NT Service options to the win32 installer 2002-10-26 19:20:52 +00:00
codemastr 1e23915986 Merged unrealinstssl.iss into unrealinst.iss 2002-10-25 17:37:53 +00:00
griever 391098a197 kline has been replaced with tkline 2002-10-24 15:58:44 +00:00
stskeeps 553c66eae6 . 2002-10-20 20:33:29 +00:00
stskeeps 34287cb733 f 2002-10-19 17:40:23 +00:00
stskeeps 6ad5b43fb5 - Fixed conf3 bug with _conf_except tkl 2002-10-19 17:37:52 +00:00
stskeeps 613c78924d conf3 2002-10-19 17:33:05 +00:00
cknight ab5c9b3a0a - Documentation - Corrected several HTML formating problems 2002-10-17 11:11:13 +00:00
cknight de97efbd21 - example.conf - Corrected incorrect set::services-services statment in alias block - reported by mcskaf (#0000401)
- Documentation - Corrected Spelling mistake in HTM mode - Reported by CoNfOuNd (#0000387)
- Documentation - Added coadmin to table of oper types - Reported by FrostByghte (#0000359)
2002-10-17 10:45:57 +00:00
cknight 479a6cf6c3 - Documentation - Updatet sec2.0 - list of Supported OS's for Win32 Version
- Documentation - Updated sec1.1 - Instructed to use bugs.unrealircd.org to report problems with docs
- Documentation - Updated misc hyperlinks - doc/unreal32docs.html
- Documentation - Updated sec3.31 - Added better description to the format we present set:: settings
- Documentation - Updated sec3.31 - Added more details to set directives
- Documentation - Updated sec3.25 - Added option vhost::swhois to section 3.25 Vhost block
- Documentation - Replaced text vair {} with <> to prevent confusion.
- Documentation - Documented that lusers now supports remote servers
- Documentation - Corrected vhost::from example as reported by joolz #329
- Documentation - Corrected set::scan:messages, currently listed as set::messages - as reported by joolz (#329)
- Documentation - Added channel mode t & description as reported by stfcs (#315)
2002-10-16 15:31:41 +00:00
codemastr 806701ac23 Scanner win32 fixes 2002-10-13 21:47:57 +00:00
codemastr 0a1a2e217f Fixed an htm bug with reporting no such server 2002-10-13 17:56:19 +00:00
codemastr 8d87ef6194 Added /lusers server.name support 2002-10-13 17:39:18 +00:00
codemastr 612751abde Fixed an samode bug 2002-10-13 17:15:29 +00:00
codemastr 1977439e27 Fixed another tkl bug 2002-10-05 00:27:22 +00:00
stskeeps 1c81b72a4f - Fixed crash bug in m_tkl_line 2002-10-04 18:35:40 +00:00
stskeeps 62b7acc6be dd 2002-09-28 14:28:14 +00:00
stskeeps 1d3c41ef75 Removed some IPv6 resolver specifics that seemed illogical (reference to Jollino's IPv6 crashes) 2002-09-28 12:47:59 +00:00
stskeeps bb6711691b - Fixed bug #0000342 reported by James LiGate about tokens leaking through from clients 2002-09-28 12:32:18 +00:00
stskeeps 379a8ccc3b Fixed bug with all TKL commands not accepting nicks anymore (#0000370 reported by Ravage) 2002-09-28 12:16:10 +00:00
stskeeps 979f96ca3a Fixed bug #0000371 reported by havlaz about an extra \n slipped in with the TKL notice 2002-09-28 11:59:01 +00:00
stskeeps 8f7455d423 - Fixed bug #0000377 reported by MorPheus where IPs of servers were shown in nick collision notices 2002-09-28 11:48:25 +00:00
stskeeps ce0ae3a46d - Fixed bug #0000372 reported by MorPheus where Killed (<everything-but-the-first-char-in-killer-letter-got-shown> (reason)) 2002-09-28 11:40:10 +00:00
stskeeps 4bc07b8789 +- Added set::ssl::options, with three options:
+    fail-if-no-clientcert   - If SSL client connects and doesn't provide a client certificate, abort connection immediately
+    verify-certificate      - Check the certificate's validity using X509 methods, check if we trust CA's, etc.
+                              It however does slip self signed certificates through UNLESS
+    no-self-signed          - Don't allow self-signed certificates through (requires verify-certificate)
+- Made conf parser mention if we make a link->options with CONNECT_SSL if we don't support SSL (and remove the CONNECT_SSL flag)
+- Made conf parser mention if we make a SSL listener and we don't support SSL
+- Added set::ssl::trusted-ca-file, if enabled, it will point the SSL stuff to use that file as trusted CA's (for verify-certificate)
+- Made conf _not_ bitch that it doesn't know set::ssl
+- Removed some leftover client certificate stuff
2002-09-28 11:02:05 +00:00
stskeeps 9d43770bd0 doc shit 2002-09-27 18:51:12 +00:00
stskeeps 282cc51768 - Changed auth method sslpubkey into sslclientcert, which means it will check the X509 certificate of the
user using X509_cmp. Also needing is some policy/conf setting to adjust if to reject invalid client certificates or whatever..
2002-09-27 16:08:03 +00:00
codemastr 519b491c1b Fixed a bug with /who -h 2002-09-20 20:06:33 +00:00
stskeeps c8c316c56d - Made channel keys be case sensitive 2002-09-07 09:26:45 +00:00
stskeeps 6926cca1bb - Added Syzop's various zero-terminate patches and fixes for crashes when
you send commands like JOIN from a server directly
2002-09-07 01:32:00 +00:00
codemastr 9f4f72d2af Now using unsigned chars 2002-09-02 15:30:03 +00:00
codemastr 13b2ebc773 ... 2002-09-01 18:55:19 +00:00
codemastr ff14d5d0bf Compile warning cleanups 2002-09-01 18:33:47 +00:00
codemastr 227563a13d removed some old win32 debugger debug code 2002-09-01 14:41:12 +00:00
stskeeps 6aa5b7a341 - Made the IRC_UID stuff more proper.. 2002-09-01 14:39:41 +00:00
stskeeps 9d35460488 bah 2002-09-01 09:27:23 +00:00
stskeeps e1872e1231 - Added Nugget's setuid patch 2002-08-31 16:30:29 +00:00
codemastr b5827fd1de Fixed some /who bugs 2002-08-31 15:33:05 +00:00
codemastr 528238f541 Fixed a bug in TKL that would allow *@* bans 2002-08-31 12:49:28 +00:00
codemastr 3ce3b10e04 Fixed a win32 editor bug with chars > 128 2002-08-28 20:50:09 +00:00
codemastr 478970ed36 Made alias {} use tokens where available 2002-08-28 17:40:17 +00:00
codemastr b89c6a8cd1 Added oper login to the 'is now an operator' notice 2002-08-28 12:12:21 +00:00
codemastr 12264cfa1b Fixed a bug with installed Unreal as a service under WinNT4 2002-08-28 12:06:23 +00:00
stskeeps a1e5a746e3 - A minor fix in SSL_is_inited stuff in s_bsd 2002-08-27 13:16:15 +00:00
stskeeps 4aff4a0376 - More SSL debugging stuff.. 2002-08-27 12:34:43 +00:00
stskeeps 9251a76f63 Added some more debugging stuff, made check_pings a little more readable 2002-08-27 05:04:30 +00:00
stskeeps a5809bba80 bah 2002-08-26 15:13:43 +00:00
stskeeps 9b597033ef bah 2002-08-26 15:10:19 +00:00
stskeeps a15ce8eb54 bah 2002-08-26 14:55:14 +00:00
stskeeps 012bad26c7 SSL debuggin stuff 2002-08-26 14:53:12 +00:00
stskeeps 709d9b87dd - Added a newline in dynconf.h 2002-08-26 10:16:44 +00:00
stskeeps 36e88f1364 - Fixed a problem with set::ssl::certificate and set::ssl::key that used
+  ->ce_varname instead of ->ce_vardata. Found by badSol
2002-08-26 01:02:29 +00:00
codemastr e1c7eead30 ... 2002-08-25 16:54:00 +00:00
codemastr cebae72da4 Fixed a win32 password encryption bug in NT service mode 2002-08-25 16:35:17 +00:00
codemastr 1f2e1a8bcf Added vhost::swhois 2002-08-25 16:10:09 +00:00
cvs2hg a44e23dcfe fixup commit for tag 'unreal3_2_beta12_fixes' 2002-08-25 14:09:01 +00:00
stskeeps 065b111e22 - Compile fix regarding above fix 2002-08-25 14:09:00 +00:00
stskeeps f62b8718aa Fixed problem where SSL handshakes weren't unknown--'ed on remove reported
by Alzirr
2002-08-25 12:57:45 +00:00
cknight f363332faa - Updated docs to include ripemd-160 encryption option 2002-08-25 11:48:04 +00:00
cknight 30efe19cbd - Added set::static-quit to unreal32docs.html 2002-08-25 11:38:27 +00:00
stskeeps 63ece5f2bc - Made so every join is a SJOIN to prevent TS0 problems. Read config.h to disable this if it causes problems 2002-08-25 05:04:58 +00:00
stskeeps 154860ee3a TOPIC_NICK_IS_NUHOST 2002-08-25 04:49:37 +00:00
stskeeps 5785860f71 - Make makecert.bat and encpem.bat show their use in titlebar when run 2002-08-25 04:33:16 +00:00
stskeeps e1b478909e - Made set::static-quit - check doc/example.conf for documentation - but
this allows the admin to decide a standard custom quit for users. so they
  won't be able to make their own quits. This affects set::prefix-quit and
  ANTI_SPAM_QUIT_TIME - it simply replaces it with the message if enabled
2002-08-25 04:26:45 +00:00
stskeeps 21d8c88e2c - Made standard-threads default, and made a Config option if to use FSU
pthreads or not
2002-08-25 03:03:11 +00:00
stskeeps a6776a30a2 - Removed ssl.rnd as it was not supposed to be provided by CVS 2002-08-25 02:08:13 +00:00
cknight 9074722d4b - Corrected release date in doc/unreal32docs.html 2002-08-24 19:21:56 +00:00
cknight 96f0f8274a *** empty log message *** 2002-08-24 18:31:59 +00:00
cknight b4ef73ca7c *** empty log message *** 2002-08-24 16:25:53 +00:00
cknight afc784ddb4 - - Reformated unreal32docs.html in something other than MS Word. 93k now! 2002-08-24 16:20:09 +00:00
luke f851f61b15 +O/+A ban implementation 2002-08-24 15:54:37 +00:00
cknight 751e14cbe2 - Made minor changes to help.conf 2002-08-24 15:48:52 +00:00
stskeeps 5fafec8555 .k
CVS
: ----------------------------------------------------------------------
2002-08-24 14:40:42 +00:00
stskeeps aff113dab8 - Added src/win32/gplplusssl.rtf for ssl-install script to show during
install in license - GPL + the notes from openssl
2002-08-24 13:13:21 +00:00
stskeeps a6c1bdacfb win32 install script changes to deal with version switchover 2002-08-24 12:24:27 +00:00
stskeeps ffbddddb8c Some install script win32 changes to deal with unreal32docs.html 2002-08-24 10:17:19 +00:00
codemastr 477ae217ab Made it so the win32 version of Unreal can't be reinstalled/uninstalled while it is currently running 2002-08-24 01:01:30 +00:00
codemastr 9fbe091509 Made /die exit nicely in service mode 2002-08-23 22:40:36 +00:00
codemastr b2efdf1fe4 unreal service utility changes and win32 resolver fixes 2002-08-23 21:26:02 +00:00
stskeeps 0f9fd774f4 - Changed version to beta12 2002-08-23 17:44:27 +00:00
stskeeps f2fd20d29d - Stripped the docs. 100kb down, but a reformat in something other than MS
word would really really help.
2002-08-23 17:33:25 +00:00
codemastr a29a242639 Made it so clicking wircd.exe when in NT service mode still starts Unreal 2002-08-23 16:48:41 +00:00
codemastr 8550484118 Fixed a set {} memory leak at /rehash 2002-08-22 16:21:40 +00:00
codemastr be5de25086 Recoded /helpop to work correctly 2002-08-21 20:35:22 +00:00
codemastr e898770e64 Fixed a host cloaking bug involving non-dot hosts 2002-08-21 17:23:17 +00:00
codemastr 9950600bcd ... 2002-08-21 17:16:28 +00:00
codemastr 96f407770c Fixed a /invite bug where remote invites didn't work 2002-08-21 17:12:51 +00:00
stskeeps 275d304475 - Added set::ssl::certificate and set::ssl::key to point to where we got the certificat
PEM and the private key PEM
2002-08-21 17:10:46 +00:00
codemastr 8c42cec638 Fixed a typo in /akill and /rakill 2002-08-20 20:20:03 +00:00
luke 18d25aa3e6 grammar bug + halfop kicking halfop bug 2002-08-20 18:58:11 +00:00
stskeeps 7c386cfe5a - FAKE_LAG_FOR_LOCOPS define added in config.h - enables local ops to
override RFC1459 flood control
2002-08-20 18:01:41 +00:00
griever 593b611a11 Added o and O flags for oper override verify and oper override. 2002-08-20 15:46:24 +00:00
griever f8bf69302c Removed LEAST_IDLE 2002-08-20 15:13:05 +00:00
codemastr 20b250b98c Removed .NEW_CONFIG references from the win32 installer scripts 2002-08-20 00:00:28 +00:00
codemastr fbbf54bd9d Fixed a bug where set {} info wasn't cleared out at rehash 2002-08-19 22:47:57 +00:00
codemastr b2752c2ffb Changed cr/lf to just lf in doc/unreal32docs.html 2002-08-19 18:56:46 +00:00
codemastr e72710e0e8 Fixed an oper::swhois bug where the swhois was not propagated 2002-08-19 17:55:03 +00:00
cknight 13a7293f34 - Removed old docs and added new docs to Makefile.in
- Updated .CHANGES.NEW with new version # and link to docs
- Updated .RELEASE.NOTES with new version # and link to docs
- Added NEW doc/unreal32docs.html Docs
2002-08-19 00:42:15 +00:00
cknight f6aa7cdcf6 - Removed ./Setup - No longer supported (read the docs!)
- Removed .NEW_CONFIG - No longer needed
- Removed INSTALL - Refer to NEW docs Unreal32docs.html
- Removed doc/commands.txt - Refer to NEW docs Unreal32docs.html
- Removed doc/faq - Refer to NEW docs Unreal32docs.html
- Removed doc/conf.doc - Refer to NEW Docs Unreal32docs.html
- Removed doc/unrealircd.doc - Refer to NEW docs Unreal32docs.html
- Removed doc/Elite.Changes - Out Dated
- Removed doc/services-install-guide - Refer to NEW docs Unreal32docs.html
- Modfied Unreal.nfo to include ref. to new docs
2002-08-18 21:33:45 +00:00
codemastr cc5258fe8a Added EGD support 2002-08-18 20:28:33 +00:00
cknight e73cb3dac5 Removed /doc/faq not needed included in new docset 2002-08-18 19:21:58 +00:00
stskeeps 330d102bad Fixed some installer problems wrt SSL compile, and added makefile.win32.ssl 2002-08-18 11:16:42 +00:00
stskeeps a1f707ef63 - Added some somewhat path specifics to unrealinstssl.iss 2002-08-18 10:42:49 +00:00
stskeeps 2d074be8fc - Removed GNU malloc totally from the FSU pthreads distribution 2002-08-18 10:33:17 +00:00
codemastr 90fff06b2b Fixed a win32 installer problem with dbghelp.dll installation 2002-08-17 00:57:16 +00:00
stskeeps 566e03e5b2 - Fixed problem with DEBUG ERROR when SSL handshaking (reported by some people) 2002-08-14 20:47:07 +00:00
codemastr 8f883d65b7 Fixed a win32 ssl installer problem 2002-08-14 17:42:51 +00:00
stskeeps 68794a3ffc - Fixed problem where the parameters of the RAKILL aliasing to TKL were switched,
and a missing return for normal users.
2002-08-13 17:41:00 +00:00
codemastr 1fa5ed84e6 Fixed invite 2002-08-12 18:16:01 +00:00
codemastr efb54b62f3 Fixed a bug where MAXCONNECTIONS is shown as 0 when it is too high 2002-08-12 17:51:49 +00:00
stskeeps 6901d27508 - Module load fix for a minor fuckup in SQLINE/UNSQLINE 2002-08-12 17:03:03 +00:00
stskeeps 7f3096ee6b - Allowed SQLINE/UNSQLINE to come from a U:lined client as well 2002-08-12 15:45:46 +00:00
stskeeps 6b51c2d53b .. Fixed a problem with normal unix source compiling as codemastr had
#ifdef _WIN32 'ed find_match_server, causing me to believe it was gone.
2002-08-12 15:18:32 +00:00
codemastr 272b7dd892 ... 2002-08-11 00:40:24 +00:00
codemastr 43e470f898 make install fix 2002-08-11 00:38:03 +00:00
stskeeps 9eede48af4 - Added note about Linux and FD_SETSIZE > 1024 in release notes
- Made IRCd bitch properly when MAXCONNECTIONS>FD_SETSIZE
2002-08-10 17:49:52 +00:00
stskeeps 41a69863d6 bay 2002-08-10 17:08:35 +00:00
stskeeps 07eb941a58 arg 2002-08-10 16:51:44 +00:00
stskeeps f8f829840d FD_SETSIZE crap 2002-08-10 15:40:08 +00:00
codemastr bb95bdfa7c Removed some useless code and added more modules 2002-08-09 20:26:04 +00:00
codemastr 1aa70c7b77 Removed src/s_unreal.c 2002-08-09 18:21:59 +00:00
codemastr 333499a98c Win32 installer 2002-08-07 21:35:51 +00:00
cvs2hg c51b8fe5dd fixup commit for tag 'unreal3_2_beta11' 2002-08-07 21:10:50 +00:00
stskeeps 7af962ecf7 SSL fixes 2002-08-07 21:10:49 +00:00
stskeeps 133ba46362 Operoverride_verify stuff. 2002-08-07 20:52:51 +00:00
luke 608963e031 blah 2002-08-07 20:40:49 +00:00
luke 081b1cd12e sts sucks with grammar 2002-08-07 18:44:45 +00:00
stskeeps 7c4f43b36e --CVS: ---------------------------------------------------------------------- 2002-08-07 17:28:23 +00:00
stskeeps 1db6a86254 - Cleaned out Credits (i'll fix the web part of it later), made doug lea malloc default
+  on Linux FSU Pthread installs. (When we got a better way, we will have full doug lea malloc..)
2002-08-07 17:23:52 +00:00
codemastr 6096b9844e Removed some useless things in include/config.h 2002-08-06 16:28:25 +00:00
luke 85fa5c5bd9 Updated config.h for operoverride_verify 2002-08-06 13:59:58 +00:00
codemastr 6b44a0d643 .RELEASE.NOTES change 2002-08-06 01:26:51 +00:00
codemastr 80d837fa8b Removed support for SSLv2 2002-08-05 17:54:52 +00:00
stskeeps 31d2224b2c - Made +x send out a SETHOST to VHP servers, requested by PreZ@DarkerNet 2002-08-04 08:41:55 +00:00
stskeeps b4f0d0fc9d - Compile error fix regarding version.h 2002-08-03 20:20:14 +00:00
stskeeps 8236faeaf6 Removed doc/Etiquette 2002-08-03 20:13:37 +00:00
stskeeps bf1ccab9a9 +- Removed doc/features.txt, doc/unrealircd.conf.txt, include/relinfo.h,
+  include/stamp.h, src/buildm4, src/chkconf.c, src/conftool.c
2002-08-03 20:12:35 +00:00
stskeeps c2b48d3ce4 - Fixed SSL compile error wrt to /trace 2002-08-03 19:01:26 +00:00
codemastr ba26cc59a9 updated .RELEASE.NOTES 2002-08-03 18:45:51 +00:00
codemastr 6e076ba67b installer fixes and version number change 2002-08-03 18:31:11 +00:00
stskeeps f99d6689ca RELEASENOTES stuff 2002-08-03 18:24:29 +00:00
stskeeps 66eb6fa848 SSL stuff 2002-08-03 16:10:25 +00:00
stskeeps 959c5b0188 Added some OpenSSL version showing 2002-08-03 13:47:23 +00:00
stskeeps 0c730e8931 bah 2002-08-03 11:52:01 +00:00
stskeeps 7d7d4aafca fix 2002-08-03 11:49:37 +00:00
stskeeps 385d9f3ada - SSL compile error fix in s_bsd.c 2002-08-03 11:25:40 +00:00
stskeeps ff4bc60486 Fixed SSL linking, again.. 2002-08-03 11:09:20 +00:00
ejb 7bb73b5e6f - send +f and +L correctly in CHANMODES 005. 2002-08-03 08:53:41 +00:00
codemastr 4897441259 Added some technical documentation 2002-08-02 22:35:20 +00:00
codemastr dc27e6470d Fixed some SJ3 bugs that could cause desync 2002-08-02 20:40:09 +00:00
stskeeps 4d410f5982 - Seemingily we can't do SSLv3 only for ctx_server? 2002-08-02 11:54:03 +00:00
stskeeps c9be3fbac8 +- Fixed some SSL errors. read() returns -1 on error, so ircd_SSL_write and
+  ircd_SSL_read must emulate the same. codemastr: could you check what the
+  win32 equiviant of EIO is? I don't think my WSAEIO or whatever I called it
+  in sys.h is correct.
2002-08-02 11:45:31 +00:00
stskeeps 51539ee85b - Fixed some compile errors found by Zerwas and fixed some implementation problems of
the not able to set +z when there's non +z users (ULines not counted) in channel
2002-08-02 09:22:58 +00:00
luke f448495e3a Made notices pretty 2002-08-01 23:15:12 +00:00
luke f45917c16c New operoverride system...hope it works 2002-08-01 19:53:30 +00:00
luke b22f4c890b fixed modebuf, parabuf sizes 2002-08-01 17:56:54 +00:00
stskeeps 9e205fe3d5 - Made the win32 installer have the option of installing as a service under NT and fixed a
+  shortcut bug
+- Fixed sptr->user->realhost becoming lowercase upon a +x
+- Fixed +bbbbb lots of crap desynch bug
+- Fixed OperOverride snotice bugs with halfop
+- Standardized OperOverride notices
2002-08-01 16:39:05 +00:00
stskeeps ba60adb833 fixed no nssl compile error 2002-07-25 18:35:48 +00:00
stskeeps c0af661c77 More SSL horror and fixed a missing , in m_who 2002-07-24 17:59:26 +00:00
codemastr 54ed370fb3 Fixed a /who hop count bug 2002-07-24 17:49:39 +00:00
codemastr 5b32996538 Some config changes and documentation updates 2002-07-24 17:00:37 +00:00
stskeeps 5af8478d67 moo 2002-07-24 10:22:22 +00:00
stskeeps 2336498e9d blah 2002-07-24 10:11:35 +00:00
stskeeps d7c8623438 . 2002-07-24 10:00:17 +00:00
stskeeps 4e84c85ceb - Added ircd/safe_SSL_read/write from bahamut+inet6/azzuranet. This can be done much nic
when newio is done.
2002-07-23 19:04:18 +00:00
stskeeps 775f3fe272 Fixed some ./configure errors 2002-07-23 17:55:02 +00:00
stskeeps 8aabac59e9 Credits changes 2002-07-23 16:12:16 +00:00
stskeeps 4f1345c350 Removed mutex.c 2002-07-23 15:35:39 +00:00
stskeeps f69335e62b - Made ./configure check if it has parameters, and error if it don't. 2002-07-23 13:11:52 +00:00
stskeeps 13f23e478d - Changed ./update to use update.unrealircd.com 2002-07-23 12:45:58 +00:00
stskeeps c4908cb4fd Added some release notes with regards to scanners 2002-07-23 12:33:44 +00:00
stskeeps f19ebceee6 Fixed a silly bug with regards to matching against compressed IPs in link {} checking 2002-07-22 20:39:58 +00:00
stskeeps f0564193ba - Added a #ifdef _WIN32 for extern BOOL IsService; in ircd.c that made compile break
on non WIN32 systems
- Depricated AKILL/RAKILL and made them alias to TKL G +/- - for normal users they
  just reply that the commands are depricated. Server compatiblity is maintained.
  Eventually it will just be removed. Thank god for modules.
2002-07-22 20:33:49 +00:00
codemastr 36e4b65c45 Made the win32 uninstaller remove dbghelp.dll if it was installed 2002-07-22 00:50:49 +00:00
codemastr a1456aa107 Added an installer script to generate the SSL win32 version 2002-07-21 21:40:24 +00:00
codemastr a799e48f82 Removed StackTrace and implimented a home-grown debugger for win32 2002-07-21 21:31:44 +00:00
codemastr dce6edf333 Removed a TechAdmin reference in makeconf 2002-07-19 20:26:03 +00:00
codemastr 33403f2c3c Added an installer for win32 2002-07-19 18:15:53 +00:00
codemastr ec47a030fb Added WinNT Service Support 2002-07-19 17:31:51 +00:00
luke 02d7d80eb6 Secure channel only (+z) ERR_BANNEDFROMCHAN fix 2002-07-19 00:27:48 +00:00
stskeeps 1dbd3b42d5 - Fixed compile problem with non-glob/win32 systems (sunos 4.1) found by rshurr 2002-07-18 18:05:18 +00:00
luke 6336f7706f Added s_join fix to changes 2002-07-17 16:51:49 +00:00
luke 2fa495de1f Added self to /info 2002-07-17 16:49:31 +00:00
luke 7003df9aaf m_sjoin bugfix to resolve banlist problems 2002-07-17 16:42:11 +00:00
codemastr a0d6f168eb Fixed a makeconf bug that would make it not work after make install in some cases 2002-07-13 17:39:26 +00:00
codemastr 3c11cbb999 Fixed an oper bug where locops didn't get a hidden host 2002-07-13 16:56:01 +00:00
codemastr c5572fa6d5 Fixed a +sp bug 2002-07-12 18:00:45 +00:00
codemastr 032b8c523c ... 2002-07-12 15:51:33 +00:00
codemastr 188fa47e73 Fixed an alias {} prefix bug 2002-07-12 00:52:00 +00:00
stskeeps a1a299b9ff - Added extras/channeldumper.c 2002-07-03 11:25:41 +00:00
codemastr fdfdbd993e Added MD5 and SHA1 encryption to the win32 version 2002-07-01 21:09:01 +00:00
codemastr e81ca7b87c Added support for RIPEMD-160 encryption of passwords 2002-07-01 16:32:15 +00:00
codemastr 65729501ed More WinXP IPv6 fixes 2002-06-30 16:03:38 +00:00
codemastr 6353f10f82 Started WinXP IPv6 2002-06-29 23:28:14 +00:00
codemastr 305d71e552 Removed some obsolete docs 2002-06-29 23:25:10 +00:00
codemastr 17eb4e57d1 Updated INSTALL 2002-06-22 15:39:15 +00:00
codemastr 15e00b6dff made set::scan::bind-ip work in win32 and added AWAYLEN= token to 005 2002-06-22 00:43:22 +00:00
stskeeps 110c1b4fe4 - Fixed minor problem with former patch 2002-06-21 10:41:46 +00:00
stskeeps 7bef381cc6 - Added set::scan::bind-ip, set::scan::message, on request of RaYmAn, documented
in example.conf
2002-06-21 10:23:16 +00:00
ejb f38f758639 - Added /who +R which shows real host to opers. 2002-06-20 19:49:44 +00:00
ejb 539f218fce - Fix a minor stupid in m_quit.c. 2002-06-19 03:50:53 +00:00
codemastr 6282bc7180 more count bug fixes 2002-06-19 00:06:51 +00:00
codemastr 7b39825bb1 Fixed an oper count bug 2002-06-18 23:44:43 +00:00
codemastr cedb574f89 Fixed a bug that could cause an incorrect oper count 2002-06-18 17:07:13 +00:00
codemastr 2b769d576d Updated install to tell the user to use make install 2002-06-18 16:27:06 +00:00
ejb 5d9a49587c - couple of updates to INSTALL. 2002-06-17 20:45:05 +00:00
ejb 6466d1ed3f - Changed m_quit.c slightly, removed a redundant strlen, made prefix-quit of
"no" not use one at all, since this is in example.conf and is sensicle..
2002-06-17 03:42:25 +00:00
ejb 145d3dfb7e - Rewrote m_who.c from scratch. It's slightly different, help.conf explains exactly how. 2002-06-17 03:00:37 +00:00
codemastr 8dd7b3efee Documentation changes 2002-06-16 20:39:22 +00:00
ejb d27f817403 - Added myself to s_info.c:m_info(). 2002-06-16 19:48:02 +00:00
stskeeps 2d2dcbd93a moo 2002-06-15 20:40:56 +00:00
stskeeps b5ae2f7fc8 crack 2002-06-15 20:12:13 +00:00
stskeeps ed34721f16 Failsafe 2002-06-15 19:46:55 +00:00
codemastr a92c041b88 ... 2002-06-09 22:43:59 +00:00
stskeeps 4761f302f6 Included larne's /who patch, adding a multitude of symbols? :P 2002-06-08 19:53:54 +00:00
codemastr b59cead0b2 Fixed a /who bug where + wasn't displayed for voices 2002-06-07 23:40:38 +00:00
codemastr 560155275b Fixed a win32 bug where the tray config menu didn't display anything 2002-06-07 23:29:11 +00:00
codemastr 8694c3ffbe Converted the status window to a modeless dialog 2002-06-07 19:47:30 +00:00
codemastr 562397aa87 Fixed a hidehost bug where ABC.com would generate a different key than abc.com 2002-06-07 16:28:02 +00:00
codemastr 6f5590934f Made module load failure non fatal 2002-06-07 16:14:06 +00:00
codemastr 6fd5101305 Fixed a module bug when there is an include between a module-config-directive and the loadmodule 2002-06-06 21:42:54 +00:00
codemastr 9d1c5c2ceb Fixed a scanner bug causing it to never timeout 2002-06-06 21:31:32 +00:00
codemastr c27a3229c7 Fixed a maxperip and maxunknownconnectionsperip bug in IPv6 2002-06-04 16:46:45 +00:00
codemastr 18892b6446 ... 2002-06-04 16:23:58 +00:00
codemastr 542ecdc7fb Fixed a bug in the new allow system 2002-06-04 16:21:21 +00:00
codemastr a510d024d6 Added allow::options 2002-05-31 21:53:33 +00:00
codemastr ac1c9232bf Fixed some /stats Z problems 2002-05-29 19:53:34 +00:00
codemastr b2ec3ec1a7 Fixed a typo in doc/example.conf (and a few cleanups) 2002-05-29 16:26:21 +00:00
stskeeps 3699932d77 - Fixed some stuff to deal with #136 - Please note that we do NOT compress our addies
- reason for this is because for example ::ffff:192.168.1.5 would really fuck up stuff
  in the IRC protocol
2002-05-28 23:55:07 +00:00
codemastr 2b68123854 Fixed some typos and hostilename problems 2002-05-28 22:03:52 +00:00
codemastr 636aa8352b Fixed a stats l/L bug 2002-05-27 19:28:42 +00:00
stskeeps e0048f7525 - Made ident checking work on IPv6 as well 2002-05-27 17:44:10 +00:00
stskeeps f8865a5aa1 - Fixed a openssl+ipv6 bug, pointed out by Aragon .. This probably breaks some other crap, but what
the heck..
2002-05-25 16:56:59 +00:00
stskeeps 1f75896d56 - Added OpenIRC-CA in .SICI 2002-05-23 09:31:36 +00:00
codemastr 870289c2fd Finally REALLY fixed the scanner (note to Stskeeps: bcmp returns 0 when there IS a match) 2002-05-21 20:54:14 +00:00
codemastr 037b2e6434 Removed some SOCKS scanner debug code 2002-05-21 20:20:17 +00:00
codemastr a6ddaba35b Added gethostbyname_r config check 2002-05-21 18:52:27 +00:00
griever 2484153b70 ... 2002-05-21 01:06:14 +00:00
codemastr 49bb821199 Network file additions/deletions 2002-05-19 22:59:09 +00:00
codemastr 99db84be8c Updated docs and changed version to beta10 2002-05-19 15:18:12 +00:00
griever 8d1ff52f0d Fixed various bugs 2002-05-18 22:41:16 +00:00
codemastr e53e4a93db Credits changes 2002-05-10 22:04:30 +00:00
codemastr e77382c196 Fixed an OpenBSD bug 2002-05-10 21:27:18 +00:00
stskeeps d90d0f52f6 - Fixed a number of bugs in the upper patch. 2002-05-10 17:29:49 +00:00
stskeeps f19f945836 mm 2002-05-10 16:09:26 +00:00
stskeeps 8833852342 :src/ircd.c 2002-05-10 16:02:25 +00:00
stskeeps c343bf91f7 . 2002-05-10 15:59:06 +00:00
stskeeps 1ccd58d2a2 - Rewrote check_pings and the whole way banning people are handled. Do loop.do_banch
to provoke a bans check. This possibly fixes #00001702, #0000137 and other
  funny bugs.
2002-05-10 15:50:54 +00:00
codemastr e1f991f196 Fixed a config parser bug 2002-05-08 23:44:16 +00:00
stskeeps 60a2ebc493 - Fixed a bug with \r\n being mistakenly parsed wrong. Thanks to John_z 2002-05-07 20:59:47 +00:00
codemastr a88f70518c Fixed some free call typecasting 2002-05-01 20:13:37 +00:00
codemastr 29454d1c56 Fixed a socks scanner bug 2002-04-30 22:13:33 +00:00
codemastr f31620b194 Fixed a bug where except ban didn't work 2002-04-28 19:37:23 +00:00
codemastr 3bd9fbcccf Fixed a typo after make is done 2002-04-28 18:45:14 +00:00
codemastr 9834eb7566 Fixed some typos 2002-04-28 18:37:23 +00:00
codemastr ac6f01c0df Fixed another memory leak with the scanners 2002-04-28 18:28:49 +00:00
stskeeps d2db682c97 . 2002-04-26 12:42:33 +00:00
stskeeps 49c8a45728 . 2002-04-26 11:55:31 +00:00
stskeeps 0322db7ebd g 2002-04-25 19:58:45 +00:00
stskeeps 8d35c56efb - Some fixes with connect(). Knowing my luck this will fuck up to hell 2002-04-25 19:55:55 +00:00
stskeeps 9cf9781698 - Memory leak fixes with scanners 2002-04-25 14:28:32 +00:00
griever de9b9854b9 Fixed some stuff 2002-04-23 01:12:45 +00:00
codemastr 640404a4d5 Fixed some 64bit int cloak problems and updated credits 2002-04-19 20:24:41 +00:00
codemastr 13597dc40d Fixed some problems with sykper's patch 2002-04-19 19:43:39 +00:00
stskeeps 5d401a394e - Some more of skyper's security audit patch. Some of them were simply
unfair in regards to performance or blindly added strlcats/strlcpy
2002-04-18 19:05:22 +00:00
stskeeps b95b9d9e27 compile fix 2002-04-18 15:20:39 +00:00
stskeeps 491d6f70c2 First part of skyper's security audit patch 2002-04-15 20:17:36 +00:00
stskeeps f18eb925c4 - Documentation bug #0000152 reported by Tony at sexnet.org fixed regarding
example.conf being wrong about set::socks
2002-04-15 07:31:37 +00:00
codemastr 296b085008 Fixed a bug involving +H and oper counts 2002-04-02 21:28:43 +00:00
codemastr b0178e83bd Fixed a +c bug involving locops 2002-03-28 21:37:27 +00:00
codemastr 4a49f9b21f Fixed a /stats q bug causing a crash with sqlines with no reason 2002-03-26 22:50:27 +00:00
codemastr c20d8fb8f8 Fixed a win32 editor bug causing a crash when you click save multiple times 2002-03-25 21:10:51 +00:00
stskeeps e478bced2e .. 2002-03-25 07:57:46 +00:00
griever 0ce08bb11a blah 2002-03-25 04:48:01 +00:00
codemastr a7851a2b95 Made +I work under win32 2002-03-24 17:25:43 +00:00
codemastr e65a717cf4 Changed version to beta9 and updated documentation 2002-03-24 17:17:26 +00:00
codemastr 430121770f Added EXLIBS= to make custommodule 2002-03-24 17:11:24 +00:00
codemastr e55a6611c8 conf_unknown bug fix 2002-03-23 20:14:44 +00:00
stskeeps 1937f8c742 . 2002-03-23 19:32:21 +00:00
codemastr b516697885 Dynamic hook type system 2002-03-20 19:45:20 +00:00
stskeeps 94306ba8a5 - Cosmetic fix for /setident, found by juli .. 2002-03-20 16:38:37 +00:00
stskeeps c695ee4bcf - One little patch for humanity, one giant step for science.. 2002-03-19 21:14:24 +00:00
stskeeps ba08714e66 - Fix for desynch problem with the fix in /mode system, Thanks to Luke 2002-03-19 19:57:26 +00:00
codemastr 0f9d6e71e8 Updated doc/conf.doc 2002-03-19 16:49:36 +00:00
codemastr 9237ce85cf ... 2002-03-19 16:48:09 +00:00
codemastr f10832a977 Changed HOOKTYPE_JOIN to HOOKTYPE_LOCAL_JOIN 2002-03-19 16:41:43 +00:00
codemastr 7523a30430 Updated all modules to use 3.2-b8 format 2002-03-19 16:00:34 +00:00
codemastr 7587d594da Added HOOKTYPE_JOIN 2002-03-19 15:19:34 +00:00
codemastr 65a2668ede Added log {} syslog support 2002-03-18 23:26:12 +00:00
stskeeps ffea432f5a cfrap 2002-03-17 23:06:56 +00:00
stskeeps e679134624 - Fixed bug with mode buffer overflow .. I'm not 100% positive it works..
Thanks to larne, Luke, SciFi, panda, ^Tux^.. Syzop .. and the countless
  people bitching about their servers going down.
2002-03-17 22:39:06 +00:00
griever 12869627e6 This really should be in all changes files 2002-03-16 20:54:37 +00:00
griever 7819ffae6c Fixed m_oper +Oo bug. 2002-03-16 20:34:17 +00:00
stskeeps 73b7a8be1e - Fix with status needed for remote clients too. Found by
Craig/FrostyCoolSlug <Craig@e-tidalwave.org>
2002-03-16 18:09:15 +00:00
codemastr 0b632d5e71 Fixed a Chinese nick bug 2002-03-16 17:10:17 +00:00
stskeeps 0576528af0 Mroe shit 2002-03-16 16:54:55 +00:00
stskeeps ef43f0f2ca Fix with debugmode 2002-03-16 16:51:56 +00:00
codemastr 0c540e883f Converted commands to use module objects 2002-03-15 23:35:55 +00:00
codemastr 0131d9f325 /mkpasswd typo fix and doc/unrealircd.doc update 2002-03-14 01:24:20 +00:00
stskeeps 2399936a6a - Fixed leftovers of non- char *configfile compliance. Thanks to ace and
various other people ..
2002-03-13 22:03:42 +00:00
codemastr b4a6f24f80 Fixed a listen::options::serversonly bug 2002-03-13 21:18:09 +00:00
codemastr 2f449e0918 Module Insanity Prototype Fix 2002-03-13 20:45:06 +00:00
codemastr fd925b3c28 Module Insanity v1 2002-03-13 20:42:40 +00:00
codemastr 5753585026 Fixed a win32 editor line count bug 2002-03-12 23:36:25 +00:00
stskeeps 1c73d5ae45 . 2002-03-12 20:40:42 +00:00
stskeeps 1a9b9ccf1a more shit 2002-03-12 20:39:16 +00:00
stskeeps ce580bbe09 - Small release tricks 2002-03-12 20:29:17 +00:00
stskeeps 1c22a8257c - Compile fix for TS2ts 2002-03-11 14:17:56 +00:00
griever 335e30513c Fixed -Wall warnings for TSTime 2002-03-11 04:26:27 +00:00
codemastr 38c48fef75 Fixed an IPv6 problem 2002-03-10 20:25:09 +00:00
codemastr 662f6398f3 Release preparation 2002-03-10 19:24:16 +00:00
codemastr 420991af6a Removed my_name_for_link (unused) 2002-03-08 22:13:51 +00:00
codemastr 0f2ae3c278 Win32 fix with u_int16_t 2002-03-06 21:45:04 +00:00
codemastr 4823908acb Removed src/cio_main.c, src/cio_init.c, include/cio.h, include/ciofunc.h extremely old unused code 2002-03-06 21:43:59 +00:00
codemastr 03aa90bc43 ... 2002-03-05 23:22:21 +00:00
codemastr bef880aa6a Removed all remnants of PROTO() 2002-03-05 23:09:39 +00:00
codemastr b8fecd310f ... 2002-03-05 19:34:10 +00:00
griever 104e7200f5 FOO! 2002-03-05 00:49:03 +00:00
codemastr eaecb8c42a Win32 -Wall cleanup 2002-03-04 23:34:13 +00:00
codemastr c4d3ae9df1 Clean compile with -Wall 2002-03-04 21:31:01 +00:00
codemastr b60eb8f989 Readded examples to doc/conf.doc 2002-03-03 19:25:35 +00:00
codemastr 8de39f6dc5 Made extraflags be checked by deny version and fixed a +I bug 2002-03-03 16:04:51 +00:00
codemastr a46ebe1f38 Added various patches by Syzop 2002-03-02 17:18:11 +00:00
griever 78fa804531 blah 2002-02-25 19:56:49 +00:00
stskeeps 2b6390daa3 fixed problem with wrong moved cptr passwd 2002-02-19 16:19:36 +00:00
stskeeps 4aa8f59611 - Fixed #undef STRIPBADWORDS problem, patch by light 2002-02-18 15:37:52 +00:00
griever 3debe8680a -Wall -Wno-implicit 2002-02-16 21:31:51 +00:00
griever 1c9ee5c817 -Wparentheses 2002-02-16 20:54:51 +00:00
griever e5d74b9ae0 -Wformat 2002-02-16 20:40:12 +00:00
griever 6f8aca82f3 -Wunused 2002-02-16 20:15:41 +00:00
griever dbaab6e026 Fixed ugly code 2002-02-16 19:24:42 +00:00
codemastr d3e7ab8006 Credits update and htm fix 2002-02-16 16:48:40 +00:00
codemastr 3a4c06ffd3 Fixed a typo in the docs 2002-02-15 23:00:05 +00:00
stskeeps 73af1fd6e0 . 2002-02-15 22:50:37 +00:00
stskeeps 4fd3ec7525 . 2002-02-15 22:48:51 +00:00
stskeeps 19cd68a204 - lack of time sucks. openbsd problem 2002-02-15 22:46:33 +00:00
codemastr 2d7eb2c1b1 Possibly fixed the /who flags bug 2002-02-12 20:06:20 +00:00
stskeeps c5d855eb10 - Fixed m_rawto.c problem found by TheDarkOne 2002-02-11 20:41:25 +00:00
codemastr d29b6498fb Modified the _ fix to work on all OSes that need it 2002-02-11 17:08:18 +00:00
stskeeps 1f8489a471 . 2002-02-11 16:23:02 +00:00
stskeeps 02acda1628 - Fixed an issue with -x and /quit and whowas, found by RaYmAn 2002-02-11 16:16:25 +00:00
stskeeps fccb560c67 . 2002-02-11 14:34:46 +00:00
stskeeps 376e3d3d6f - Fixed a problem with Mod_Handler being **, found by andi 2002-02-11 13:29:11 +00:00
stskeeps f92fcae257 - Added SJOIN fix so it won't accept NULL channels 2002-02-11 12:48:27 +00:00
stskeeps 7c54ce70c9 - Added andi's OpenBSD fix for the symbol issue with prefix _ 2002-02-11 12:24:15 +00:00
stskeeps 0206d844e9 +- Added tainted variable. 3rd party modules must ++ this upon load,
+  -- upon unload. Will show a 3 in flags.
+- Added extras/m_rawto.c - 3rd party module. Fixed some documentation
2002-02-11 11:03:05 +00:00
stskeeps afcb0b2a03 - Made makefile ability to "make custommodule MODULEFILE=m_zline"
if m_zline.c is in src/modules/, it will get compiled. This SHOULD
  help 3rd party modules atleast
2002-02-11 10:24:11 +00:00
stskeeps 9194aece63 Various 2002-02-06 19:38:30 +00:00
stskeeps a9f1838c3e - Various fixes to virthost system, may fix some memory corruptions
and potential exploits.
2002-02-06 19:35:42 +00:00
stskeeps 78ef8effe9 - Various fixes to virthost system, may fix some memory corruptions
and potential exploits.
2002-02-06 19:33:21 +00:00
stskeeps 90d56ef4e5 fix broken 2002-02-06 15:03:15 +00:00
griever ae0f7643dd Fixing broken tokens 2002-02-05 23:47:44 +00:00
codemastr 30b0175a39 ... 2002-02-03 17:25:52 +00:00
codemastr bd6729ad93 More -Wall cleanups 2002-02-03 17:15:37 +00:00
stskeeps 51d0d59ced slight compile error 2002-02-03 15:11:55 +00:00
stskeeps 9daf3d0b73 - BEFORE you use event functions, LockEventSystem(), after,
UnlockEventSystem(). In EVENT() functions, the system _is_ locked.
  This might fix the double recursion mutex problem we got.
2002-02-03 15:09:49 +00:00
stskeeps 7805566ceb - Fixed loadmodule invisibility.so: undefined symbol:
get_umode bug, reported by James-Bond, #0000060)
2002-02-02 16:50:51 +00:00
griever c7fbfa3e92 Yeah yeah, blah blah shit 2002-02-02 02:24:44 +00:00
codemastr 8e7b926c31 Made the win32 version set read only log files to writable 2002-01-31 21:11:29 +00:00
codemastr 887a003b98 Added a shutdown confirm message box when you click the X in win32 2002-01-31 20:32:38 +00:00
codemastr 5a0d13d9fa Fixed a umode system error with unknown modes 2002-01-31 17:50:56 +00:00
codemastr 164869dca5 Documented the new set::scan::* directives in doc/conf.doc 2002-01-30 22:10:54 +00:00
codemastr 538c318eb6 Fixed win32 scanner bugs, and added a menu option to view log files in win32 2002-01-29 22:45:17 +00:00
stskeeps fa2e9760f9 - Changed some m_ functions into CMD_FUNC(m_*) 2002-01-29 13:48:00 +00:00
codemastr 5a366beda7 Scanner config changes 2002-01-29 00:21:57 +00:00
codemastr 0f6d91091e ... 2002-01-28 00:39:32 +00:00
codemastr 8be7cbab05 Made all functiosn use new-style parameter lists 2002-01-28 00:38:02 +00:00
stskeeps 112d928f11 - Fix for /version crash, reported by RaYmAn 2002-01-27 23:18:32 +00:00
stskeeps 6d239e28ec - -Wall cleanup cleanup with SSL AUTH problem 2002-01-27 22:40:11 +00:00
codemastr d10bc57b74 ... 2002-01-27 20:31:56 +00:00
codemastr 6b8c83ba85 Cleaned up a bunch of -Wall warnings 2002-01-27 20:28:41 +00:00
stskeeps 93f759f200 - Changed umode +I behavoiur to you have to be loading invisibility.so to ha
the +I functionality. Code is still in IRCd, but isn't used until module
  is loaded. Loading of this will cause an R to be added to /version
  flags. Hopefully this will satisify some people's thoughts about a so
  called spy tool being enabled by default. Also added flag_add(char *)
  and flag_del(char) for modules to add to flags string. -Sts
- Removed -win32 postfix for wircds, look in /version for W instead
- Removed ircnetwork part of /version
2002-01-27 18:07:20 +00:00
codemastr dc3f1ba227 Documented link::cipher and except tkl in doc/conf.doc 2002-01-26 20:47:42 +00:00
codemastr b549340657 Added except tkl 2002-01-26 20:38:12 +00:00
codemastr 8f68a64363 Made SHOW_SECRET defined by default 2002-01-26 18:16:02 +00:00
codemastr 15c765449b Fixed a t.next recode typo and added -pipe check for gcc 2002-01-26 17:54:14 +00:00
stskeeps ec5231f565 - Fixed some t.next's and replaced with codemastr method(tm) 2002-01-26 00:20:20 +00:00
stskeeps db060a11b8 - Fixed some minor issues with dialog interface for .pem SSL passwords
- Added makecert.bat / encpem.bat to src/win32, which are used in SSL release
2002-01-26 00:17:35 +00:00
stskeeps f52f030346 fix 2002-01-26 00:12:32 +00:00
codemastr 58c667c7c3 Added a win32 dialog for the SSL .pem passwords 2002-01-25 23:11:29 +00:00
stskeeps a3a04d9797 - Added link::cipher for #define USE_SSL, use this to select
ciphers, read example.conf for more. Closes #000016. Suggested by narf
2002-01-25 22:22:11 +00:00
codemastr 3e89146e19 Fixed a listener bug 2002-01-24 21:11:19 +00:00
codemastr ce009a31ba Fixed a win32 bug that causes the editor to cut text at 32KB 2002-01-24 21:00:09 +00:00
stskeeps e39a1f9884 zogg socks fix 2002-01-24 18:29:19 +00:00
stskeeps 7a7e2de05c - Added patch in #0000053 by |savage|, speedup in can_send 2002-01-24 17:48:04 +00:00
stskeeps 59084e02a1 +- Fixed #0000046 regarding Module_free memory leak 2002-01-24 17:44:03 +00:00
codemastr 6fda3150a6 Removed some useless tkl code 2002-01-22 20:19:40 +00:00
codemastr 6db9156993 Fixed a listener bug reported by Dragon974 2002-01-22 20:03:54 +00:00
codemastr e306a6e55c Recoded hooks to work like events 2002-01-21 18:25:20 +00:00
codemastr e72587c252 ... 2002-01-20 20:19:40 +00:00
codemastr eca91bee1f Fixed a module object bug involving static linking 2002-01-20 16:04:13 +00:00
codemastr 0b873a2b6b Recoded hooks to use module objects 2002-01-20 15:42:48 +00:00
griever c78c669fdd wtf.. 2002-01-20 00:01:36 +00:00
stskeeps 863e32a3d9 Problem with sendto_ops and null aclient->user fix 2002-01-19 18:12:22 +00:00
codemastr de2c5e6cc7 Various changes to the module system 2002-01-19 17:04:04 +00:00
griever 84c70bdd2f Blah... 2002-01-15 20:07:30 +00:00
griever aedfae229a Fixes about stuff 2002-01-15 04:32:00 +00:00
griever f65e857d4e sendto_ops is SNO_SNOTICE now 2002-01-15 04:27:14 +00:00
griever 587f4c4281 fix for stuff... made kline-address error easier to understand 2002-01-15 03:50:24 +00:00
griever f5f4e4500f Blah de poop! 2002-01-15 00:39:04 +00:00
codemastr dbda73fa56 Fixed various bugs and some cleanups 2002-01-14 20:01:36 +00:00
griever 0dd1483fc3 example.conf and m_oper fixes 2002-01-13 22:00:27 +00:00
griever 96d2cf936b MAXPARA removal 2002-01-12 22:18:48 +00:00
griever f7ab73f82e stupid error 2002-01-10 20:22:46 +00:00
stskeeps 12cdefe981 . 2002-01-09 13:52:25 +00:00
griever 8b6f528b54 *prays* 2002-01-08 02:17:05 +00:00
griever f512f9b901 now does a NOQUIT type thing for SQUITs 2002-01-08 02:14:49 +00:00
griever 819e0c98ea uh? 2002-01-08 01:14:28 +00:00
codemastr 2f67e63456 Updated INSTALL because people don't read channel topics 2002-01-08 00:22:55 +00:00
griever c2649c5438 Code cleanups 2002-01-07 22:42:45 +00:00
griever b34268dad0 Fixed gline bug 2002-01-07 22:35:12 +00:00
codemastr e20e9dfd85 Added Tkline, Tzline, and Gzline to the docs 2002-01-07 22:08:24 +00:00
codemastr 455d732636 Changed version to beta6 2002-01-07 19:19:47 +00:00
codemastr ba01670af2 Updated release notes 2002-01-07 19:12:37 +00:00
codemastr 9e42107355 Converted all calls to hunt_server to hunt_server_token 2002-01-07 19:01:07 +00:00
codemastr d25d7900df Added the ability to go to a specific line in the win32 editor 2002-01-07 18:41:57 +00:00
codemastr d48edbdf5c Added hunt_server_token 2002-01-07 16:07:02 +00:00
griever b1fce6bb63 omg... 2002-01-06 04:24:57 +00:00
griever ff4517fa8a ... 2002-01-06 04:09:44 +00:00
griever 2ed3bf18df Fixed compile bug with me not knowing structure stuff 2002-01-06 04:08:04 +00:00
griever 3a49482363 Fixed target limits 2002-01-06 03:50:07 +00:00
griever 1055c2b73c Yay, sts was drunk 2002-01-06 02:01:34 +00:00
codemastr 29f53a13c4 More editor changes 2002-01-05 20:32:30 +00:00
codemastr 40a014a66e Fixed a token error 2002-01-04 22:18:56 +00:00
codemastr 393217392f Removed some // comments 2002-01-04 00:30:05 +00:00
codemastr 711b771b39 Made a few cleanups to the win32 code 2002-01-02 21:35:26 +00:00
codemastr 0f93326707 ... 2002-01-02 21:21:30 +00:00
codemastr bdd52d3eb8 Made the win32 editor use a toolbar, and added XP GUI support 2002-01-02 21:20:29 +00:00
griever 8b753d84eb Moved some stuff to the local section of aClient
stuff is still commented out (don't whine about //comments
as the lines are gonna be removed anyway)
in case this makes it core
2002-01-02 04:21:21 +00:00
griever 70a129aac4 Doh, forgot to comment the & too... 2002-01-02 04:12:21 +00:00
griever f0ddd37c49 Removed archaic useless stuff 2002-01-02 03:46:14 +00:00
stskeeps d20059ea7d +- Removed some ancient debugging code (num - %s) 2002-01-01 16:40:00 +00:00
stskeeps bebebf6cdf +- Made support in *nix for encrypted SSL private keys,
+  "make encpem" to make an encrypted server key if you already have one
2002-01-01 16:25:29 +00:00
codemastr 3bdee011e9 Fixed a typo in example.conf 2001-12-31 16:29:09 +00:00
stskeeps 259b1a5eeb +- Fixed .1081 problem, see bug #0000020 for more information about how
+  it REALLY should be fixed
2001-12-31 00:55:48 +00:00
codemastr 49780c8113 Fixed a editor bug where it always says the file was modified 2001-12-30 20:55:51 +00:00
codemastr 9aeeca3ee8 Fixed svsnoop 2001-12-30 20:52:14 +00:00
stskeeps be3f21edd7 +- Fix for svsnoop symdep problem 2001-12-30 20:43:53 +00:00
stskeeps 407aa55e58 +- Fixed problem with EventDel, doing eventptr instead of eventptr->name
+- Fixed bug #0000019 reported by Syzop, and bug found by same to deal with
+  individual module loading
2001-12-30 19:51:31 +00:00
codemastr 08ad7f0816 Made tld::mask user user@host instead of just host 2001-12-30 17:39:33 +00:00
stskeeps 0f9b578baa +- Crash in scan_http fixed, h->in instead of &h->in = bad 2001-12-30 11:41:25 +00:00
stskeeps 976aa0cb77 +- doh, missing a ! in m_tkl.c that allows us to do bad things(TM)
+- Fix for nested comments, found by lnxgk
+- C++ comment fix, lnxgk again.
2001-12-30 08:48:41 +00:00
griever 929dd62144 *cant enter a commit log because he's too busy laughing at himself* 2001-12-30 07:54:22 +00:00
codemastr 4df1253ab3 Removed set::hosts::techadmin from all network files 2001-12-30 00:34:23 +00:00
griever 662ad36275 Fixed makenet so techadmin-host is gone 2001-12-29 23:40:46 +00:00
griever 75b989d67a added mutex.c 2001-12-28 23:10:30 +00:00
codemastr 5b5ed53edb Fixed a major events bug caused by drunken coding 2001-12-28 22:44:24 +00:00
codemastr 009a3d498c Fixed a /chgname bug where you needed a : to have spaces 2001-12-28 22:25:57 +00:00
codemastr 9b8b45099f Fixed a bug causing weird things to happen after /rehash 2001-12-28 22:14:13 +00:00
griever 5d0f93255b Grr.... 2001-12-28 21:38:52 +00:00
codemastr b4091f77ff Fixed an editor bug under WinXP 2001-12-28 17:47:38 +00:00
stskeeps 4934786273 +- Reversed freeze bug fix, _NP means NON PORTABLE
+- Fixed a freeze problem with conf_deny_link
2001-12-27 13:01:00 +00:00
griever 0d0a632f51 Fixed (I think) freeze bug in m_htm, this might not work on all pthread implementations 2001-12-27 06:01:15 +00:00
griever 3594f2ee45 Made it so "modulename.so" -> "./modulename.so"` 2001-12-27 05:59:05 +00:00
stskeeps c07e8962e5 +- Small fix for #427583 mode bug 2001-12-26 23:35:25 +00:00
griever 9c947f140e Duh... 2001-12-26 22:38:10 +00:00
codemastr 86206ed51c Fixed a win32 editor bug 2001-12-26 17:03:27 +00:00
stskeeps 836be977eb +- Actually enabled MD5, SHA1 methods when SSL was defined. (fix for drunk
+  coding)
2001-12-25 18:13:34 +00:00
codemastr 3859340b2a Fixed a bug in new-style oper flags making it ignore some flags 2001-12-25 18:10:39 +00:00
stskeeps b2ef3ec1b6 crypt fix 2001-12-25 13:29:50 +00:00
griever 5c0894e57c fixed bug in /stats o causing classless oper{} blocks to possibly core 2001-12-25 05:23:33 +00:00
griever 12cee06bf1 Fixed /map bug that allowed users to find U:Lined servers 2001-12-25 02:24:24 +00:00
stskeeps c753c7adc1 +- Fixes for ->user structures 2001-12-24 22:43:14 +00:00
codemastr 897a8cec60 Fixed a DEFAULT_PERMISSIONS bug 2001-12-24 22:34:02 +00:00
codemastr 548c108ecb Fixed a last minute win32 bug 2001-12-24 18:51:40 +00:00
stskeeps 7ec691c0ed +- make install fix 2001-12-24 13:54:59 +00:00
stskeeps 129bc36adf +- Fixed some slave work.. return MOD_SUCCESS; in all command modules.. 2001-12-24 11:19:49 +00:00
stskeeps 23bc0b40e6 +- Changed to beta5 2001-12-24 09:02:00 +00:00
stskeeps 6ccda4cc95 +- Added back good old error reporting in ./unreal start 2001-12-24 08:16:58 +00:00
codemastr 8480b860cf Updated /info 2001-12-23 23:29:51 +00:00
codemastr 8505657eab Final Release Cleanups 2001-12-23 23:08:27 +00:00
stskeeps 9dd3367f72 +- Credits fixes 2001-12-23 22:51:58 +00:00
stskeeps e888024e63 +- CIDR IPv6 fixes, scan_* fixes 2001-12-23 22:27:10 +00:00
codemastr 41f65241a4 Added a few network files 2001-12-23 21:26:52 +00:00
codemastr 77e03b3c91 Credits updates 2001-12-23 19:17:27 +00:00
codemastr 1a0131e9a9 Made a few updconf changes 2001-12-22 21:25:35 +00:00
codemastr cd2b8186e7 Documentation updates 2001-12-22 21:09:33 +00:00
codemastr 64ee79c5f5 Fixed a /time bug in win32 2001-12-22 20:51:06 +00:00
stskeeps f387fbbd4f +- Auth_Make fix for crypt method 2001-12-22 16:59:08 +00:00
stskeeps 3981a679c5 +- Changed SERVICES-NAME warning to error 2001-12-22 16:07:48 +00:00
stskeeps e65e01ddff +- Config parser fixes (bugs found by Souleh) 2001-12-22 15:42:21 +00:00
codemastr 68615a398f Fixed a typo in s_misc.c 2001-12-22 01:50:47 +00:00
codemastr c6266dc19c Fixed some other scanner bugs 2001-12-21 23:08:03 +00:00
codemastr dae5b893d1 Scan API cleanup, goto = evil 2001-12-21 22:58:00 +00:00
stskeeps a4de9ac1e2 +- Added #undef SECURECHANMSGSONLYGOTOSECURE - send only channel msgs to +z
+  people on +z channels
+- win32 fixes
2001-12-21 17:40:43 +00:00
stskeeps ea1e7b3f70 win32 fixes, again 2001-12-21 17:18:16 +00:00
stskeeps edd0b08139 win32 fixes 2001-12-21 15:05:59 +00:00
griever d9d5cdc910 m_sendumode done 2001-12-20 21:54:09 +00:00
griever 343f193e7b ...misspelling 2001-12-20 21:07:45 +00:00
griever a1b3eb1331 Fixed some errors 2001-12-20 20:55:45 +00:00
griever 3a482d26ca Dumbass bug... 2001-12-20 20:33:16 +00:00
griever 68bfeffa70 Slightly working m_sendumode recode, nits:
it will send to people only with ALL umodes, but with ANY of the
snomasks

blame it on sendto_umode and sendto_snomask for being wierdass
2001-12-20 03:46:00 +00:00
griever 6e42d09c50 beginning of new SMO code, testing to make sure it worky
new command format:
SMO modes :message
OR
SMO modes snomasks :message

if you want to use JUST snomasks, put "+" as the mode

the modes parameter accepts a snomask as long as there
isn't a mode with same name
2001-12-20 00:07:38 +00:00
griever 567f3b8fcb Compiles and works fine now :D 2001-12-19 00:53:36 +00:00
griever f8d1e81206 now lets see if it will compile 2001-12-19 00:04:32 +00:00
griever 6c6130fab6 Untested, not sure if it even compiles TKL shits, testing on t2n as soon as this is committed 2001-12-18 23:57:13 +00:00
stskeeps 7695fb209d +- Made link::hubmask and link::leafmask actually work properly 2001-12-18 17:39:10 +00:00
griever 2cc3eb2266 Changes modified 2001-12-17 20:34:39 +00:00
griever 4fca682f8c Error is getting really annoying... 2001-12-17 00:51:31 +00:00
griever 6e67d9dea0 added set::modes-on-oper (modes all opers get when they op up)
made Aa oflags include O
modified docs to reflect such
2001-12-17 00:43:51 +00:00
griever 5d2092858d Made +N give you +OaA as well, since everyone used it that way
Grr, it seems like such a hack to me but ok :(
2001-12-17 00:13:37 +00:00
codemastr 4291191149 Help system recode 2001-12-16 00:35:57 +00:00
griever d2a90a5101 *#($&@#(*$! 2001-12-14 22:48:20 +00:00
griever 5d5ffa3f06 !*@*$^%! I reported this bug MONTHS ago people! 2001-12-14 22:44:08 +00:00
stskeeps e881a256f4 +- Some scan unloading stuff 2001-12-14 14:29:21 +00:00
stskeeps 5171e9e08a +- Made "Module already loaded" a non fatal error (funny msg on rehash)
+- Fixed typical codemastr "Let's delete this from a list we haven't even
+  added it to yet *giggles and twirls around*" bug, do to with config_set_unknown
+- Fixed events bug, added recoded scan module, got a lot of stuff to fix so
+  far. Problems, unloading, (delay), tkl doesn't always sweep it all,
2001-12-13 21:59:37 +00:00
codemastr 2b2f767ca5 Added more HP-UX code 2001-12-12 21:19:30 +00:00
codemastr c4a8e970d3 Module v3 changes 2001-12-11 23:02:58 +00:00
griever 4e32d3a5dc Corrected credits, moved the #ifdef for NO_FDLIST 2001-12-11 21:24:18 +00:00
codemastr ccaa0f444b .. 2001-12-11 20:48:00 +00:00
codemastr c2420f2eee ... 2001-12-11 20:45:45 +00:00
codemastr eb4eb7a8c6 ... 2001-12-11 20:38:17 +00:00
codemastr b15292c980 Removed umode +T and oflags fue 2001-12-11 20:37:30 +00:00
griever 37f6ff3a10 Reflects m_oper recode and tkl oflags 2001-12-11 03:39:56 +00:00
griever 7689d54b8e +T is on its deathbed, expect it to be gone soon
m_oper mostly recoded
Various oflags now silently ignored by m_oper although kept in the oflags
var.
expect TEChat, the T oflag, and hosts::techadmin to be removed shortly
2001-12-11 02:37:32 +00:00
codemastr 0171967e18 Moved the mkpasswd program into the ./unreal script 2001-12-10 22:02:47 +00:00
stskeeps db82fc23b5 +- Module v3 bugfixes. cause: codemastr lack find n replace skill 2001-12-10 14:35:15 +00:00
codemastr 39562944c3 ... 2001-12-10 00:30:00 +00:00
codemastr 28af208a1b More module v3 fixes 2001-12-10 00:26:38 +00:00
codemastr 3b52789751 More module v3 fixes 2001-12-09 23:47:46 +00:00
codemastr 3d564a403f Fixed some more module v3 problems and upgrade all modules 2001-12-09 20:19:35 +00:00
stskeeps 26dff4eeba +- Small v3 fix with no dependency problem 2001-12-09 16:40:03 +00:00
codemastr 38588ba0b5 Fixed a win32 module v3 bug 2001-12-09 16:38:31 +00:00
stskeeps 07adb99680 +- Added module v3 code. Needs testing, and NO MODULES DOES NOT COMPILE 2001-12-09 10:44:11 +00:00
codemastr 89caaab24c Added HOOKTYPE_SERVER_CONNECT and HOOKTYPE_SERVER_QUIT 2001-12-05 23:02:33 +00:00
codemastr 573328e4e1 Added snomask +q for Q:line notices 2001-12-04 20:13:03 +00:00
codemastr 19c649fb90 snomask changes 2001-12-03 22:42:53 +00:00
griever 923624c784 Bug that caused m_oper to core randomly if oper was -x 2001-12-03 01:17:53 +00:00
griever 44be34875f Changelog.. 2001-12-02 20:51:49 +00:00
griever 1612ed7411 added can_gkline and can_gzline (for soon-to-come gzline module), old
flags are t and Z. Someone change docs accordingly
2001-12-02 20:45:17 +00:00
codemastr e872aa28a9 Converted a bunch of structures to use ListStruct 2001-12-02 17:57:24 +00:00
stskeeps abea394dc6 ---------------------------------------------------------------------- 2001-12-02 14:50:58 +00:00
stskeeps 528d82b219 +- Added ssl-pubkey auth method (parameter = pem file for public key) 2001-12-02 14:39:59 +00:00
codemastr 6d9cef9f03 ... 2001-12-02 02:06:54 +00:00
codemastr eb38fa93a3 Added cidr.c and ssl.c to the win32 makefile 2001-12-02 01:47:17 +00:00
stskeeps d7889e777e moo 2001-12-01 23:55:30 +00:00
griever fd638b155b *gets smacked by sts* 2001-11-29 21:12:06 +00:00
griever 503bf841fb *gets smacked by sts* 2001-11-29 21:00:20 +00:00
griever 69647bba3b Argh, no newline notices getting annoying now 2001-11-29 04:51:23 +00:00
griever b4bfa43e5b Added list of ppl I would like to thank :D 2001-11-29 04:49:43 +00:00
griever 67059bd3ae Changed the way ipv4 IPs are cloaked, you now need to crack all three
cloak keys to break ipv4 IPs. ip6 ips and hostnames are too ambiguous to
be susceptable.

#define COMPAT_BETA4_KEYS undoes this fix, and is required for ipv4 bans
to be interoperable between pre-beta4 and post-beta4 servers. This should
be defined on all win32 compiles at least until the first rc or final for
3.2
2001-11-28 20:39:20 +00:00
griever eb038e2938 added ANNOYING_BAN_THING to config.h, disabled by default
previous functionality: mode +b would check match() both
ways, but chanserv AKICK and bot auto-bans would break w/
this, as they would try to set for instance *!*@*.mrrmnh.adelphia.net
but if *!*@rox-1B7EB386.mrrmnh.adelphia.net were set (for example)
chanserv/the bot would flood kick them, over and over and over. No
real point to this one, so I just diked it out.

Modified Files:
 Tag: devel
 	include/config.h src/channel.c
2001-11-28 03:43:58 +00:00
codemastr 1780862cfc Added some functions for generic linked list modifications 2001-11-26 19:37:41 +00:00
codemastr 9d26bac09f ... 2001-11-26 15:56:44 +00:00
codemastr 0d2753331a ... 2001-11-26 15:50:04 +00:00
codemastr dcd9969537 Started some work on CIDR support (added some functions from hybrid7) 2001-11-26 15:40:43 +00:00
codemastr 5eea2a9daf ... 2001-11-26 15:39:13 +00:00
codemastr 893f67668f Fixed a FSU Pthreads bug on Slackware (thanks to Frank Mueller) 2001-11-24 00:34:26 +00:00
codemastr e43ac717cd Added host54.net to /credits 2001-11-22 16:18:58 +00:00
griever 9fdf9cd9e9 Typo fixes &stuff 2001-11-22 05:47:26 +00:00
codemastr e57336c9c7 Changed some function names 2001-11-19 20:30:30 +00:00
codemastr 28b8a0ef9b Fixed a minor events issue 2001-11-18 22:28:01 +00:00
codemastr 0a7e518e6f Redid the event system to be more accurate 2001-11-18 22:13:04 +00:00
stskeeps 62b2de07a7 +- Made delayed module unloading possible, make a int mod_delay() adding
+  an event, for e_unload_module_delayed
2001-11-17 14:54:32 +00:00
stskeeps 535aa4456a +- Made Events do thread locking (so we can do funny things and kill small
+  furry animals in the attempt for the perfect scanning module) .. yes, this
+  is drunken coding
2001-11-16 21:47:35 +00:00
codemastr abedc78b8b Fixed a make install problem and added some Auth support 2001-11-15 22:29:23 +00:00
stskeeps 197378a364 . 2001-11-15 22:00:37 +00:00
stskeeps c980e53fad . 2001-11-15 21:48:44 +00:00
stskeeps e9123b12db +- Added new auth.c API and a lot of different crap .. will document later 2001-11-15 20:26:52 +00:00
stskeeps 4f18b48a57 +- Fixed password crash bug, found by \dev\NULL-Z-[Zap] 2001-11-15 15:13:13 +00:00
griever 6bb18c87e5 Removed the three lines of code (!!) that caused the SSL freeze-on-connect
bug, gonna fix that error handling.
2001-11-14 20:28:13 +00:00
griever ca70706ad6 <----- Head coder 2001-11-14 20:16:49 +00:00
codemastr f6a3b1f399 Fixed the last of the font and editor-cutting-text bugs (hopefully) 2001-11-13 22:21:48 +00:00
codemastr 1a1a4ebd65 Fixed a codemastr(TM) drunk-coding win32 bug 2001-11-13 19:38:15 +00:00
codemastr aed84e3bf0 Win32 editor changes 2001-11-13 00:40:19 +00:00
codemastr 706c911fc3 Win32 GUI changes 2001-11-11 21:14:02 +00:00
codemastr 621793b491 ... 2001-11-11 00:36:24 +00:00
codemastr 0693a8dd27 Added the ability to edit tld {} files from the win32 editor 2001-11-11 00:34:24 +00:00
codemastr 5e14382326 Added hscroll to the win32 editor if it is needed 2001-11-10 23:45:31 +00:00
codemastr 4b8042603a Fixed a win32 bug where pasting text into the editor would use the wrong font 2001-11-10 20:55:11 +00:00
codemastr ab9db56291 Added support for PS_STRINGS and pstat 2001-11-10 18:13:05 +00:00
codemastr 2a595d3a87 ./unreal updates 2001-11-10 17:37:08 +00:00
codemastr 670c9ee653 Made the /kline hostmask checker work like the G:line checker, (it was too easy to K:line *@*) 2001-11-09 22:17:24 +00:00
codemastr c83f79a44a Fixed a bug that made the G:line host checker ignore ? 2001-11-09 19:32:03 +00:00
stskeeps e2ef04d112 +- VERSION M_SERVER fix by skold
+- Fixed connecting with IPv6
+- Ident requests now orgin with the listener that the user connected on
+- More IPv6 fixes, DNS resolving actually works now too.. (crackhead IRCnet
+  coding)
+- Webserver caching fix
2001-11-08 16:40:34 +00:00
codemastr 327f15d17c Fixed a win32 typo 2001-11-07 21:35:11 +00:00
stskeeps 0b01bc3852 Linux IPv6 Fixes 2001-11-07 13:48:42 +00:00
stskeeps 2c6726c95d .. 2001-11-07 13:29:06 +00:00
stskeeps 053cbcaae4 gr 2001-11-07 13:27:49 +00:00
stskeeps f8756691a5 . 2001-11-07 13:26:37 +00:00
stskeeps 2a55293bcc , 2001-11-07 13:25:54 +00:00
codemastr 2d21f6055d Added aliases/auspice.conf, and added a /register command to aliases/aliases.conf 2001-11-05 22:02:22 +00:00
codemastr afebe1568a Changed the setproctitle check to also check in -lutil (some OSes have it there) 2001-11-05 21:38:27 +00:00
stskeeps be48165fb6 +- Added some setproctitle(.., me.name) for extra l33tness :P~ 2001-11-05 21:30:23 +00:00
codemastr b960288402 Added autoconf check for setproctitle 2001-11-05 21:26:50 +00:00
codemastr cad8d53264 - Made ./unreal generated by configure to make sure it has the correct path of the exe 2001-11-05 20:47:39 +00:00
stskeeps 44a48a2dc0 +- IPv6 fixes for IP_OPTIONS (disables under IPv6, i mean .. IRC multicast.
+  WTF?)
2001-11-05 15:06:13 +00:00
stskeeps cca85ebe57 +- IPv6 fixes to make dual ipv4/ipv6 work 2001-11-05 14:33:18 +00:00
stskeeps 8e2cc100ce +- IPv6 fixes to Inet_si2p & Inet_si2pB 2001-11-05 14:11:36 +00:00
codemastr d11cc14a12 Fixed a bug where the win32 help dialog links were plain text 2001-11-05 00:07:10 +00:00
codemastr 29b7ea7ee8 Added make install and ./unreal utility 2001-11-04 22:09:30 +00:00
codemastr 9c49d0d3b1 ... 2001-11-04 20:12:38 +00:00
codemastr 8382e074e1 Fixed a win32 bug where the editor would cut off text 2001-11-04 17:55:10 +00:00
codemastr 49cf99c68a Updated module dependancies to allow a module to load the module containing the symbol 2001-11-01 20:57:19 +00:00
codemastr a5e31d042d Fixed a typo in makenet 2001-10-29 21:29:44 +00:00
codemastr 56fee9b881 Made some nameser.h changes to work win win32 2001-10-28 16:47:07 +00:00
cvs2hg a5d191e5ac fixup commit for tag 'unreal3_2_beta4' 2001-10-28 16:18:49 +00:00
stskeeps b9d034d6bd +- Preperation for beta4 2001-10-28 16:18:48 +00:00
stskeeps 9a97f7e249 +- Made the missing commands error a little more.. tardfriendly 2001-10-28 16:11:47 +00:00
codemastr d537da4058 Fixed a snomask bug found by Rob 2001-10-28 15:55:31 +00:00
stskeeps 58d81ad35f +- Fixed a DEBUGMODE problem with umodes.c 2001-10-27 13:18:49 +00:00
codemastr 6e17ab11f1 Fixed a nickserv password bug found and fixed by Mathieu 2001-10-23 21:25:34 +00:00
codemastr 0f2be18a1f Added M_RESETIDLE to fix a /privmsg bug 2001-10-17 20:04:23 +00:00
codemastr 22d5b9bee8 Changed the size of umodestring 2001-10-16 19:06:07 +00:00
stskeeps 6b10bee66d +- Made umode_delete(flag, mode); 2001-10-16 17:09:51 +00:00
codemastr 493697bbdf Added new umode system to the win32 makefile 2001-10-16 00:03:01 +00:00
stskeeps 66d3c85d23 +- Added umodes.c, long val = get_umode('c'); 2001-10-15 23:01:31 +00:00
stskeeps 3f9849b5fd +- Added a hell lot of DNS debugging code, and fixed the BIGENDIAN problem
+  with resolver. Thanks to dawn and Trash.net for shell on a sparc
2001-10-14 21:54:25 +00:00
codemastr 85ce15ddf7 Added a utility to auto create version.c for win32. 2001-10-14 19:49:48 +00:00
codemastr 7a9b14634b Removed tokens for /users, /summon, and /samode 2001-10-13 23:19:40 +00:00
codemastr 6b9b8a6da9 Fixed the Win32 Z:line bug 2001-10-13 19:32:05 +00:00
codemastr 7193f9615f Hopefully fixed the weird Z:line bug on win32? 2001-10-13 17:05:18 +00:00
codemastr e516af9535 Fixed a win32 bug where the http scanner didn't get loaded 2001-10-13 16:48:23 +00:00
stskeeps 9fc7398b87 +- Fixed codemastr-on-crack bug regarding oflag 2001-10-11 16:53:52 +00:00
cvs2hg 4e2a05f99a fixup commit for tag 'unreal3_2_beta3' 2001-10-08 17:29:47 +00:00
stskeeps 8b6e1d7166 Bugreport stuff 2001-10-08 17:29:46 +00:00
codemastr 19c8f1b7dc Final changes to prepare for beta3 2001-10-08 17:24:56 +00:00
codemastr 74d080b3fc Fixed a typo in config.h 2001-10-08 17:11:16 +00:00
codemastr 6bad7c8dfa Added headers to all the new modules 2001-10-08 17:06:32 +00:00
codemastr a274714cfa Made changes so the new modules compile on win32 2001-10-07 21:54:14 +00:00
stskeeps 79b4805745 +- Added in Fish's patches
+- Added bitching when you lack needed IRC commands
+- Removed REMGLINE
2001-10-07 20:28:15 +00:00
codemastr a05ec38409 updated makefile.win32 with all the new modules 2001-10-07 16:50:08 +00:00
stskeeps f9a92827ae +- Fixed a /who bug, found by IXpfah 2001-10-07 10:28:06 +00:00
stskeeps 2ac54ecc8b *** empty log message *** 2001-10-07 08:56:11 +00:00
codemastr f331b6919e Added aliases/ which contains aliases for popular services, and made makeconf load scan_http.so 2001-10-07 00:07:24 +00:00
codemastr 8bfbd374c3 Added some stuff that should fix the bug in Windows when including files in other directories 2001-10-05 23:21:04 +00:00
codemastr 3c9327788e Fixed a bug where /userhost would report oper status regardless of +H 2001-10-05 20:02:29 +00:00
codemastr 029c43afd1 Made the http scanner work on win32 2001-10-02 22:01:39 +00:00
codemastr 3b5b9db44f Fixed a win32 bug in scan.c 2001-10-02 21:52:02 +00:00
codemastr d24030d129 Made some changes to allow Unreal to compile on win32 2001-10-01 19:53:13 +00:00
stskeeps 3c633f425b +- Made port default to 6667 when options autoconnect in link {} 2001-10-01 13:24:11 +00:00
stskeeps 0d1a1e42d0 .. 2001-10-01 13:08:35 +00:00
stskeeps b571a80006 +- Made Link denied error a little more descriptive 2001-09-27 14:42:48 +00:00
stskeeps e38b645d11 . 2001-09-17 13:17:36 +00:00
stskeeps 8d3f493976 +- Fixed a #undef INET6 bug 2001-09-17 12:59:42 +00:00
stskeeps 1e438f3560 + fixing a IPv6 bug
+- Made Inet_si2p (sin to presensation), fixing the "*", bug, some debugging
+  fixes, fixed a lot of IPv6 bugs, hopefully - thanks to JK for borrowing
+  his box
2001-09-09 20:09:59 +00:00
stskeeps ee9f9d9af0 +- Removed bsd.c and made socket.c, moving signal stuff to ircd.c, possible
+  fixing a IPv6 bug
2001-09-09 09:43:56 +00:00
stskeeps a19ea15bd6 +- Fixed a IPv6 bindip problem 2001-09-07 12:22:31 +00:00
stskeeps 4ece596b39 +- Some more VFS/PHTML fixes, it actually works now, thanks to butter 2001-09-06 16:24:07 +00:00
stskeeps 09c6afc43e +- modulize documentation, some web server fixes, preparation for uabr 2001-09-06 13:54:31 +00:00
codemastr 5c86649f70 win32 makefile changes 2001-09-02 23:58:09 +00:00
codemastr 82ae1cbf63 Moved /svso and /svsnick to modules 2001-09-02 23:39:16 +00:00
codemastr 6a7e82d048 Made the config file a bit more sturdy 2001-09-02 20:16:10 +00:00
codemastr 3a815c775f Fixed a typo in the win32 makefile 2001-09-02 17:05:40 +00:00
codemastr 87b4e4e268 Updated updconf.c to use except scan 2001-09-02 16:21:38 +00:00
stskeeps 43e77f77bf +- HTTPd VFS fixes 2001-09-01 14:33:07 +00:00
stskeeps 614e22400a +- Made except socks become except scan, and made it actually WORK, and some
+  bugreport fixes
2001-09-01 13:27:17 +00:00
codemastr e04c12a2ea Win32 Cleanup 2001-08-31 21:23:11 +00:00
codemastr e4eec40d91 Removed some missed win32 debug code 2001-08-30 23:40:53 +00:00
stskeeps 1e1e1cdbb6 +- Added a bug reporting tool (still alpha) 2001-08-29 20:05:02 +00:00
codemastr aa98a583be Added the ability to add aliases like /identify 2001-08-29 19:28:52 +00:00
codemastr 0385ce8152 Module additions 2001-08-24 22:17:26 +00:00
codemastr 5cd4cb01f8 Fixed a log::maxsize bug where it would screw up when the file didn't exist 2001-08-24 20:44:33 +00:00
codemastr 2386f8d835 log::maxsize now supports 1MB, etc 2001-08-24 00:58:20 +00:00
codemastr 37e54912c3 Fixed a possible /oper bug 2001-08-23 23:39:53 +00:00
codemastr e7695b3920 Fixed a oper host bug 2001-08-23 23:24:31 +00:00
codemastr d365f0d165 Cleaned up /oper a lot 2001-08-23 20:20:59 +00:00
codemastr d8ba78a6c1 Added a bunch more webtv support, send PRIVMSG instead of NOTICE if +V 2001-08-23 17:44:46 +00:00
codemastr 08caa076ed aClient memory cleanups 2001-08-22 20:02:19 +00:00
codemastr d26b59a9e2 Started work on usermode +V 2001-08-22 16:59:03 +00:00
stskeeps a8f79f88db +- Added support for nested comments in the configuration file (by chasm)
+- Added chasm to /info
2001-08-22 13:06:06 +00:00
codemastr d5b5fa710c Moved SHOWCONNECTINFO define to set::options::show-connect-info 2001-08-21 18:23:43 +00:00
codemastr f24eba8c0d Fixed another alias {} bug 2001-08-20 20:09:37 +00:00
codemastr 823e638f0c Moved FAILOPER_WARN define to set::options::fail-oper-warn 2001-08-20 19:08:59 +00:00
codemastr 461d65148b Added bahamut usermode +R 2001-08-20 16:29:37 +00:00
codemastr ceb76ae6da Fixed another alias {} bug 2001-08-19 22:36:13 +00:00
codemastr 85a0944914 Fixed a bug in alias {} found by RaYmAn 2001-08-19 22:02:26 +00:00
codemastr 9417c9af8e Added alias {} to doc/example.conf 2001-08-19 21:30:27 +00:00
stskeeps 816b24afa5 +- Fixed some credits, recoded httpd (still in progress)
+- Disabled #undef PROPER_CORE
2001-08-19 20:16:18 +00:00
codemastr e7a8ad621e Added config directive alias for dynamic services commands, ex /nickserv 2001-08-19 17:45:57 +00:00
codemastr 07c95cff3f /mode cleanups 2001-08-18 19:11:03 +00:00
codemastr f8697288ec Fixed up http proxy scan and added SOCKS5 scanner 2001-08-17 17:29:42 +00:00
codemastr effda4c445 Fixed a /gline crash bug 2001-08-17 16:26:44 +00:00
stskeeps 769a2e42e3 +- Added scan_http, scans on 80, 3128, 8080 in a threaded manner 2001-08-12 15:07:04 +00:00
stskeeps 27c1195bac +- Some httpd stuff and a #define CHROOTDIR problem found by Zhadum 2001-08-12 11:54:34 +00:00
codemastr ffdf227cbc Fixed a win32 bug that caused crashes in the editor 2001-08-08 21:13:33 +00:00
codemastr 145cc3f7d3 Fixed a win2000 bug causing a crash 2001-08-08 19:31:58 +00:00
codemastr 5b6c60798e Removed some win32 stuff 2001-08-08 16:04:22 +00:00
cvs2hg 4fc33756f4 fixup commit for tag 'unreal3_2_beta2' 2001-08-07 17:12:30 +00:00
stskeeps 8e4abdfd2a +- Preparation for beta2 2001-08-07 17:12:29 +00:00
stskeeps 4ee2331d5c .. 2001-08-07 17:10:17 +00:00
stskeeps 44443c260c +- /who fixes regarding +I +H and crap 2001-08-07 16:39:53 +00:00
codemastr 9c41b1d76d Fixed a bug where operflag eyes didn't work 2001-08-07 16:01:46 +00:00
stskeeps 041f0f910f +- /who fix
+- Another /who fix, what crashed it I assume - helped by narf to find this
2001-08-07 15:19:37 +00:00
stskeeps 0e2ac061b8 +- Fixed vhost bug that forgot to add a \0 in the end of the string
+- /who fix
\ No newline at end of file
2001-08-07 12:29:23 +00:00
codemastr f766d70414 Fixed a umode2 bug that crashed the server 2001-08-06 17:28:29 +00:00
stskeeps 8665f36abc +- Fixed a SNOMASK problem found by Arantis 2001-08-06 15:02:07 +00:00
stskeeps 62939b2033 +- /who fix .. removed nick matching functionality.. 2001-08-06 09:51:10 +00:00
stskeeps ec7b2bc247 *** empty log message *** 2001-08-06 09:20:43 +00:00
stskeeps b1714abad9 . 2001-08-06 07:24:49 +00:00
codemastr 74bad8673a release notes changes 2001-08-05 23:41:33 +00:00
stskeeps 667d52199d +- Using bahamut /who now, this needs some testing.. 2001-08-05 23:38:17 +00:00
codemastr 409f1a95ab Fixed a major snomask bug found by narf 2001-08-05 23:08:59 +00:00
stskeeps ce54560b19 +- Docs prepare 2001-08-05 17:50:38 +00:00
codemastr 21d6293f4c Updated documentation 2001-08-05 17:37:28 +00:00
codemastr fb4525ab19 Fixed an oper-only-stats bug 2001-08-05 17:24:12 +00:00
stskeeps c64debf500 +- Fixed bug with SSL, detected properly and fixed by Chawmp 2001-08-05 16:43:13 +00:00
codemastr 871948d23a Added config check to determine the order to specify the ssl libraries 2001-08-04 18:28:37 +00:00
codemastr 90d9c1df8c Implimented snomask 2001-08-04 17:17:54 +00:00
stskeeps e158540a37 +- Fixed some more IPv6 stuff in httpd 2001-08-04 14:01:46 +00:00
stskeeps decae969ee +- Fixed a codemastr-on-crack /version bug, and fixed some IPv6 stuff in
+  scan*
2001-08-04 13:52:04 +00:00
codemastr bdeda461ed Added log::maxsize 2001-08-03 17:10:40 +00:00
stskeeps 9e3151a79e . 2001-08-03 14:24:49 +00:00
stskeeps d8eb70490a +- Fixed Osiris's example.conf
+- Fixed IPv6 bindip error found by Madkiss
2001-08-03 13:05:06 +00:00
stskeeps 9a089dd8bf . 2001-08-03 06:09:11 +00:00
stskeeps 3b4fe7b347 . 2001-08-03 06:06:53 +00:00
stskeeps a4c2faf453 +- Fixed Osiris's broken example.conf 2001-08-03 06:06:16 +00:00
codemastr c1edf8265f Fixed a win32 bug where /restart didn't remove the tray icon 2001-08-02 20:11:58 +00:00
codemastr 87296d9c89 Fixed some typos in s_conf.c 2001-08-02 19:46:14 +00:00
codemastr a6d3abb12f fixed some config stuff and added more network files 2001-08-02 00:36:35 +00:00
stskeeps 7ce43de8f7 +- Fixed bindip problem with it not being made 2001-08-01 19:53:53 +00:00
codemastr 739139d71e Fixed some config issues and added /stats r to stats help 2001-08-01 19:42:38 +00:00
codemastr 8c39ccec5e made the config recognize several values for a yes/no option 2001-08-01 18:06:34 +00:00
codemastr 082c2bfb1c Added set::anti-spam-quit-message-time idea from hybrid7 2001-08-01 17:01:59 +00:00
codemastr 1af13d4588 added set::oper-only-stats 2001-08-01 00:22:13 +00:00
codemastr 30039008df Removed some obsolete code 2001-07-31 21:29:32 +00:00
codemastr a2e17ca2fe Made the Win32 version report the actual OS to opers in /version rather than just say 'Win32' 2001-07-31 21:09:56 +00:00
stskeeps ff8bc65911 +- Fixed fence post marker overwrite in /vhost, found and fixed by tgf 2001-07-31 21:07:27 +00:00
codemastr 943436a1de Rewrote Addit, hopefully it fixes the SJOIN problems? 2001-07-31 17:39:41 +00:00
codemastr 64962b0ce7 Fixed a typo in the win32 makefile 2001-07-31 17:07:35 +00:00
codemastr e1167a2b2e Various win32 fixes and /restart cleanup 2001-07-31 17:00:45 +00:00
codemastr b0536af4e9 Fixed a possible restart/die bug 2001-07-31 16:37:11 +00:00
codemastr af87d2c18b Added more network files 2001-07-30 16:52:30 +00:00
stskeeps 5067013a80 +- Added tgf's patches for these bugs:
+   * if you dont have a rules file and do "rehash -motd" then the server
+   segfaults.
+   * setgid has to be called before setuid... cos if you change to a non-priv
+      uid first then you are not allowed to setgid!
+
+
2001-07-30 16:50:46 +00:00
stskeeps d7baf33ec3 +- Fixed SVSMODE compile error 2001-07-30 13:04:48 +00:00
codemastr e3a23bdbd1 Added SVSMODE # -e 2001-07-29 22:07:54 +00:00
codemastr ed9ead415c Added wildcard support to include and loadmodule in win32 2001-07-29 21:10:43 +00:00
codemastr 664f148366 Fixed a bug affecting /oper and /vhost caused by IP checking 2001-07-29 16:33:14 +00:00
codemastr 9861da3f1e added more network files 2001-07-28 17:40:53 +00:00
stskeeps 3d8f9eea24 +- Fixed SQLINE bug, FINALLY. (forgot to set type ..oops..) 2001-07-28 17:32:19 +00:00
codemastr 16d16095c7 Added 2 more network files 2001-07-28 01:03:27 +00:00
codemastr 9317a83683 Made a bunch of config errors non fatal 2001-07-28 00:51:35 +00:00
codemastr 7a5cd21953 SVSMODE # flags added 2001-07-27 20:45:39 +00:00
codemastr ae2b0cdf8b Added SVSMODE #channel -b nick to remove matching bans 2001-07-27 17:28:54 +00:00
codemastr d4af2c0207 Made my_itoa use _itoa on win32 2001-07-26 16:23:14 +00:00
codemastr 887f71760c Win32 code cleanup 2001-07-25 16:42:19 +00:00
stskeeps 682d1f26f8 . 2001-07-25 14:35:20 +00:00
codemastr bd3d626cdb network file updates 2001-07-25 00:26:50 +00:00
stskeeps 72512f54db +- More SQLINE fixes.. does it work now? 2001-07-24 22:13:33 +00:00
stskeeps 5132528ca4 sqline 2001-07-24 17:11:59 +00:00
stskeeps 96b14ad6c5 +- Fixed SQLINE problem 2001-07-24 16:58:56 +00:00
codemastr 2ca9d3d6d7 Removed all the obsolete network files 2001-07-23 20:54:41 +00:00
stskeeps b919813837 +- Made CR compatilbity actually work, it autojoins now :) 2001-07-23 18:19:52 +00:00
codemastr ce8eec12ab Fixed a /rehash -motd bug 2001-07-22 16:02:01 +00:00
codemastr c50086fc3c Fixed a scan_socks bug under win32 2001-07-21 16:04:37 +00:00
codemastr 1686954b28 Fixed a win32 bug dealing with the new RTF parser 2001-07-20 21:10:31 +00:00
codemastr aeb3aad5fe added a 3d edge to the color selector in win32 2001-07-20 17:29:37 +00:00
stskeeps 6e98479aae . 2001-07-20 16:37:23 +00:00
stskeeps 9d88337a9b scan_socks stuff 2001-07-20 16:33:53 +00:00
codemastr 37f97c5b49 Fixed a bug in the win32 status dialog 2001-07-20 16:31:23 +00:00
stskeeps 699f22a0fb . 2001-07-20 16:26:34 +00:00
codemastr 023032c213 Fixed a bug in the new editor 2001-07-19 21:25:57 +00:00
codemastr c0bb81d1ca Major changes to the win32 editor 2001-07-19 17:37:58 +00:00
stskeeps e102ce8603 +- Added in Ossie's example.conf v2 2001-07-18 07:57:33 +00:00
stskeeps 4756c12519 +- Patched in zogg's scan_socks patch, second edition 2001-07-18 05:34:46 +00:00
stskeeps fa37709af6 +- Added correct uptime to web interface 2001-07-17 21:37:47 +00:00
stskeeps ae4eb55dac +- Fixed some flaws in httpd, that made it break unmercifully 2001-07-17 21:20:42 +00:00
stskeeps 8d0bcef963 +- Minor bugfix in scan_socks, + some comments 2001-07-17 08:45:08 +00:00
codemastr a424c8063a Fixed a /sapart bug 2001-07-16 20:34:54 +00:00
codemastr 7b515e04a5 Added a patch by Zogg to fix a socks scanner problem 2001-07-16 20:24:14 +00:00
codemastr c5c3b2081d made options to make /stats K and /stats G oper only 2001-07-16 18:03:59 +00:00
codemastr 9378291b21 ... 2001-07-16 17:53:00 +00:00
codemastr acf66442e8 Various bug fixes 2001-07-16 17:51:18 +00:00
stskeeps c4d4754511 +- Fixed possible bug with allowing :'s in +k/+L ..
+- Added a credit
2001-07-16 07:41:35 +00:00
codemastr 3fa29a16e5 Various fixes 2001-07-16 00:59:34 +00:00
stskeeps 9406e963de . 2001-07-15 20:51:57 +00:00
codemastr 26f91d1c7e Some gcc 3.0 fixes and other stuff 2001-07-15 20:43:50 +00:00
stskeeps 83c0a3738d +- Fixed struct IN_ADDR problems on some OS'es 2001-07-15 18:40:13 +00:00
stskeeps 5393853cac +- Fixed -nexus.nexusirc.org- *** Notice -- Trying to send [:Alzirr WALLOPS
+  :test bug, found by Alzirr
2001-07-15 18:38:07 +00:00
stskeeps 43b56373c4 +- Fixed *** nick has quit (no Days come, days go), by defaulting to "Quit: " 2001-07-15 18:32:02 +00:00
stskeeps e6df04d821 +- Fixed some CHINESE_NICK stuff 2001-07-15 18:23:45 +00:00
stskeeps 1b285c492f *** empty log message *** 2001-07-15 17:49:53 +00:00
codemastr 202a064904 ... 2001-07-15 17:18:35 +00:00
codemastr 42cbdce0bd Few little bug fixes 2001-07-15 17:13:56 +00:00
stskeeps 52dbb6c0dc . 2001-07-15 10:27:35 +00:00
stskeeps c53bee2244 +- Commited the web server prototype made by Stskeeps, web design by WildChild
+- Ripped out the old DF watch system, using bahamut's now
2001-07-15 10:25:59 +00:00
stskeeps a4b63af2e1 +- Commited the web server prototype made by Stskeeps, web design by WildChild 2001-07-14 21:04:16 +00:00
stskeeps 9b6a674d9c +- Various preparitions for beta1 2001-07-13 20:47:44 +00:00
stskeeps 748c2830c0 +- Changed version to -beta1 2001-07-13 19:55:02 +00:00
stskeeps b66d4a8b0d +- Documentation bug fix 2001-07-13 19:40:04 +00:00
stskeeps 8de27cef2a +- Documentation (example.conf from Osiris) 2001-07-13 19:32:28 +00:00
stskeeps 40f7f0b104 +- Removed the redefining stuff in s_conf.c 2001-07-13 17:18:30 +00:00
stskeeps c8c5ff9571 . 2001-07-13 12:39:21 +00:00
stskeeps ae3ac9012d . 2001-07-13 12:10:43 +00:00
stskeeps 7de9d2d6a6 ... 2001-07-13 11:42:40 +00:00
stskeeps 351a8b48ec . 2001-07-13 11:19:44 +00:00
stskeeps 29ad0e8ff0 +- Fixed u_intXX_t problem 2001-07-13 10:59:15 +00:00
stskeeps 3c7ce7454d +- Fixed some possible points of confusion with hash.c regarding unsigned int
+  & signed int
2001-07-13 08:38:14 +00:00
stskeeps 519a8f893e +- Fixed problem with MAXCONNECTIONS when no parameters given in ./configure 2001-07-12 22:36:19 +00:00
stskeeps ce66aaad96 +- Fixed a validate_conf problem found by Janos
+- Fixed some minor invalid numeric stuff
2001-07-12 18:11:25 +00:00
codemastr 1b5e8d03c2 Fixed a ban bug where temp bans were not cleared on rehash 2001-07-12 17:20:23 +00:00
stskeeps dc1a1f4be0 +- Minor SJOIN fix .. 2001-07-10 11:14:12 +00:00
stskeeps c6e8b4b28b +- Added possiblity to add parameters to configure in Config 2001-07-10 09:52:44 +00:00
stskeeps 510a8fb9c2 . 2001-07-09 22:36:20 +00:00
stskeeps bd1a3ecf55 . 2001-07-09 22:36:19 +00:00
stskeeps 463aa1532c . 2001-07-09 22:34:02 +00:00
stskeeps 962be3514c . 2001-07-09 22:30:12 +00:00
stskeeps ab60bb826c . 2001-07-09 22:08:39 +00:00
stskeeps fd558d0675 +- Some configure.in fixes to pthread stuff 2001-07-09 21:18:10 +00:00
stskeeps 409d1f248a . 2001-07-08 20:23:21 +00:00
stskeeps 295a4468f7 +- Made badword fix found by eternal/Jsmj
+- Changed pthread process check to pthread_join on proposal and idea by
+  codemastr
2001-07-08 20:08:30 +00:00
stskeeps 6b9a544188 . 2001-07-08 16:24:41 +00:00
stskeeps 4d24208f23 *** empty log message *** 2001-07-08 16:19:01 +00:00
stskeeps 883d888620 . 2001-07-08 15:43:38 +00:00
stskeeps 9e0b621890 . 2001-07-08 14:55:33 +00:00
stskeeps 3bb6eb48bb +- Made badword fix found by eternal/Jsmj 2001-07-08 14:53:51 +00:00
stskeeps 137df47190 +- Fixed a documentation bug in unrealircd.conf.txt, made config_error
+  actually bitch when loop.ircd_booted
2001-07-07 08:12:21 +00:00
stskeeps c2d74a527a +- Fixed some rant stuff 2001-07-06 15:32:03 +00:00
stskeeps ad3de916c8 +- Fixed so we compile without symbols in win32 .. 2001-07-05 18:11:35 +00:00
codemastr 2a921e28a7 Fixed a little scan.so bug 2001-07-05 17:41:44 +00:00
stskeeps cfd4e898d8 . 2001-07-05 16:53:02 +00:00
stskeeps 41246edb24 - Made scan_socks & scan work under win32. Only bug is a \1 IP in /quote scan (?) 2001-07-05 16:36:14 +00:00
stskeeps 615936938b Made win32 work 2001-07-04 14:10:08 +00:00
codemastr dd7b98a4c2 Fixed an SVSFLINE bug when removing an unknown dccdeny 2001-07-03 22:10:26 +00:00
codemastr 55becdc356 various fixes 2001-07-03 21:38:37 +00:00
codemastr 80c9185de9 Updated m_template.c to use module version 2 2001-07-03 16:53:59 +00:00
stskeeps 33c6693da0 . 2001-07-03 14:39:25 +00:00
stskeeps 477df429d3 +- Made a /scan fix, and fixed some version numbers found by Morbid 2001-07-03 14:20:45 +00:00
codemastr 0a5b46f054 Win32 fixes 2001-07-02 22:47:00 +00:00
stskeeps 50d86c6013 *** empty log message *** 2001-07-02 20:36:19 +00:00
codemastr b22821ec55 Removed a bunch of unused code 2001-07-02 20:32:53 +00:00
codemastr f585e79a0b ... 2001-07-02 20:24:12 +00:00
stskeeps 8d2bbbab95 +- Fixed some IsToken / sendto_serv_butone screwups, actually think they're
+  codemastr(TM) coding
2001-07-02 19:17:53 +00:00
stskeeps 62a39b24d7 +- Minor cosmetic fixes, and SVSNLINE (ban realname).
+   SVSNLINE + reason_why_moo :realname mask - Add global ban realname
+    ('_' is converted into spaces)
+   SVSNLINE - :realname mask             - Remove global ban realname
+   SVSNLINE *                            - Wipes all global ban realname
+- Fixed FIXME dcc_deny_wipe_services
+
+
\ No newline at end of file
2001-07-02 18:31:42 +00:00
codemastr 29a0ae1871 removed a few missed userload.h references 2001-07-02 17:59:29 +00:00
codemastr f3e02b9ada Removed include/userload.h (not used) 2001-07-02 16:30:06 +00:00
codemastr 63b3220971 Updated the stats help list for newconf 2001-07-02 16:21:24 +00:00
stskeeps e9f47d1271 . 2001-07-02 09:17:50 +00:00
stskeeps d3aef18d3e . 2001-07-02 08:26:25 +00:00
stskeeps e01cf0f3f4 +- Random cosmetic fixes 2001-07-02 08:24:04 +00:00
codemastr 9f19792b95 fixed some misc rh7 warnings 2001-07-02 00:57:57 +00:00
stskeeps ad7a03644c +- /htm fix by Griever 2001-07-01 23:14:14 +00:00
stskeeps b3ec92858a *** empty log message *** 2001-07-01 22:34:31 +00:00
stskeeps 2fe7e4986f +- Some /info stuff, updated docs, .CHANGES.NEW, .RELEASENOTES 2001-07-01 22:32:44 +00:00
stskeeps af397fa6c2 . 2001-07-01 20:11:08 +00:00
codemastr c36797d8f1 Fixed a scan bug on rehash 2001-07-01 19:44:49 +00:00
stskeeps 514a1026eb +- Added some thread debugging, and fixed a SVS2MODE bug 2001-07-01 10:14:46 +00:00
stskeeps 189242d07c . 2001-06-30 16:26:22 +00:00
stskeeps e6fd53f363 . 2001-06-30 12:06:23 +00:00
stskeeps 5795f3c489 +- Fixed some minor mod_load troubles, and made it go a little more sensible
+  regarding retarded rehashes
2001-06-29 23:28:18 +00:00
codemastr 0053fe0b8a Made a minor message change to ./Setup 2001-06-29 21:47:35 +00:00
codemastr e959419e4a Rewrote updconf to actually work 2001-06-29 21:44:06 +00:00
stskeeps 52fd41449e - Fixed a pthread_join 2001-06-29 18:44:29 +00:00
codemastr 6d3b664922 Updated thread porting code to support more functions 2001-06-29 18:38:11 +00:00
stskeeps 5357d536a1 +- Moved blackhole into scan.c and removed blackhole.c, and fixed some
+  blackhole bugs.
2001-06-29 18:37:33 +00:00
codemastr 89ac1c8723 fixed a module bug 2001-06-29 15:02:54 +00:00
codemastr 09e4767c45 module changes 2001-06-29 14:57:21 +00:00
codemastr c2e3552039 Made unreal call all the mod_unload's when it shuts down 2001-06-29 14:03:16 +00:00
stskeeps f2bd92c9ad +- Made version.c depend on ../Changes 2001-06-29 09:48:05 +00:00
stskeeps de306fc395 +- Commited the +k fix to +L 2001-06-29 09:04:40 +00:00
stskeeps 7680ec834a -- Made glob() use GLOB_LIMIT on OpenBSD 2.9 to help prevent a DoS
+- Fixed autoconf/Makefile screwup caused by codemastr
+- Fixed a problem with IPv6 always enabled (could you check this fix, code?)
 - Fixed a bug allowing channek keys to have spaces
 - Cleaned up some thread porting code
 - Added a new versioning system to allow easy tracking of bugs
+- Made glob() use GLOB_LIMIT on OpenBSD 2.9 to help prevent a DoS
 - Fixed makeconf
+- Changed the way modules work. We're now at MOD_VERSION 2
+- Changed ALL MODULES to version 2
2001-06-28 20:30:54 +00:00
codemastr a499f98271 fixed makeconf 2001-06-27 21:40:59 +00:00
codemastr dfb1942aba added a new versioning system to help track bugs 2001-06-27 20:53:47 +00:00
codemastr 91c6e584e6 cleaned up some thread porting code a bit 2001-06-27 17:16:39 +00:00
codemastr 794500dbc5 Fixed a bug allowing channel keys to have spaces 2001-06-27 15:44:52 +00:00
codemastr 2c9232113e Made glob() used GLOB_LIMIT on OpenBSD 2.9 to try and stop DoSing 2001-06-27 15:38:10 +00:00
codemastr d276e9a197 added IPv6 support to ./Config 2001-06-27 00:35:42 +00:00
codemastr 16e06cb6a0 Added the ability to use file globs in loadmodule and include 2001-06-26 23:45:56 +00:00
codemastr e03c23820a added configure check for glob.h 2001-06-26 23:44:59 +00:00
codemastr 95d1575c54 removed some remnants of umode +b 2001-06-26 19:57:49 +00:00
codemastr 2fe33658f3 cleaned up mod_depend a bit to look nicer 2001-06-26 17:08:54 +00:00
stskeeps 724f829a0e +- Added in Griever's SJOIN fix 2001-06-26 09:27:44 +00:00
stskeeps 0246583fe1 +- Added mod_depend checking, see scan_socks.c for example 2001-06-25 23:34:15 +00:00
codemastr e604a72114 Fixed /stats to work fully with newconf 2001-06-25 20:13:37 +00:00
codemastr 740084b6d9 Fixed a bug where configure would pick both -ldescrypt and -lcrypt 2001-06-25 19:58:21 +00:00
codemastr df21d67573 moved swhois and svsmotd to modules 2001-06-24 21:03:08 +00:00
codemastr a3e375745c moved svsmode and svs2mode to m_svsmode.so 2001-06-24 20:36:05 +00:00
codemastr d30a4f619c Added a little utility to make converting an m_* command to a module easier 2001-06-24 19:55:35 +00:00
codemastr 3b0d162573 too lazy to write a real message 2001-06-24 19:40:56 +00:00
codemastr 3aa24503f5 Fixed a rehash bug dealing with stderr 2001-06-24 17:12:31 +00:00
codemastr 3e656cf43e ... 2001-06-23 20:14:46 +00:00
codemastr 793a447df1 ... 2001-06-23 20:14:45 +00:00
codemastr c88e6392c0 ... 2001-06-23 20:12:37 +00:00
codemastr 412b6fdec3 ... 2001-06-23 20:10:42 +00:00
codemastr 9952f21f5b Made Unreal use FSU Pthreads if the system has 'broken' pthreads 2001-06-23 20:08:16 +00:00
stskeeps 2f9a35ed6f +- Some more INET6 fixes 2001-06-23 13:57:14 +00:00
stskeeps 6eb059436b +- Taking some more Config changes 2001-06-22 22:10:27 +00:00
stskeeps c85f59cfe3 . 2001-06-22 21:51:44 +00:00
stskeeps 432f632839 . 2001-06-22 21:46:05 +00:00
stskeeps d2ea4937ed blah 2001-06-22 21:43:37 +00:00
stskeeps 6cf10d76c9 . 2001-06-22 21:33:01 +00:00
stskeeps 323f7f67be +- Fixed a configure.in error with IRCDLOBS 2001-06-22 21:29:01 +00:00
stskeeps 776fa42cf7 +- Some more more configure.in fixes, regarding -export-dynamic, and buffer
+  pools, and some illegal if test $var = othervar
2001-06-22 21:10:13 +00:00
stskeeps 12eabdba06 +- Some more configure.in fixes, and made ./Config -q & -quick (do not ask
+  questions, just run with data in config.settings)
2001-06-22 20:53:00 +00:00
stskeeps 266b0bb33f +- Moved config/ to autoconf/
+- Some fixes to configure.in that seemly got deleted?
2001-06-22 18:10:26 +00:00
stskeeps 432b8296f4 +- Moved config/ to autoconf/ 2001-06-22 17:17:11 +00:00
stskeeps 82f62f84be OpenBSD bug fixes 2001-06-21 21:02:12 +00:00
codemastr 5ceda9a5ac *** empty log message *** 2001-06-20 17:48:03 +00:00
codemastr 7f62aab7d3 Fixed a few configure problems with sunos and amiga 2001-06-20 16:55:35 +00:00
codemastr cc4596cf7e Fixed the keywalk bug reported by BaTmAn 2001-06-19 16:15:43 +00:00
stskeeps d269e1a8a1 +- Made CRYPTOIRCD get cached in config.cache
+- Fixed generation of certs, moved from configure.in to Config
+- Fixed lack of -lssl
2001-06-19 16:09:48 +00:00
codemastr a46aa2a4bb Config changes 2001-06-19 15:46:24 +00:00
stskeeps 5b7168d1e1 +- Minor fixes to Config, a license, etc 2001-06-19 15:26:08 +00:00
codemastr 82c52cb2a9 rewrote Config to be more of an interface than a standalone config utility 2001-06-19 01:03:21 +00:00
codemastr de215877c1 fixed a typo in configure 2001-06-19 00:28:38 +00:00
stskeeps ee1c51020b +- Config fixes, settings.h and Makefile.dist are now dead. RIP. 2001-06-18 20:55:48 +00:00
codemastr f40ec73cbb ... 2001-06-18 20:21:57 +00:00
codemastr aa5ee8b79f added ./configure (autoconf generated configure script 2001-06-18 17:19:35 +00:00
codemastr e28fe9d777 Added numeric 005 NETWORK= token support 2001-06-17 17:03:13 +00:00
stskeeps 00ed3759bb +- Fixed some scan-socks and blackhole fuckups 2001-06-17 17:02:09 +00:00
codemastr ca95bdbbed Fixed a quarantine bug(?) 2001-06-16 15:18:44 +00:00
stskeeps 63170bd946 +- Removed the old SOCKS check code. 2001-06-16 10:36:08 +00:00
stskeeps 0abf279a66 +- Fixed a codemastr screwup in quarantine code 2001-06-15 21:06:10 +00:00
stskeeps a0538911d4 \ No newline at end of file
+- Made blackhole.so work
+- Fixed a set_non_blocking bug
2001-06-14 15:31:42 +00:00
stskeeps 901bcc8a41 +- Made blackhole.so work 2001-06-13 14:13:32 +00:00
codemastr fe9735bd4e Added link::options::quarantine 2001-06-11 15:21:08 +00:00
codemastr 3196657cd4 removed agent.c updated win32 makefile 2001-06-11 14:44:13 +00:00
codemastr b18a357202 rm 2001-06-11 14:43:54 +00:00
codemastr 49030ee0dd Added hook HOOKTYPE_PRE_LOCAL_CONNECT 2001-06-11 14:39:08 +00:00
codemastr f5fa79afac added numeric 105 in /version 2001-06-11 14:18:40 +00:00
stskeeps 78520f8cd0 +- Fixed double dependicies bug.. stupid dlsym 2001-06-10 21:57:39 +00:00
codemastr 8db346ed62 Added some pthread checking support 2001-06-10 20:43:47 +00:00
stskeeps 29b19f988b +- Minor src/Makefile screwup fix 2001-06-10 20:42:38 +00:00
codemastr 8e4f620f7d Allowed capturing of unknown set {} variables by modules (conf_unknown_set) 2001-06-10 20:24:23 +00:00
stskeeps 8f28d5f0d5 +- Fixed /quote sethost : and /quote setident : exploit, found by ac1d, fixed
+  by Griever
2001-06-10 19:50:24 +00:00
cvs2hg 2186d042ca fixup commit for tag 'unreal3_2_12june' 2001-06-09 19:56:22 +00:00
stskeeps 5dfe97a9c6 +- Fixed up scan_dummy.c 2001-06-09 19:56:21 +00:00
stskeeps 3aebacf774 +- Fixed some scan_socks problems - this needs a good hand with 2001-06-09 19:06:42 +00:00
codemastr 26a828bf41 Unknown ban * {}, except * {}, deny * {}, allow * {} are accessible to modules 2001-06-09 17:05:12 +00:00
stskeeps fecfd72417 +- Fixed problem with u_int32_t servicesstamps, with SVSMODE and SVS2MODE,
+  found by Andrew Church
\ No newline at end of file
2001-06-09 15:30:01 +00:00
codemastr d9941457ad Added hooks to allow you to add config blocks 2001-06-08 16:55:53 +00:00
codemastr 6ba33745e2 win32 thread change 2001-06-07 18:19:34 +00:00
codemastr e889beec33 Updated the win32 thread code (maybe it will work now?) 2001-06-07 17:43:32 +00:00
stskeeps d043dc3187 - Fixed codemastr's broken millitime patch (sys/timeb.h)
- Added scan_socks.c, added and moved some stuff to
  include/modules/scan.h (the dir too)
- Converted threads to IRC*Thread by codemastr.
2001-06-07 16:22:32 +00:00
codemastr 63a3ef308d Made match() a little bit faster 2001-06-06 20:05:16 +00:00
codemastr 870119644d Made militime() just as accurate on win32 as on linux 2001-06-05 21:10:21 +00:00
stskeeps 66235b4610 minor fix 2001-06-04 18:34:26 +00:00
codemastr a3b000358e ... 2001-06-04 18:31:14 +00:00
stskeeps ddcdba2e86 - Fixed bug with changing nicks 2001-06-04 11:45:46 +00:00
stskeeps ad0e3539da - Changed how hooks work, making them support voidfuncs
- Added src/modules/scan.c and src/modules/scan_dummy.c
2001-06-04 10:17:16 +00:00
codemastr 66638d66c4 ... 2001-06-03 23:05:33 +00:00
codemastr 5e482c1059 ... 2001-06-03 23:01:24 +00:00
codemastr 740eac2273 fixed a win32 bug 2001-06-03 22:46:31 +00:00
codemastr 595f52c11c made Unreal reload its tray icon if explorer restarts 2001-06-03 15:13:03 +00:00
codemastr 4ba5ad7885 fixed a /stats c = crash bug 2001-06-01 22:49:32 +00:00
codemastr 40f3c69ed5 Made Unreal run correctly on OpenBSD 2001-05-28 14:49:48 +00:00
codemastr b872ad1912 Made a popup menu for the tray icon to contain the same 'buttons' as the GUI does 2001-05-27 20:04:34 +00:00
stskeeps 0b46646765 - Fixed /whois problem, maybe introduced some others?
- Removed send_out_svsmode, not in use and broken too
- Made Config say Unreal3.2
2001-05-27 19:56:19 +00:00
stskeeps 7cd4856373 +- Made newconf state unknown directives (found by Madkiss)
+- Small s_socks.c bugfix possible causing indetectable socks
2001-05-27 13:11:58 +00:00
stskeeps 68eb489f36 +- Made validate_configuration check for !conf_listen 2001-05-27 10:02:31 +00:00
stskeeps bacf06d3eb +- Merged McSkaf's hostname patch, debug patch, s_misc patch 2001-05-26 19:27:14 +00:00
stskeeps 886549cf13 - Made slot arrangement be different. 2001-05-26 18:08:38 +00:00
codemastr 97a11dbea9 Made the Status Dialog update its values every 5 seconds 2001-05-26 15:55:08 +00:00
codemastr b8b748a940 Added McSkaf's rehash patch 2001-05-26 15:40:09 +00:00
codemastr 5b66562e97 updated win32 makefile 2001-05-26 15:05:44 +00:00
stskeeps 57bee58436 +- Made possible speedup of fdlist checking in s_bsd.c 2001-05-26 13:19:48 +00:00
stskeeps 52cd1f5d03 +- Added some numeric checking in m_server* 2001-05-26 08:23:38 +00:00
stskeeps 08f25ead4e - Possible fixed fdlist problem with default_fdlist 2001-05-26 08:03:58 +00:00
codemastr 4a81ab873d Commited McSkaf's tab patch for win32 2001-05-25 21:18:56 +00:00
stskeeps 37f47c0980 +- Fixed minor socksfd problem in read_message
+- Fixed identd problem
2001-05-25 17:08:26 +00:00
stskeeps dd8b77b9ec - Fixed problem with addto_fdlist(cptr->fd) caused by slotpatch 2001-05-25 16:30:35 +00:00
codemastr 35655afdea minor win32 bug fix 2001-05-24 21:04:21 +00:00
stskeeps 2cf513ae54 +- Fixed listener problem, reported by McSkaf 2001-05-24 19:52:44 +00:00
stskeeps f8f8d25f59 possible listener problem..? 2001-05-24 19:49:54 +00:00
stskeeps 7b9c24590a . 2001-05-24 17:53:01 +00:00
stskeeps 23609410e1 Fixed a problem with slots and /trace 2001-05-24 17:52:04 +00:00
stskeeps 737f07a9fe fixed problem with Debugmode unde win32 2001-05-24 16:06:29 +00:00
stskeeps ffe3bb5cba . 2001-05-24 15:57:04 +00:00
stskeeps b2dbb8d42e winlocal stuff 2001-05-24 15:56:24 +00:00
stskeeps a7f0efe61f +- More winlocal fixes, and a +f bugfix 2001-05-24 15:17:28 +00:00
codemastr d46957d5d6 color rtf patch 2001-05-20 16:25:36 +00:00
stskeeps f74c738cdf . 2001-05-20 15:57:43 +00:00
stskeeps 4cc7b2eb68 winlocalpatches 2001-05-20 08:02:09 +00:00
stskeeps 9b85197ec2 . 2001-05-19 20:41:06 +00:00
stskeeps ab3adfc4ce - Made /die not show admins IP (fixed by Stskeeps after his users nuked him..) 2001-05-19 19:57:52 +00:00
stskeeps 767acc2d61 . 2001-05-19 16:38:13 +00:00
stskeeps 4481b8565e . 2001-05-19 09:46:45 +00:00
stskeeps 581ecab7f8 . 2001-05-19 07:46:37 +00:00
stskeeps b3a6a5d8bc . 2001-05-19 06:28:23 +00:00
stskeeps c5c6be51ce +- Applied McSkaf's winlocal patch II, only changed Debug() and removed
+  DEBUGMODE from config.h. Still cores, but we might be closer to a
+  solution. Broken code, do not use devel right now
2001-05-17 18:44:04 +00:00
stskeeps 39844754a5 .
K
2001-05-17 16:58:06 +00:00
stskeeps 0ce4be7780 . 2001-05-16 19:29:53 +00:00
stskeeps e72d0ff6a5 no message 2001-05-16 19:02:54 +00:00
stskeeps 9d9b27fbcb - Fixed the loop, made htmcalc more clean 2001-05-16 14:43:21 +00:00
stskeeps 6f7214ba2a . 2001-05-15 13:46:59 +00:00
stskeeps 0c6e023e07 . 2001-05-15 12:07:03 +00:00
stskeeps 2da8a5fd52 converted htmcalc/lcf to events 2001-05-15 12:02:39 +00:00
stskeeps 746f5b8420 . 2001-05-14 17:25:51 +00:00
stskeeps d9eea90de4 . 2001-05-14 16:53:48 +00:00
stskeeps aa7a1485d0 events code 2001-05-14 16:52:17 +00:00
codemastr 7d55e31da0 added code to make the config parser attempt to keep going rather than die 2001-05-13 20:42:20 +00:00
stskeeps 49ad7cb797 . 2001-05-13 19:43:18 +00:00
codemastr a245aa8369 removed ce_vardatanum, wasted CPU and memory 2001-05-13 18:03:43 +00:00
codemastr 25041b0074 Made the topic for a +s channel hidden from non-members 2001-05-12 16:44:34 +00:00
stskeeps 82af929628 . 2001-05-12 14:45:46 +00:00
stskeeps 94a9919ff2 +- Fixed the 100% cpu problem, again, HTM is screwed now though? 2001-05-12 13:42:10 +00:00
stskeeps d33d0292e2 +- Fixed the problems with 100% cpu, hopefully 2001-05-11 21:20:17 +00:00
codemastr bbf83caae0 ... 2001-05-09 19:48:08 +00:00
codemastr 43dbfc5707 added McSkaf's richedit patch to support reverse 2001-05-09 19:44:38 +00:00
stskeeps 27dd306e33 . 2001-05-07 18:59:21 +00:00
stskeeps bcf384f074 . 2001-05-07 18:42:24 +00:00
stskeeps b75e14a07d . 2001-05-07 18:39:55 +00:00
stskeeps 689c63f382 . 2001-05-07 14:28:45 +00:00
stskeeps 2b343609ee +- Changed all TStime() to use timeofday - CPU SAVE
+- Removed userload.c & userload.h
2001-05-07 14:24:11 +00:00
codemastr 7b393920b5 win32 richedit changes 2001-05-06 23:50:30 +00:00
codemastr 0c5f482cae Removed some win32 stuff that accidentily got committed 2001-05-06 20:24:16 +00:00
codemastr 7565597137 win32 richedit support added 2001-05-06 20:21:19 +00:00
stskeeps c402f50c43 +- Added doc/unrealircd.conf.txt (by devdev), doc/services-install-guide
+  (zyrol, edited a bit by stskeeps)
2001-05-06 17:08:31 +00:00
stskeeps 18479eb145 +- Fixed-fixed listen format troubles, larne++
+- Possible fixed some +d bug(s)
2001-05-05 19:52:54 +00:00
stskeeps 8c6bce17a3 +- Fixed-fixed listen format troubles, larne++ 2001-05-05 19:34:45 +00:00
stskeeps 5f306b09f0 +- Fixed some compilation error with IPv6 2001-05-05 16:42:27 +00:00
stskeeps 452d931de2 +- Made listen format able to do:
+     listen [ip]:port, for IPv6 - listen [3fff:ff::1]:6667
2001-05-05 15:55:01 +00:00
stskeeps 7cc288c293 . 2001-05-05 15:33:31 +00:00
stskeeps 60b5126fea +- Made chghost/chgident able to do :'s 2001-05-05 15:29:03 +00:00
stskeeps 312c90fb02 +- Made a crazed out IPv6 cloaking 2001-05-05 14:56:38 +00:00
stskeeps 7dfcb698c4 +- Made you able to bind to specific IPv6 IPs (we don't have FFFF::*
+  functionality yet)
2001-05-05 14:28:15 +00:00
stskeeps 183ac0af7d +- Made IPv6 compile atleast, and work. Current problems:
+  * Cannot bind to a specific IP
+  * IPv6 cloaking doesn't work
2001-05-05 14:16:32 +00:00
stskeeps 1d3488dbdd +- Fixed doc error in s_conf.c 2001-05-05 12:05:15 +00:00
codemastr 4d027ee4fd Added an xchat based color striper (faster and more accurate) 2001-05-04 20:29:32 +00:00
stskeeps 145c25e249 +- Had to revert McSkaf's winlocal.patch, caused too many crashes. I believe
+there is a better way to do this ..
2001-05-02 16:35:49 +00:00
stskeeps 09a50a286d blah 2001-05-02 09:22:08 +00:00
stskeeps 4d5d474bbd +- Removed SJOIN/SJOIN2 support in SJOIN
+- Fixed a +f bug, found by NiQuiL
+- Applied McSkaf's winlocal.patch, seems to work ok, fixed some problems
+  though in unix/win32 (cptr->fd can be -3. Should fix some READ ERRORS as
+  well. McSkaf, do me a favour and remove all of the C++ comments in the
+  source (//) or modify them to /* */
2001-05-01 15:03:07 +00:00
stskeeps 9f8c142981 Removed SJOIN/SJOIN2 support 2001-04-30 17:17:56 +00:00
stskeeps d0f426eafb +- Fixed RTLD_NOW problem with openbsd 2001-04-29 20:31:58 +00:00
codemastr a1689d32e8 fixed a bug causing Found your hostname (cached) to be displayed twice 2001-04-28 19:20:28 +00:00
stskeeps 4c5fa91707 +- Possible fixed a buggie in +f 2001-04-28 18:51:21 +00:00
codemastr d8917f301f added keyboard shortcuts to the win32 config and about popup menus 2001-04-28 16:09:16 +00:00
codemastr bb01af2f8b win32 and numeric 005 changes 2001-04-28 16:03:27 +00:00
stskeeps 94516c12f9 +- Applied s_debug.c/config.h patch from McSkaf, makes DEBUGMODE under
+  win32 working again - fixed some errors in the unix part of it.
2001-04-28 07:22:32 +00:00
stskeeps 9590301027 +- Applied res.c.patch from McSkaf, fixes win32 GPF, but fixed mising HE(ocp) 2001-04-28 07:16:58 +00:00
stskeeps 97e7c471e2 +- Brought 005 up-to-date with spefication - added CHANMODES= support 2001-04-27 20:26:30 +00:00
codemastr fe33eabc47 Win32 fixes 2001-04-25 21:21:33 +00:00
codemastr 684e6dbc4d ixed a win32 bug found by RaYmAn causing the tray icon not to be displayed sometimes 2001-04-24 20:03:41 +00:00
codemastr 63dd767e2b win32 stuff 2001-04-24 19:50:28 +00:00
codemastr 83485c7464 removed newdns 2001-04-23 19:45:53 +00:00
stskeeps 8d9c41d457 +- Fixed possible crash with /quote dns l 2001-04-22 13:32:05 +00:00
stskeeps 48c02f74a9 +- Fixed minor problem with mod_load code 2001-04-22 08:38:39 +00:00
stskeeps bdcc9dd9d2 +- Added method mod_load in dummy example and made it work. mod_load() is executed
+  when server is ready
2001-04-21 19:49:54 +00:00
stskeeps 695ab4d2eb +- Fixed possible crash bug imposed by too many users per ip in AllowClient -found and fixed by McSkaf
+- Made IP Mismatches getting sent to UMODE_JUNK instead
2001-04-21 18:14:40 +00:00
codemastr 5423bf8a94 Win32 changes 2001-04-21 17:06:07 +00:00
codemastr a4220227ba Fixed a /stats Z bug reported by RaYmAn 2001-04-21 00:34:43 +00:00
codemastr 9625b4cd1c Win32 changes 2001-04-20 23:55:45 +00:00
codemastr bfdd6a67d6 newconf cleanup 2001-04-19 00:03:28 +00:00
codemastr d7fdd5c5a3 Made the resolver work in win32 2001-04-18 19:35:41 +00:00
stskeeps cae1a304ba -- Fixed a claok bug caused by stskeeps(tm) "not knowing how to use << and >> coding"
+- Fixed a cloak bug caused by stskeeps(tm) "not knowing how to use << and >> coding"
+- Fixed some cloak bugs, and applied +x crypto to hostnames as well
2001-04-18 17:36:59 +00:00
codemastr f5bf9b603e fixes 2001-04-18 17:32:02 +00:00
stskeeps 5142675522 +- Removed doc/ADD-TO-IRCRC, doc/INSTALL, doc/Manual, doc/Operators,
+  doc/irc.1, doc/ircd.8, doc/server-compile-guide
2001-04-18 13:17:26 +00:00
stskeeps 815dbb9183 +- Fixed do_dns_async problem with new res.c 2001-04-18 07:47:41 +00:00
codemastr 32daea058a Fixed a ban realname {} bug that _may_ have something to do with the negative user count bug 2001-04-16 21:00:14 +00:00
codemastr 4f1778a08b removed __P 2001-04-16 15:36:30 +00:00
codemastr 4298b01b5e fixed ircd_log to work in win32 2001-04-16 00:18:59 +00:00
codemastr 62ce071c41 added /rehash -all patch by NiQuiL 2001-04-16 00:01:38 +00:00
stskeeps cf288e063f res.c: ircsprintf fixes 2001-04-16 00:00:21 +00:00
stskeeps 3cfb547bdd *** empty log message *** 2001-04-15 23:55:49 +00:00
stskeeps 843f20448e *** empty log message *** 2001-04-15 23:35:23 +00:00
stskeeps f5d797a8f1 +- Added irc2.10.3's resolver. Fixes debian-woody-libresolv problems..
+  Still some fixes to be done
2001-04-15 20:32:05 +00:00
codemastr aa7815af65 ... 2001-04-15 15:55:42 +00:00
stskeeps 6a9aa19856 +- Fixed DEBUGMODE problem, found by someone .. 2001-04-14 16:05:18 +00:00
stskeeps 7d53af10f1 . 2001-04-14 10:18:07 +00:00
stskeeps 6491094450 test 2001-04-14 10:17:54 +00:00
stskeeps 431217b50d +- Added unitedirc.network -NiQuiL 2001-04-14 07:46:21 +00:00
stskeeps 980aab93bd +- When IRCOps are breaking into chans with invite only (+i) or
+  key-protection (+k) a eyes-notice is sent like it is on banwalk. -NiQuiL
+
2001-04-14 07:35:30 +00:00
codemastr dea4e0f9b8 recoded ircd_log a bit 2001-04-13 22:38:37 +00:00
codemastr 155a99b69e ... 2001-04-13 22:34:25 +00:00
codemastr 71f285d8b0 win32 changes and other stuff 2001-04-13 22:32:07 +00:00
stskeeps 8a03462ce2 +- #define HELP_WHO for the "did a /who 0 o" 2001-04-13 20:46:22 +00:00
stskeeps d0819ec012 +- Possible FD leak in ircd_log, caused by some codemastr coding(TM) 2001-04-13 19:46:32 +00:00
codemastr 0db56907f8 Added a cloaking fix based on a fix by Zogg 2001-04-13 15:09:03 +00:00
stskeeps 331b07909b . 2001-04-13 09:25:43 +00:00
stskeeps a82570f0a3 +- Fixed up some codemastr(TM) coding regarding M_* 2001-04-13 09:07:28 +00:00
stskeeps 754c11ce62 +- added temporary define #define OLD_CLOAK 2001-04-13 08:57:36 +00:00
codemastr f300280ec1 logging changes 2001-04-12 19:36:10 +00:00
codemastr dad396b0ca Cosmetic cleanup of /info 2001-04-12 16:34:08 +00:00
codemastr f64d767a77 Implimented IRCNet style server redirection 2001-04-12 16:18:43 +00:00
codemastr 715e8893e2 Added sajoin/sapart error message patch by NiQuiL 2001-04-12 15:34:22 +00:00
codemastr 8de146c6e2 newconf changes in an attempt to make our config as compatible as possible with other configs 2001-04-11 18:30:53 +00:00
stskeeps a385e32c8b +- Fixed a NETINFO parameter problem - solves the new NETINFO format 2001-04-11 08:42:50 +00:00
stskeeps 9b5142a14d +- Found a way to do +x IPv4 cloaking right.
+- Added set::cloak-keys { longvalue; longvalue; longvalue; }; for the cipher
2001-04-11 01:52:12 +00:00
codemastr 220d739c8d Possibly fixed the vhost crashing bug, with much help from IpAddress 2001-04-08 23:06:55 +00:00
codemastr 32dd11ca68 Made it so /stats C doesn't show the user@host of servers to non-opers 2001-04-08 22:25:50 +00:00
codemastr d26077a352 Readded timestamp to log, accidentily got removed 2001-04-08 19:42:52 +00:00
stskeeps f4a558c0b2 +- Make users that send a forbidden file get auto blocked from sending other
+  files. sptr->flags & FLAGS_DCCBLOCKED.
2001-04-07 20:57:17 +00:00
stskeeps 789231e481 +- Added M_NOLAG.
+- Added new CRC32-hex-based IPv4 and hostname cloaking form
2001-04-07 13:34:25 +00:00
codemastr 9691037d36 fixed user@ vhost problem 2001-04-03 19:53:25 +00:00
stskeeps 87fb55c207 . 2001-04-02 17:32:32 +00:00
codemastr 260fcc7525 added ability to add a username to spoof in vhost {}, also fixed a vhost bug 2001-04-01 23:16:02 +00:00
codemastr 589d1dafb4 Fixed a bug where the IRCd didn't validate hosts specified in a vhost {} 2001-04-01 19:27:23 +00:00
codemastr 38d57f15f0 made duoble loaded motd/rules only be cached once 2001-04-01 18:35:49 +00:00
codemastr d1baf13ae4 tld::channel added 2001-04-01 17:54:34 +00:00
codemastr f0ccf16b61 If no oper::flags are found, default to locop 2001-04-01 15:22:33 +00:00
stskeeps f922820f5d +- Fixed a problem with SDESC module token being wrong - Found by eternal 2001-04-01 15:13:46 +00:00
stskeeps 56effd6149 +- Fixed a problem with users opping servers.. Found by Morbid 2001-04-01 11:55:40 +00:00
stskeeps 78cfb2fb10 . 2001-04-01 11:42:44 +00:00
stskeeps 4d7f9dde8b . 2001-04-01 11:37:35 +00:00
stskeeps 6ff6286e4c . 2001-04-01 11:34:42 +00:00
stskeeps 9436198b96 . 2001-04-01 11:11:58 +00:00
stskeeps e99c73b217 +- Made /kick not core on users kicking servers. (WTF?) 2001-04-01 11:07:13 +00:00
stskeeps 3fcc2115cb +- Made static linking a little more possible (for -pg) 2001-04-01 09:40:48 +00:00
stskeeps 607157c0e0 +- Moved /sdesc, /setident to modules.
+- allow { } now supports encrypted passwords -Syzop
2001-03-31 20:26:14 +00:00
stskeeps 7bc6a45cf8 +- Fixed a double definition (double m_chghost and m_chghost.so) 2001-03-31 20:03:17 +00:00
codemastr 16ee430dd4 reverted a change 2001-03-29 20:37:29 +00:00
stskeeps 19386125a6 +- Added a donation credit 2001-03-29 14:54:09 +00:00
codemastr d3738ff6d6 added oper::swhois 2001-03-28 21:10:16 +00:00
codemastr c0a30f631d Made a security measure to stop people from reading the ircd.conf 2001-03-28 00:41:06 +00:00
codemastr d00e7536df Removed PROTO() 2001-03-27 21:30:59 +00:00
codemastr aa6fa83b5f fixed a log {} bug 2001-03-25 18:50:29 +00:00
codemastr 5193c47f72 ixed a globops bug that required it to have a : 2001-03-25 18:32:52 +00:00
stskeeps 0312737c61 +- Reverted Demigurus's select() speedup patch, did speedup, but it
+  also caused a good bit of CPU.
2001-03-25 17:17:55 +00:00
codemastr b7858491fe Removed the old /rehash flags 2001-03-25 16:49:53 +00:00
stskeeps 0d85f1b98d +- Made MyMalloc be MyMallocEx in codemastr's log {} code. Fixes junk pointer
+  problem - discovered by sts/Morbid
2001-03-24 11:05:12 +00:00
stskeeps 659140348d +- Added #define HOOKTYPE_LOCAL_NICKCHANGE 2001-03-24 07:55:50 +00:00
codemastr 43e19f52a6 log system fix 2001-03-21 21:27:34 +00:00
codemastr 464e787aac added a new logging system using log {} 2001-03-21 20:42:15 +00:00
stskeeps a3a445dc77 +- Added Hooks, only one working now is HOOKTYPE_LOCAL_QUIT 2001-03-21 18:14:43 +00:00
stskeeps 555089ce9e +- Removed networks/unrealircd.conf 2001-03-19 06:05:28 +00:00
codemastr 0ce7799961 command hash changes 2001-03-19 00:09:42 +00:00
stskeeps c5c1b8e3e1 +- Modified command hashing system to Sts's belief of how eggs should be
+  made. (quick, dirty and fcked up)
+
2001-03-18 21:28:04 +00:00
codemastr 2ff27c366f Command hash changes 2001-03-18 20:34:59 +00:00
codemastr 3251251be9 moved m_setname to a .so 2001-03-18 17:42:09 +00:00
stskeeps 26c45f50fd +- Changed license of m_dummy.c (dummy module, skeleton), so people can do
+  closed source modules.
2001-03-18 13:07:00 +00:00
stskeeps 089067fbda +- Moved m_chgident to an .so 2001-03-17 21:47:22 +00:00
stskeeps fe7b258bfb - all of the module files to the new format.
+  all of the networks files to the new format.
+- Fixed a bug with RAKILL and UNSQLINE not working
2001-03-17 18:56:50 +00:00
stskeeps edfca03e28 +- Modified an old Unreal3.1.1 to be network file converter, and converted
+  all of the module files to the new format.
2001-03-17 16:22:40 +00:00
stskeeps c181a20492 +- Put out m_chghost, m_sethost in modules, remade Makefile structure and
+  added src/modules
+
+
2001-03-17 14:12:24 +00:00
stskeeps e1b5d6fae0 +- Added module_sym("functionname"), for modules, like, sajoin might want to
+  do fp_m_join = module_sym("m_join");
2001-03-15 21:02:00 +00:00
stskeeps 67cdd867fd +- Made conf2 able to load empty files as well 2001-03-14 13:07:27 +00:00
codemastr 5e535f848d updated the badword configs to use newconf 2001-03-13 22:23:49 +00:00
stskeeps 1c23055cd7 +- Made chmode +z only settable by umode +z users or U:lines or services. 2001-03-13 15:05:35 +00:00
stskeeps 634312f47d +- Added unknown connection flood protection (settable in config.h) 2001-03-13 11:46:23 +00:00
codemastr 9fc54cdaed reverted a previous change 2001-03-12 20:37:21 +00:00
codemastr 5750cea757 Win32 Changes 2001-03-11 19:36:49 +00:00
stskeeps bd983ef189 +- Fixed bug with double module unloading, bug found by RaYmAn 2001-03-11 13:21:35 +00:00
stskeeps 110f099802 +- Started on commands.so making, works good atm -on req of codemastr,
+  both as m_module.so and commands.so :) - long live dynamiclinking
2001-03-11 13:08:53 +00:00
stskeeps c84da7d03c +- Reintroduced "fake lag". Flood algoritm works this way:
+   Make next check for parsing be
+   (1 + (length of command+parameters / 60)
2001-03-11 06:42:19 +00:00
stskeeps 6d2a2e1bf9 +- Added loadmodule "filename.so"; and made the modules
+  unable to get loaded twice with same name.
2001-03-10 21:04:25 +00:00
stskeeps f41c3bf679 +- Added Modules, using dlopen() and LoadLibrary for *nix/win32.
+- Added /module load <path.to.so>, /module status (list modules),
+  /module unload <modulename>
2001-03-10 11:58:04 +00:00
stskeeps 797b6c6f21 +- Added /cycle #channels, suggested by ^loki^ 2001-03-09 12:40:11 +00:00
stskeeps d7700539c6 +- Added #define KILL_LOGGING, by otherguy 2001-03-09 10:15:48 +00:00
stskeeps 9251234b2d +- Added "get_host" old 'H' O:flag 2001-03-07 19:42:50 +00:00
stskeeps 0e77f08921 +- Made ./Setup not do dynamic configuration any more
+- Changed reference in Setup from ircd.conf to unrealircd.conf (cosmetic)
+- Changed output of updconf from ircd.conf.new to unrealircd.conf.new
+- Changed the output of makeconf from ircd.conf to unrealircd.conf
+- Renamed hostmask to hostname like it should be in makeconf - IpAddress
2001-03-07 17:04:37 +00:00
stskeeps 49152c8bcd +- Fixed ssl_client_handshake bug reported by IpAddress 2001-03-07 16:19:49 +00:00
stskeeps 65ab75c9a8 +- Made makeconf use "ban nick" instead of "ban nickname" 2001-03-07 07:49:19 +00:00
angel11 42f43eeb00 Fixed a bug in makeconf, make whois not return chans for services. 2001-03-06 21:27:06 +00:00
stskeeps 8b3c0d8b56 +- Made MembershipL->flood get bzero on out delegation
+- Made IRCd not crash on /kick from servers
2001-03-06 02:45:24 +00:00
codemastr 10dd29fb7a Removed stskeeps's lazy add_CommandX (tm) code 2001-03-05 17:19:09 +00:00
codemastr e5b6533dcd Rewrote makeconf and makenet to use newconf (added some new features to makeconf as well) 2001-03-04 17:52:37 +00:00
stskeeps e852d93134 +- Made del_Command(). 2001-03-03 13:34:10 +00:00
stskeeps 15b1aa89f8 . 2001-03-02 20:11:09 +00:00
codemastr bf9dc43e5a Removed a lot of vars and stuff from the old config, also made some cleanups to reduce source size 2001-03-02 18:53:04 +00:00
codemastr ee1d50c4e2 Added option to use old style oper flags 2001-03-02 18:09:11 +00:00
codemastr 9063b91570 Updated most of /stats S for newconf 2001-03-02 15:06:53 +00:00
stskeeps edfd90f235 +- Made NAME_SERVER (set::dns::nameserver work). The IRCd no longer
+  uses /etc/resolv.conf as reference.
2001-03-02 14:58:37 +00:00
stskeeps 6164ba8175 +- Moved dynconf stuff from s_svs.c to s_conf.c, on popular request 2001-03-02 14:22:30 +00:00
stskeeps e3fbff915b . 2001-03-02 14:00:30 +00:00
stskeeps f75f80584e . 2001-03-02 12:20:43 +00:00
stskeeps 2d7436eea0 Made modes-on-connect work 2001-03-02 12:20:26 +00:00
stskeeps f106d3b39b Made /who work correctly 2001-03-02 11:48:54 +00:00
codemastr 1dc79accfc added a bunch of /stats flags 2001-03-02 00:55:57 +00:00
stskeeps 247a3235ef +- Overwrote s_conf.c with s_conf2.c, and removed s_conf2.c. Viva la Conf2! 2001-03-01 21:31:55 +00:00
stskeeps 59f0c6a7be +- Fixed a config_load win32 problem, found by Zogg, fixed by Stskeeps/codemastr 2001-03-01 21:29:44 +00:00
codemastr 03253db9b2 Fixed a deny version {} bug (oops) 2001-03-01 21:22:32 +00:00
codemastr 815db2ad4a added deny version, and made deny link rehash 2001-03-01 21:13:58 +00:00
stskeeps 3eff8614eb +- Removed dynconf.c, from the old dynconf 2001-03-01 20:39:41 +00:00
stskeeps 516731d14d +- Removed class.c, from the old conf 2001-03-01 20:31:03 +00:00
stskeeps 02f1d1a27a +- Made /stats C show flags correctly 2001-03-01 06:15:24 +00:00
stskeeps 259c4bcf66 +- Made DNS cache list show a notice to other ops 2001-03-01 06:13:45 +00:00
stskeeps d1139c251c +- Made autoconnect msgs only go to +os 2001-02-28 20:43:27 +00:00
stskeeps d10da5cf81 . 2001-02-28 18:29:08 +00:00
stskeeps 55458495fb +- Fixed the 9-month old win32 DNS bug, caused by Stskeeps's incidential
+  delete
2001-02-28 18:23:31 +00:00
stskeeps 54c46720f7 +- Somehow is_halfop and co got called when a server set a mode .., added
+  IsServer check (auto-return 1)
+
2001-02-28 17:24:38 +00:00
stskeeps 155374409d +- Added Member and Membership and made the IRCd support this. Using
+  "freelinks", todo: garbage collection
+- Added find_member_link and find_membership_link. Made Floodopt only
+  get allocated for local users. Removed aFloodOpt in Link,
+- Made a speedup in is_halfop (dumb code)
2001-02-28 16:24:37 +00:00
stskeeps 2ed9fead6d -- Fixed one of codemastr's wonderful coding bugs. *slap slap slap*
+- Fixed windows CRLF problem in conf2, reported by Zogg
2001-02-27 19:40:52 +00:00
stskeeps 09fc76ed53 +- Fixed one of codemastr's wonderful coding bugs. *slap slap slap* 2001-02-27 11:42:55 +00:00
stskeeps 98477e867e . 2001-02-27 11:22:37 +00:00
stskeeps 412390883c +- Removed msgtab part of parse, removed the bigass hashtable msgtab,
+  removed inittoken, made command initalization happen in init_CommandHash
+- Adapted /stats M to it. Removed /helpop ?commands temporary. Confirming
+  hashtable works.
2001-02-27 11:03:19 +00:00
stskeeps e010cbde23 +- Added CommandHash optimation .. this is not done 100% yet. uses msgtab as
+  reference
2001-02-27 08:56:06 +00:00
codemastr 878f3ddba8 sped up some channel stuff using bahamut style user searching 2001-02-25 17:30:43 +00:00
codemastr 82e2407bd3 made crule.c faster 2001-02-25 16:57:23 +00:00
stskeeps 7dbe724aff +- Removed return_servers() and made servers be called Servers, and be a
+  global variable. Done on request on Great Master codemastr.
2001-02-25 16:41:13 +00:00
stskeeps 8cc77bb669 +- Recoded check_pings, with bits used from bahamut-ircd/hybrid-ircd, credits
+  to lucas.
2001-02-25 10:36:41 +00:00
stskeeps 170a1dff0e +- Made admin {} get rehashed
+- Got /stats x to work again
2001-02-25 09:03:22 +00:00
codemastr 038830c0b2 added deny link {} 2001-02-25 00:57:12 +00:00
stskeeps 0ced6ab45b +- Made connfreq unable to less than 10 2001-02-24 20:15:29 +00:00
codemastr e9b9c0e775 various code cleanups 2001-02-24 18:27:50 +00:00
codemastr f656a02b76 various cleanups 2001-02-24 16:22:26 +00:00
stskeeps df04217164 . 2001-02-24 15:06:00 +00:00
stskeeps ace1eb1e1a todo stuff 2001-02-24 15:02:26 +00:00
stskeeps c5ed0fe9c1 +- Made autoconnect work again :>. Changes in behavouir: It connects more at
+  a time now. You need autoconnect flag in options.
2001-02-24 14:56:15 +00:00
stskeeps eed841e642 +- Made link { options { work OK again. Had a dead loop as well 2001-02-24 13:36:52 +00:00
stskeeps 9ac6d4cb65 +- Killed ircdupstr and called it ircstrdup 2001-02-24 13:09:50 +00:00
stskeeps 40f1dd6da6 +- Added deny channel { channel "channelmask"; reason "why"; }; and
+        allow channel { channel "channelmask"; };. Replaces chrestrict
+- Made those above get rehashed
2001-02-24 13:03:26 +00:00
codemastr 0ce4ac5bc0 dynamic motd changes 2001-02-23 22:01:59 +00:00
codemastr 3211a39f6b replaced a few strlen()s with sizeof()s should make the IRCd start a bit faster 2001-02-23 17:30:39 +00:00
stskeeps 97de7c6e41 +- Fixed a missing " in validate_conf 2001-02-23 15:42:08 +00:00
stskeeps 57f89e0678 . 2001-02-21 17:29:21 +00:00
stskeeps ff1b08ef51 +- Fixed a /kline and /unkline buffer overflow, reported by [-Th3Dud3-]
+- Fixed a crash in /stats k regarding temporary K:lines
2001-02-21 16:00:43 +00:00
stskeeps 64ee360a69 . 2001-02-19 18:44:20 +00:00
stskeeps 3bc852a76c +- Added a notice on connect for SSL users with key length 2001-02-19 18:26:29 +00:00
stskeeps b7b2155573 +- Some small SSL fixes .. 2001-02-19 18:13:53 +00:00
codemastr a28500faae If an invalid ban or except is found, it is removed 2001-02-19 17:21:42 +00:00
codemastr b53a38c15c newconf changes 2001-02-19 17:11:17 +00:00
codemastr eb6d81e199 ade it so the IRCd can survive with certain set {} errors (uses defaults) 2001-02-18 16:39:54 +00:00
stskeeps e56b347bb1 . 2001-02-18 16:04:57 +00:00
codemastr 2d455fee85 bunch of changes 2001-02-18 16:03:34 +00:00
stskeeps 691bbfc48a +- Made deny_dcc get rehashed 2001-02-18 11:59:27 +00:00
stskeeps d121a7a9ad +- Finished up deny dcc {}.
+   TODOs: dcc_del_wild_match doesn't work. dcc_wipe_services() either
2001-02-18 09:57:49 +00:00
stskeeps 556ae0ef20 *** empty log message *** 2001-02-16 20:36:52 +00:00
stskeeps 44be7a34a2 +- Finished up validate_conf() 2001-02-16 20:27:15 +00:00
stskeeps 05362ec33f .. 2001-02-14 22:38:47 +00:00
stskeeps 1f7cb4c186 +- Fixed a problem with +x
+- Made CPATH be unrealircd.conf and init_conf2 use configfile instead
+- Disabled calls to dynconf
+- Added validate_conf, added dynconf checking, me, admin, class, oper
+  testing
+- Added config_progress() Fixed temporary stuff
+  with conf_link
 - Made tld {} get rehashed
2001-02-14 20:51:21 +00:00
codemastr 8247b2cc5f Made tld {} get rehashed 2001-02-14 20:47:47 +00:00
stskeeps e0588102ac +- Fixed temporary stuf with conf_link 2001-02-14 11:34:11 +00:00
stskeeps a3d4c1af6e +- Added /stats P on listener info (oper-only)
+- listener temporary stuff works now
2001-02-14 09:17:31 +00:00
stskeeps 254326670a +- Added some MALLOCD (mini debug malloc by stskeeps..)
+- Removed some C++ comments
+- Made close_listeners work correctly again
+- Removed some old check_* mammut code
+- Fixed a bunch of possible bugs in newconf
+- Added sendto_realops logging of config errors
+- Made /rehash work .. sortof. Fixed some crash bugs
2001-02-13 23:14:27 +00:00
stskeeps 884d79e08a +- Fixed a problem with cptr->class counting for servers 2001-02-06 20:34:18 +00:00
codemastr bc1dc6f2ab Made a bunch of /stats flags work with newconf 2001-02-06 20:29:48 +00:00
stskeeps 80f5de56d8 . 2001-02-06 20:16:30 +00:00
stskeeps 22b891a845 +- Fixed negative timestamps problem (crash) 2001-02-06 19:30:36 +00:00
stskeeps cacd6bf213 +- Fixed check_pings problem (crash) 2001-02-05 05:07:43 +00:00
stskeeps 77653accda . 2001-02-04 22:06:16 +00:00
stskeeps 5237c6748b .. 2001-02-04 19:24:33 +00:00
stskeeps 1effeee7a8 +- Fixed a spread server bug 2001-02-04 17:16:39 +00:00
stskeeps 554fa520a0 +- Fixed a refcount bug 2001-02-04 14:46:39 +00:00
stskeeps 5098716479 . 2001-02-04 14:22:48 +00:00
stskeeps 822885b367 +- Fixed some protocol error in server_synch
+- Made listener code work good ..
+- Made reference counts work again
+- Started some rehash work
+- Made full class work on servers too
2001-02-04 14:20:35 +00:00
stskeeps b263907bd8 +- Classes keep reference counts now, and moving classes (oper) works good
+  too.
+- Added /trace class search results (class->clients)
2001-02-03 19:07:21 +00:00
stskeeps 9a05dd20cb +- ban server {} works the original way it was intended to now 2001-02-03 08:26:24 +00:00
stskeeps 9e216fe7fa +- Fixed a little problem with SERVER servername :info crashing the ircd
+  Long live the Floridan way of counting
2001-02-03 07:32:45 +00:00
stskeeps 8893ac57bc +- Made /sqline /unsqline work again.
+- Made SQLINE synching work with newconf
2001-02-02 23:20:47 +00:00
stskeeps 9e871d56aa +- Made /trace work again properly with class names 2001-02-02 20:27:17 +00:00
stskeeps 1280c7d67e +- Made /kline work again, with newconf 2001-02-02 20:04:41 +00:00
stskeeps 1c631472b6 random crap 2001-02-01 20:58:45 +00:00
stskeeps e4627153f6 +- Made /stats C work and /stats H. Intregrated into one.
+- Made /zline, /unzline work.
+- Added CONF_BAN_TYPE_TEMPORARY
+- Fixed a ban ip {} bug in check_pings
+- Removed some waste of oldconf
+- Moved advanced_check to s_svs.c
2001-02-01 19:32:48 +00:00
stskeeps ce3707734d +- Fixed a check_pings problem with usernames
+- ban ip {} works 100% now
2001-02-01 16:34:24 +00:00
stskeeps 7f7bbd3d21 + FIX: *@* detection
+- Fixed a check_pings problem with usernames
2001-02-01 16:21:00 +00:00
stskeeps 54ae54eb4f +- Made /rakill and /akill work again :). Added banflag.type2 2001-02-01 16:19:44 +00:00
stskeeps 30e0ce476c +- Made /svso work again, moved it to same place as svsnoop. 2001-02-01 14:58:24 +00:00
stskeeps 6a1c7c65e5 +- Made /svsnoop "work" again, moved it to s_svs.c (and made that file too) 2001-02-01 14:48:55 +00:00
stskeeps 76ccc05b2c +- /connect works now :), TODO: D:d lines, V:line needs fixing, badly
+  says "Unknown location" atm on uplink
+- Took out MyMalloc & co, direct to malloc/realloc/free now. Crashed in
+  DEBUGMODE
+- Added ConfigItem_link->ipnum
+- Fixed a compile bug with DEBUGMODE
+- Changed a load of old aConfItem crap .., FIX: ConfigItem_link->options
+- Fixed a /connect bug
2001-02-01 08:05:11 +00:00
stskeeps 4c075f6462 +- Fixed check_pings (check_kills) code, so G:lines & ban nick/ip/realname
+  works again
2001-01-31 14:04:55 +00:00
codemastr 5a1114985c vhosts now use newconf 2001-01-30 21:58:20 +00:00
codemastr 82134302a9 some updconf stuff read changes 2001-01-29 22:50:57 +00:00
stskeeps cf2207747a +- Made allow { maxperip }; work, the old ONE password thing, just better 2001-01-29 20:59:26 +00:00
stskeeps f343bc0ba1 . 2001-01-29 20:40:53 +00:00
stskeeps cbbbce0b01 +- Made allow {} passwords work (AllowClient) - TODO: I:line encryptions 2001-01-29 20:39:38 +00:00
codemastr 903f505103 updconf now makes use of from {} in oper {} to eliminate duplicate O:lines 2001-01-28 22:45:30 +00:00
codemastr b4c84801f5 Added the first (sorta) working version of the config converter 2001-01-28 19:20:01 +00:00
codemastr 384a09aceb Made ban nick {} work 2001-01-28 19:03:38 +00:00
stskeeps 52080301a2 +- Fixed a minor problem with ban {} and oper {} 2001-01-28 18:40:31 +00:00
stskeeps 34c792a5e2 +- Made /oper work with newconf (come get us now bastards!)
+- Made +c show class names in connect
2001-01-28 17:59:46 +00:00
codemastr 581274a4c8 Made /setname and /chgname use ban realname {} 2001-01-28 16:11:32 +00:00
stskeeps bbc3980277 +- Made get_sendq be a macro
+- Added find_ban, AllowClient() (old attach_Iline)
+- Temporary disabled /svsnoop, /akill, /sqline /unsqline, /kline, /unkline
+  /zline, /rakill, /unzline and /svso
+- chkconf is not being built anymore
+- Ripped out s_conf.c with the roots.
+- Ripped out add_listener
+- Disabled a lot of stuff that needs to adapt to conf2
+- Made allow {} work
+- Changed allow {} to do user@host instead of user item
+- Took out my_name_for_link
+- Temporary disabled D:d lines/SQLines/Qlines
+- Fixed some /connect stuff
+- Disabled rehash temporary
+- Made ban user/ban realname work (s_unreal.c needs to be modified)
+- Added Zogg to credits
+- NOTE: Unreal-devel is handicapped right now, code in progress, do not use
2001-01-28 12:10:06 +00:00
codemastr 191d22dd40 various fixes 2001-01-21 23:15:09 +00:00
codemastr 42a9e91f1b Made vhost {} use from {} for hosts 2001-01-21 19:04:36 +00:00
codemastr 8228a15f14 Added set {} (unrealircd.conf/network file replacement) 2001-01-21 18:18:17 +00:00
stskeeps 189ee2de56 +- Recoded m_server(YES!) -stskeeps
+- Fixed a #undef USE_SSL problem found by codemastr.. caused by
+  Sts(TM)coding
2001-01-21 06:31:30 +00:00
stskeeps 2db92a77ad +- Added Find_link, serv->conf, did a Find_tld fixup, removed serv->nline,
+  removing a lot of my_name_for_link crap, indented s_serv.c
+- Recoded m_server(YES!) -stskeeps
2001-01-20 21:26:54 +00:00
codemastr 1881d7a7c2 chmodes +GcSm affect /part now 2001-01-20 17:10:23 +00:00
codemastr b1306a3040 Updated match() to have some optimizations from bahamut 2001-01-19 21:10:41 +00:00
codemastr 002f47c434 rehash cleanups and other cleanups 2001-01-19 16:35:01 +00:00
stskeeps de14d4f6de +- Fixed bug with /whois showing +S user channels (ChanServ) 2001-01-17 20:59:27 +00:00
codemastr 4affd16dc5 tld {} changes 2001-01-14 18:03:39 +00:00
codemastr 4dd8eb2731 Implimented except socks {} and tld {} 2001-01-14 01:16:39 +00:00
codemastr dfa4d7c325 Removed the old chmode +x = +c and +I = +V support 2001-01-13 17:20:41 +00:00
codemastr a12cf0a9fc SVSMODE/SVS2MODE fixes 2001-01-12 23:16:45 +00:00
codemastr 33ce3ce8a9 +f changes 2001-01-12 22:52:34 +00:00
codemastr 7a0de228fc Fixed a shun bug 2001-01-09 23:26:10 +00:00
stskeeps 50beda9644 . 2001-01-09 19:07:25 +00:00
stskeeps cc4a5273db . 2001-01-09 10:25:34 +00:00
stskeeps 64931ec2cb . 2001-01-07 16:37:46 +00:00
codemastr 30e1580504 Fixed a G:line bug reported by ROXnet 2001-01-06 18:29:10 +00:00
stskeeps 45828bdf33 . 2001-01-06 10:51:30 +00:00
codemastr 9e88d95c35 made drpass be used in place of X:line 2001-01-06 00:55:06 +00:00
codemastr 6a02c2b900 made ulines load from the new config 2001-01-05 23:02:08 +00:00
stskeeps dbddc21399 +- Added listen {} runtime-configuration code work :))
+- Removed unrealircd.conf from stock
2001-01-05 22:37:13 +00:00
codemastr b75e6e6668 Made /admin use the new config 2001-01-05 19:50:22 +00:00
stskeeps 1ecdb3714c . 2001-01-04 22:02:04 +00:00
stskeeps 9c22ba475e +- Merged in sts-laptop branch 2001-01-04 21:54:09 +00:00
stskeeps b4493dae82 *** empty log message *** 2001-01-04 21:42:41 +00:00
codemastr 428a4c5d94 ... 2001-01-03 22:26:54 +00:00
codemastr 8335a9efca cron changes 2000-12-30 18:01:48 +00:00
codemastr 800401f0cc ... 2000-12-30 17:58:32 +00:00
codemastr bc8fe3cda1 ... 2000-12-30 17:57:54 +00:00
codemastr 989d31db7a ... 2000-12-30 17:57:04 +00:00
codemastr 449c223d5d Fixed a serious bug 2000-12-28 02:15:45 +00:00
codemastr 5a46eab842 ... 2000-12-28 01:47:35 +00:00
codemastr 1a59f08f8c Fixed a ircd.tune bug 2000-12-27 22:05:38 +00:00
codemastr 97cc8fe0b3 Fixed a STATS_ONLYOPER bug 2000-12-27 21:48:27 +00:00
stskeeps 02424859a2 . 2000-12-27 18:57:33 +00:00
codemastr 77b43b023f added the except parser 2000-12-27 18:26:21 +00:00
codemastr 697779c545 fixed a chg*/set* and sdesc bug 2000-12-27 15:45:41 +00:00
codemastr b899d5f1f6 ... 2000-12-26 15:49:37 +00:00
stskeeps 19f40d067c +- Added TODO in top of s_conf2.c 2000-12-26 12:59:25 +00:00
stskeeps 95599d4f69 +- Finished _conf_allow 2000-12-26 12:45:12 +00:00
stskeeps 3d42025e70 +- Finished _conf_listen 2000-12-26 12:04:13 +00:00
stskeeps cf209ac0f8 . 2000-12-25 23:43:29 +00:00
stskeeps bfe9ce19f8 +- A report_configuration code (showoff) 2000-12-25 23:07:15 +00:00
stskeeps 021dbadcb2 +- Finished _conf_oper 2000-12-25 22:25:55 +00:00
stskeeps 5e1a7560f4 . 2000-12-25 20:47:53 +00:00
codemastr 14060a44dd Added tld to the config code 2000-12-25 20:40:56 +00:00
stskeeps 8a526e56ef . 2000-12-25 19:59:21 +00:00
stskeeps 5e009543c0 .. 2000-12-25 19:53:32 +00:00
codemastr c521050ad8 made config2 use strerror to report errors rather than the numeric 2000-12-25 19:52:38 +00:00
angel11 61d9748dc0 Fixed s_user.c so umode N and T cannot coexist 2000-12-25 19:43:11 +00:00
stskeeps e9bde25600 +- Removed parser builtin directive include, and replaced it with our own 2000-12-25 18:46:53 +00:00
stskeeps 2a40af2bff . 2000-12-25 16:41:18 +00:00
stskeeps 263eebc9b3 . 2000-12-25 16:34:59 +00:00
stskeeps 3411fb0724 +- Some more config2 code 2000-12-25 10:43:42 +00:00
codemastr 481856ecde added drpass to the config code 2000-12-24 22:15:08 +00:00
stskeeps 8ae2344c43 . 2000-12-24 21:59:50 +00:00
codemastr 4d7e1dc8be ... 2000-12-24 21:53:43 +00:00
stskeeps dfffd4b238 +- Some more newconf code 2000-12-24 21:52:33 +00:00
stskeeps 8837f3540e +- Some more _conf_class code 2000-12-24 18:12:41 +00:00
codemastr d455d37f59 *** empty log message *** 2000-12-24 18:04:11 +00:00
codemastr 7464b80219 /stats changes 2000-12-24 18:00:41 +00:00
codemastr 24318b579f fixed a missing : on numeric 379 2000-12-24 16:52:27 +00:00
stskeeps a99d4497df . 2000-12-24 16:34:12 +00:00
stskeeps 6751ce7349 +- Added some a bit functional _conf_class code 2000-12-24 16:09:28 +00:00
stskeeps 7b44111745 +- Added the next part of the new config parser, and some even more 2000-12-24 15:37:57 +00:00
stskeeps f3c5f6f6c8 +- Added the next part of the new config parser 2000-12-24 13:31:33 +00:00
stskeeps e24f9f0844 +- Added first part of the new config parser, s_conf2.c 2000-12-23 23:21:10 +00:00
stskeeps 2edbe91580 . 2000-12-23 12:57:33 +00:00
stskeeps 9e68fd3ac0 *** empty log message *** 2000-12-23 12:55:46 +00:00
stskeeps dc7eca4b5d + Stskeeps> +j? but yes, there's a bug there 2000-12-21 10:16:52 +00:00
codemastr 749014625a *** empty log message *** 2000-12-20 22:07:49 +00:00
codemastr 313ec95dcd Fixed a bug where you would receive a double notice on /who 0 o 2000-12-20 17:47:02 +00:00
codemastr 4d8e57d51d topci fixes 2000-12-20 17:36:29 +00:00
codemastr 6bc1965492 ... 2000-12-20 17:17:04 +00:00
stskeeps d17cbcc9b5 +- Added in devdev's INSTALL replacement
- Made it so you don't get a +W notice if you /who or /whois yourself reported by Ron885
 - You can no longer specify an *@unrealircd.com/org, or unreal-*@lists.sourceforge.net email
   as your KLINE_ADDRESS (the "Why am I K:lined?" messages got too annoying)
+- Removed some irc.flirt.org references.
2000-12-20 15:18:56 +00:00
codemastr 5ad018cce7 ... 2000-12-19 22:33:33 +00:00
codemastr a69ec1a95b Made it so you don't get a +W notice if you /who or /whois yourself 2000-12-19 22:21:50 +00:00
stskeeps de447b9495 +- Fixed some more points of ->passwd bugs 2000-12-17 20:51:40 +00:00
stskeeps f855bb7dab + m_server_estab, reported and fixed by Kanzen_Greiver 2000-12-17 20:45:36 +00:00
codemastr 65aa3e7a6e Modified rehash flags to use strnicmp rather than match 2000-12-17 18:35:31 +00:00
stskeeps 96bda8f5dc . 2000-12-17 11:58:05 +00:00
codemastr 4429a4ba7e removed a redundant include of time.h 2000-12-15 22:25:32 +00:00
stskeeps 3d0bf74200 +- Fixed permission problem with SSL .pem files (was o+r) 2000-12-15 16:44:23 +00:00
stskeeps 44d7308718 . 2000-12-14 20:41:03 +00:00
stskeeps 9dbfd6251d *** empty log message *** 2000-12-14 17:01:15 +00:00
cvs2hg d46d93cfa5 fixup commit for tag 'unreal3_1_1_stable' 2000-12-14 16:07:33 +00:00
cvs2hg 8350bc861c fixup commit for tag 'unreal3_1_1_darkshades' 2000-12-14 16:07:32 +00:00
stskeeps 4dc498b9fb . 2000-12-14 16:07:31 +00:00
stskeeps 54ba7c7ed2 *** empty log message *** 2000-12-14 16:06:37 +00:00
stskeeps d173324c0d . 2000-12-13 22:15:19 +00:00
stskeeps 799daac44d +[ Unreal4.0 ]
+- Fixed a _serious_ bug in SERVER command, reported by Valen, Forester,
+  M0rpheus and JK.
2000-12-13 22:13:20 +00:00
stskeeps 1cd81ae077 *** empty log message *** 2000-12-13 16:00:04 +00:00
stskeeps 749a4340ca .. 2000-12-13 15:12:45 +00:00
stskeeps 20c0e8d733 *** empty log message *** 2000-12-13 13:12:49 +00:00
stskeeps 4bebd2cb31 *** empty log message *** 2000-12-12 21:44:02 +00:00
codemastr da4333aecf ... 2000-12-12 21:42:03 +00:00
stskeeps c8b1de7cdb . 2000-12-12 21:37:25 +00:00
stskeeps ba924cb7bc +- Made more openssl binary detection using 'which'
+- Added message when trying to join a +z channel
+- New segmentation fault code by Kanzen_Greiver
2000-12-09 15:12:23 +00:00
codemastr 0a58f33c27 fixed a reverse DNS exploit 2000-12-07 21:08:29 +00:00
stskeeps bbaa0b0416 *** empty log message *** 2000-12-05 10:36:00 +00:00
stskeeps d42ae2b5b8 +- Fixed restart bug, reported by RaYmAn 2000-12-03 19:03:38 +00:00
stskeeps b140153d57 +- Some few fixes from CodeM and Barubary:
+  - Fixed /whois to show users for opers when not in the channel.
+  - Fixed /whois to allow only global eyes opers to see user modes.
+  - Fixed /whois to not show idle times of global opers to anyone except
+    another global oper or services.
+  - Fixed /who to show users for opers when not in the channel.
2000-12-03 13:40:11 +00:00
stskeeps cd5548cab8 +- Fixed P:line bug, caused by codemastr(tm) coding, (masskills), reported by
+  sidv@sid-kitty-land.org
2000-12-03 13:13:27 +00:00
stskeeps ceb8171657 +- Fixed a bug in sendto_channel_prefix_tok reported by Strider@ChatCircuit 2000-12-03 11:53:41 +00:00
stskeeps 2d4846bfd6 +- Fixed a chinese nick thing, thanks to miCro and RexHsu
+- Fixed a typo in config.h
2000-12-02 15:36:17 +00:00
stskeeps 25291cc457 +- Fixed a chinese nick thing, thanks to miCro and RexHsu 2000-12-02 15:33:09 +00:00
stskeeps f8a112aa07 +- Fixed a SJOIN bug, i think, thanks to Web 2000-12-02 11:44:57 +00:00
stskeeps 38bcec9991 +[fixes]
+- Fixed a +d bug (it didnt send ` prefixes)
2000-12-02 08:45:12 +00:00
stskeeps 367dfb5d3b . 2000-12-01 22:05:03 +00:00
stskeeps cd69044366 . 2000-12-01 21:10:13 +00:00
stskeeps 5747fda912 . 2000-12-01 20:52:59 +00:00
stskeeps 94927f5a7a . 2000-12-01 19:57:01 +00:00
stskeeps f634ce269b +- SSL error change to sendto_umode(UMODE_JUNK)
+- Fixed a hash error
2000-12-01 19:55:53 +00:00
stskeeps 6fa75f2e9e . 2000-12-01 18:16:34 +00:00
stskeeps 9b14745e47 . 2000-12-01 16:56:03 +00:00
stskeeps 606967c718 +- SSL error change to sendto_umode(UMODE_JUNK) 2000-12-01 16:45:34 +00:00
angel11 3985a7ceed Accidently changed ircd.c =P, fixing 2000-12-01 15:53:52 +00:00
angel11 62cf839f2e Fixed axenet network file 2000-12-01 15:49:04 +00:00
stskeeps f0e2d2cb61 +- Config change in SSL.h detection part 2000-12-01 15:43:28 +00:00
stskeeps 6d64f0b505 + thanks to RexHsu and Aim
+- Fixed up CHINESE_NICK and JAPANESE_NICK, suggested by Aim, see
+  include/config.h
2000-12-01 13:59:05 +00:00
stskeeps d2d806697b +- #define CHINESE_NICK will make you able to use chinese nicks
+  thanks to RexHsu and Aim
2000-12-01 12:13:03 +00:00
stskeeps ae0dcf2bbf +- Fixed compile error found by Headbang 2000-12-01 11:57:35 +00:00
stskeeps cb0cbda5ed +- Changed CONNECTTIMEOUT to 30sec
+- Changed some _more_ credits
2000-12-01 11:49:36 +00:00
stskeeps 5d04afc6c2 +- Added infofield in /stats L for clients/listeners
+- Fixed a blocking socket thing
+- Fixed up /stats L bug
2000-12-01 11:31:23 +00:00
stskeeps 9955724ef9 +- Added infofield in /stats L for clients/listeners 2000-12-01 11:19:11 +00:00
stskeeps 052bcc180d +- Fixed a real bad /whois bug, reported by BiGi
+- Fixed a problem with /sajoin .. atleast possible
2000-12-01 09:49:20 +00:00
stskeeps b791a8eae9 . 2000-12-01 05:36:42 +00:00
stskeeps 143a7b6566 . 2000-12-01 04:45:33 +00:00
stskeeps fc2bf10e3a +- Fixed a real bad /whois bug, reported by BiGi 2000-11-30 18:24:44 +00:00
stskeeps 290495c0ad . 2000-11-30 18:06:31 +00:00
stskeeps 07a6922d5c . 2000-11-30 18:04:43 +00:00
stskeeps 59a23b3ce6 . 2000-11-30 18:03:06 +00:00
stskeeps df07c7f133 . 2000-11-30 18:01:41 +00:00
stskeeps 17932efad0 . 2000-11-30 17:59:09 +00:00
stskeeps 82a657a63e +- Fixed a /whois bug, reported by BiGi 2000-11-30 17:56:53 +00:00
stskeeps 12c9891916 . 2000-11-30 17:53:30 +00:00
stskeeps 9511d161c6 . 2000-11-30 17:08:06 +00:00
stskeeps 1e39df2cb8 . 2000-11-30 16:50:35 +00:00
stskeeps 6cdc422490 *** empty log message *** 2000-11-30 16:49:22 +00:00
stskeeps d6247b9a19 +- Added some credits 2000-11-30 16:45:17 +00:00
stskeeps a896d4f71d +- Added hatblade's files 2000-11-30 16:39:29 +00:00
stskeeps ef7c0d6672 . 2000-11-30 13:31:06 +00:00
stskeeps 7adf05ab64 +- Added SICI information, Donation information, fixed a ./Config problem
+  overwriting certs ..
2000-11-30 13:16:00 +00:00
stskeeps 4eda3e1752 +- Fixed a typo in ssl.c 2000-11-30 11:19:54 +00:00
stskeeps d7a342fed1 +- If a +r user is /who'ed, it shows a "r" in flags field. Suggested by
+  Mirar.
2000-11-30 07:16:41 +00:00
stskeeps 8894015354 +- Fixed overflow in SJOIN
+- Added SMO *, all users
2000-11-29 21:03:41 +00:00
stskeeps 9019f35565 +- Fixed some /whois channels code, which may break +I /whois 2000-11-28 07:19:05 +00:00
codemastr 92cdd762c4 added code to makenet to stop fake submissions 2000-11-26 20:33:43 +00:00
stskeeps 8dce2d175c +- Removed "on network" in /whois oper 2000-11-26 10:31:10 +00:00
codemastr 2b78d45287 fixed a /map bug where U:lines were showed when HIDE_ULINES was set 2000-11-25 20:45:38 +00:00
stskeeps fd6eed4477 . 2000-11-25 13:43:48 +00:00
codemastr 7461b22a16 updated docs 2000-11-24 18:07:30 +00:00
codemastr 0588f18cbb ... 2000-11-24 16:41:59 +00:00
stskeeps b318e6a66a +- Added some network files and even more network files
+- Fixed some copyright stuff in ssl.c
+- Fixed a /map problem
2000-11-24 15:05:18 +00:00
stskeeps 4e26bd1379 . 2000-11-24 06:13:51 +00:00
codemastr dba0d3b7c0 added more network files 2000-11-24 01:24:44 +00:00
codemastr 9159c377de added some network files 2000-11-23 21:08:02 +00:00
stskeeps 4712fe781c +- Added some more support for some even more SJB64 stuff 2000-11-23 19:37:16 +00:00
codemastr d0f4a514d4 added some SJB64 stuff 2000-11-23 19:25:12 +00:00
codemastr 6c59c5b733 removed CRYPTOIRCD 2000-11-23 19:08:02 +00:00
stskeeps 8c96800c80 +- Removed last point of confusion in ALN/NS 2000-11-23 18:52:57 +00:00
stskeeps 7df008ead4 +- Changed some stuff with SSL, you may want to seperate server.pem into
+  server.key.pem and server.cert.pem (or "rm Makefile" and "./Config")
+- Fixed a couple of SJOIN/Link problems detected by Curt|s
2000-11-22 20:38:00 +00:00
codemastr 7b068178a1 fixed a mass G:line bug in /rehash 2000-11-22 19:34:14 +00:00
stskeeps e4a1669632 . 2000-11-22 15:15:47 +00:00
stskeeps bba7e664b6 +- Added so /gline and /shun accepts time periods in 1d2h3s etc. a recode of
+  some potvin stuff
+- Added so blocking is only effective when SSL_connect()'ing
2000-11-22 12:25:28 +00:00
stskeeps 108639b960 +- Fixed cutoff server infos in synch 2000-11-22 07:14:03 +00:00
stskeeps 7a3d7c8b7f +- Added OPT target OPT_SJB64 and OPT_NOT_SJB64
+- Made SSL server<->server work, using __blocking__ sockets (this is only
+  in connect moment thou) -stskeeps
+- Removed 1.0 msg/s when not in HTM
2000-11-21 21:46:19 +00:00
stskeeps 32f0e3f871 *** empty log message *** 2000-11-21 19:39:54 +00:00
stskeeps 678ac0f7cf +- Added SJOIN (SJ3 only) instead of JOIN/MODE in /join and discovered a bug in
+  SJOIN code, that if the line doesnt have a " " appeneded, it wont take the
+  last users or first for that sake. Hopefully patched SJ3 code for it
+- Added OPT target OPT_SJB64 and OPT_NOT_SJB64
2000-11-21 18:42:45 +00:00
stskeeps f6a0415148 +- Fixed-fixed-fixed the U:line branching thing made by codemastr
+- Fixed a G: line-turn-into Z:line problem, reported by eYe-Man
2000-11-21 16:33:58 +00:00
stskeeps 0505a1ff50 +- Removed remapping fds, and did a severe select() speedup, suggested by
+  Demiurgus. Should speed CPU a lot
2000-11-19 22:22:43 +00:00
codemastr 5b515b86b4 updated some messages 2000-11-19 20:37:50 +00:00
stskeeps af8b08775d +- Fixed-fixed-fixed the \r\n bug and removed some useless cpu wasting code 2000-11-19 20:29:43 +00:00
stskeeps ae3936aca5 +- Fixed \r\n bug, hopefully
+- made SSL use same cert client/server
+- Fixed help.c bug reported by Curt|s
+- Different fixes, unreal.tspre.org -> unrealircd.com
2000-11-19 19:45:02 +00:00
stskeeps 3a5e5ee45a +- Fixed the masskill bug, hopefully. Was a delimiter/number array bug in
+  find_server_b64_or_real, causing negative base64 to be accepted (bad).
+  value 1-256 will never be able to be in two letters (a server name)
2000-11-19 18:26:20 +00:00
stskeeps e6b2159245 +- Fixed the "Bad file descriptor" bug in SSL. This bugfix may be a bit risky
+  as it is manipulating BIO fds. The reason openssl freaked at this, was
+  that when a fd is closed, we change fds from 4 to 3 etc, in other words,
+  we renumber fds. SSL didn't know this and if you would call SSL_set_fd it
+  would close the connection/crash. Added SSL_change_fd() to change the FD
+  directly through BIO_set_fd.
2000-11-19 18:05:03 +00:00
codemastr 4639a2b229 Replaced +I with +V in an error message 2000-11-17 00:18:16 +00:00
stskeeps 648677c637 +- Fixed +d (deaf) so it works again
+- Fixed a SJOIN3<->services problem
2000-11-16 09:02:54 +00:00
codemastr 0c9f2aa846 Removed some leftovers from the &channel code (which fixed a minor bug as well) 2000-11-15 23:33:14 +00:00
codemastr ef3397baf6 TODO updated 2000-11-12 22:15:16 +00:00
stskeeps 293125eb84 +- #define STATSWRITING will make ircd write ircd.stats every 4 seconds,
+  idea/sortof by WaveRide
+    Format of ircd.stats:
+       <global users>
+       <global invisible users>
+       <global servers>
+       <irc operators>
+       <unknown connections>
+       <local clients>
+       <local servers>
+       <local max clients>
+       <global max clients>
2000-11-12 17:57:05 +00:00
stskeeps 7e8ecc7dac +- Fixed NO_OPEROVERRIDE bug reported by otherguy 2000-11-12 15:04:33 +00:00
stskeeps 7debfeb86a . 2000-11-10 21:05:54 +00:00
stskeeps 02582580dd +- Added /botserv /bs command, patch by ATHnet.de 2000-11-10 21:01:11 +00:00
drbin 50d67017fc removing accidental commit 2000-11-10 20:37:22 +00:00
stskeeps 5b6dbb1e54 fixes 2000-11-10 14:34:34 +00:00
stskeeps 98c6c668ae . 2000-11-07 14:47:50 +00:00
stskeeps 9dfc0828f9 . 2000-11-07 14:41:38 +00:00
stskeeps 5a93d1a5e9 +- Fixed the masskill bug with replacing "Server Exists" code.. i removed it
+  accidentialy last time
2000-11-07 05:51:14 +00:00
codemastr f97882d2bb fixed some bugs 2000-11-05 20:29:54 +00:00
stskeeps 41e02c72a0 +- Fixed compile error with SSL 2000-11-05 19:36:11 +00:00
stskeeps e64c18860f . 2000-11-05 18:15:55 +00:00
codemastr 6510adeb23 memory clean ups 2000-11-04 19:02:24 +00:00
stskeeps f954969f7d +- Possible fixed a internal server list bug 2000-11-02 17:14:47 +00:00
stskeeps fea8930bb2 +- Autodetects /usr/sbin/openssl now, thanks trinity
+- Fixes a missing : in SJOIN
2000-11-01 06:13:54 +00:00
codemastr d51af6f8b5 tokenized PING and PONG 2000-10-30 21:47:54 +00:00
stskeeps 6d9e619b26 +- Possible fixed some b64 bugs 2000-10-30 15:46:44 +00:00
stskeeps 2fd3104391 . 2000-10-29 18:48:15 +00:00
stskeeps bea668a89f +- Probably fixed the hash bug, again. 2000-10-29 18:19:44 +00:00
codemastr c2de53cf85 Fixed the /list showing only 64 channels bug 2000-10-29 18:02:59 +00:00
stskeeps d0404fd0e8 +- Added TS2ts (supporting the SJB64 stuff), and fixed the !0 timestamp bug 2000-10-29 17:25:08 +00:00
stskeeps 4fb309fbde -- Fixed a wierd channel message bug
+- Fixed a wierd channel message bug ||
+- Fixed a bug where non-NS servers would crash when linking
2000-10-29 16:08:20 +00:00
stskeeps e50d397e93 . 2000-10-29 12:22:19 +00:00
stskeeps 8735a0f6bf . 2000-10-29 12:17:49 +00:00
stskeeps b6e61e1302 +- Fixed bug where duplicate numerics could occur
+- Fixed the hashing bug (thank you ROXnet ...)
2000-10-29 10:57:18 +00:00
stskeeps 2353bd2011 . 2000-10-29 10:40:31 +00:00
stskeeps 56dc3a3e1d . 2000-10-29 09:17:19 +00:00
stskeeps 856282da07 +- Fixed a linking bug (where did that come from) 2000-10-29 08:14:43 +00:00
stskeeps cdea0263ac +- Fixed the /list bug, reported by many people 2000-10-28 22:40:28 +00:00
stskeeps 4400b32055 +- Added some fixes on the SJB64 crashing bug, and added tokenization in
+  channel messsages (yahooooo!)
2000-10-28 20:57:24 +00:00
codemastr 714c97b006 Added chmode +N - no nick changes 2000-10-28 19:04:09 +00:00
codemastr 2c5abc8c2d removed sendto_helpops 2000-10-28 17:07:51 +00:00
stskeeps 00b464154b +- Fixed the SJB64 bugs that misplaced users 2000-10-28 15:42:27 +00:00
codemastr e534e67628 made use of ircsprintf in more places 2000-10-27 22:28:41 +00:00
codemastr 10bc9a408b made IsULine take 1 param 2000-10-27 20:50:58 +00:00
codemastr 8a95221fae various fixes 2000-10-26 22:12:47 +00:00
stskeeps 71bdc5c08d +- Added protoctl SJB64, which adds B64-9 timestamps to many timestamping
+  operations
+- Added ircsprintf %B (base64-9^10) with ! as prefix, and %b (no prefix)
2000-10-26 17:09:35 +00:00
stskeeps 857b3c3a84 +[Unreal3.1.1-Darkshades]
+- Fixed a warning in CENSOR_QUIT
+- Fixed the G:Line user wrongly matching (ip-alike addys didnt check user)
2000-10-26 16:01:32 +00:00
stskeeps 7eb9d0e71a +- Made find_server_b64_or_real be a little faster, possible fixing bug
+- Made /stats s checking check for sanity or insanity (ignore them for 0
+  numerics)
+- Fixed SJOIN (mp2parv) bug, that caused insane desynchs
+- Changed Cannot find server message to be to sendto_realops
+- Fixed a warning in CENSOR_QUIT
2000-10-26 13:50:44 +00:00
stskeeps f4fde73489 . 2000-10-25 18:32:45 +00:00
stskeeps 14bb1968ba Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.258
diff -u -r1.1.1.1.2.1.2.1.2.258 Changes
--- Changes	2000/10/22 17:51:31	1.1.1.1.2.1.2.1.2.258
+++ Changes	2000/10/25 18:26:37
@@ -638,3 +638,5 @@
 - Merged in changes from TEMPcvs branch
 - Fixed a /UNSQLINE para problem, found by Joe
 - #define SHOW_SECRET now allows all ircops to see +s channels in /whois.  If not defined, only net/tech admins can.
+- Added #define CENSOR_QUIT, for WaveRide
+- Fixed hashing bug that caused the server to crash on exit
2000-10-25 18:26:40 +00:00
angel11 ee31dd9fa0 Changed the way +s channels show up in /whois 2000-10-22 17:51:31 +00:00
stskeeps 30be1fa550 +- Fixed a /UNSQLINE para problem, found by Joe 2000-10-22 06:35:50 +00:00
stskeeps aa0ac19e18 +- Changed ./Config to detect SSL better, and generate certificates properly
+- Removed some annoying logging in ssl.c
+- Merged in changes from TEMPcvs branch
2000-10-21 06:56:22 +00:00
stskeeps 8c481239de +- Made SHOWCONNECTNOTICES work properly again, also with SSL 2000-10-07 18:51:36 +00:00
codemastr 8297e30cd4 .. 2000-10-07 18:28:19 +00:00
codemastr 0983f82c08 Added some P:line flags 2000-10-07 18:08:08 +00:00
stskeeps 554f1a0c15 +- Added SSL connections, open ports with P:ip:s:*:port to make them SSL
+  ports, made after hq.alert.sk's implementation
2000-10-07 06:34:33 +00:00
stskeeps e94bf80328 SSL support for UnrealIRCD! 2000-10-07 06:33:42 +00:00
stskeeps 5b3b13772b *** empty log message *** 2000-10-04 18:22:07 +00:00
stskeeps 32122c7018 .. 2000-09-17 15:24:01 +00:00
drbin a1b617b6d0 *** empty log message *** 2000-09-17 15:19:54 +00:00
drbin a46f14412d Fixed Bug in Win32 New DNS system ... bloody pointers and locking 2000-09-17 15:18:05 +00:00
drbin 0f2dd2ef18 NewDNS System 2000-09-17 11:43:36 +00:00
cvs2hg bfb98ee28f fixup commit for tag 'unreal3_1_sf' 2000-09-17 10:11:43 +00:00
stskeeps b0c04f4b43 . 2000-09-17 10:11:42 +00:00
stskeeps 362ec0b08d +- Fixed the passwd NICK problem 2000-09-16 19:39:33 +00:00
stskeeps b3fc0f5d6b +- FIXED "BUG" caused by NEWDNS *shrug* 2000-09-16 18:21:29 +00:00
drbin 40075204f0 NewDNS 2000-09-15 20:42:06 +00:00
drbin 9de62da6f3 NewDNS syetem 2000-09-15 20:32:19 +00:00
drbin 98047de919 New DNS UPDATE 2000-09-15 20:16:11 +00:00
stskeeps 29b4c9c983 +- Possible fixed the SJOIN kick bug (mode +Q), servers can now always kick 2000-09-10 18:08:39 +00:00
stskeeps 5392dd8acf +- Fixed /mode # + bug reported by PhatNet/Mind 2000-09-09 20:34:16 +00:00
codemastr 8f561e9337 added LIST_SHOW_MODES to list chmodes in /list 2000-09-09 19:21:47 +00:00
codemastr 6a356f7e2d fixed -Wall warnings 2000-09-08 21:58:11 +00:00
codemastr 978dd4071e Major changes to the way +I works 2000-09-07 21:10:40 +00:00
angel11 72cd2b5e99 Fixed two files that got screwed up in commit (my bad) 2000-09-04 20:18:25 +00:00
angel11 0fdef4f961 Away msgs no longer in whowas 2000-09-04 20:06:12 +00:00
codemastr 73e45d7537 fixed some +K bugs 2000-09-04 19:39:19 +00:00
stskeeps 493ba9981f +- Modified and fixed the NOTICE bug totally, with some waste of the nospoof
+  system
2000-09-03 18:16:25 +00:00
stskeeps cd4349598d +- Fixed a wierd NOTICE bug 2000-09-03 16:54:16 +00:00
stskeeps 537a91666e +- Fixed some REAL dumb find_server_quick bugs 2000-09-03 16:35:30 +00:00
drbin b6dee3fd9d *** empty log message *** 2000-09-02 21:48:28 +00:00
drbin 6cbcc627cf *** empty log message *** 2000-09-02 21:32:59 +00:00
drbin 2bb36dd76c *** empty log message *** 2000-09-02 20:58:40 +00:00
drbin e486efb289 *** empty log message *** 2000-09-02 20:48:41 +00:00
drbin 5c0151f976 Simple Usage Docs for wircd 2000-09-02 20:39:30 +00:00
drbin c5b7e0c1e7 *** empty log message *** 2000-09-02 20:24:33 +00:00
drbin 88c77ce89e *** empty log message *** 2000-09-02 20:16:31 +00:00
codemastr e85a37b814 removed /users and all utmp calls 2000-09-02 17:37:35 +00:00
codemastr a7ee96c3ce fixed a bug when running the ircd with -h 2000-09-02 16:32:28 +00:00
drbin 377d9554d3 Fixed previous thing again 2000-09-02 16:03:15 +00:00
drbin ea41e25761 fixed "if (sptr->passwd[0])" causing win32 fault 2000-09-02 15:50:07 +00:00
stskeeps f564867259 . 2000-09-02 11:34:35 +00:00
stskeeps 23438196eb Fixed a NOTICE bug 2000-09-02 07:52:18 +00:00
stskeeps 55a0b03f03 . 2000-09-02 07:48:52 +00:00
codemastr e68c66b260 ... 2000-09-01 21:09:21 +00:00
codemastr 7cbbef2e36 Made aClient->passwd dynamically allocated 2000-09-01 20:52:00 +00:00
codemastr ecdce7061b Made cached MOTDs dynamically allocated 2000-09-01 20:13:55 +00:00
codemastr 87ca77c48e made some updates to ./update 2000-09-01 15:49:31 +00:00
codemastr cca7cffb93 Fixed some morew -Wall warnings 2000-09-01 14:28:17 +00:00
codemastr bb4f0e3393 fixed some -Wall warnings, and removed all unused vars 2000-08-31 22:05:34 +00:00
stskeeps d83fb7d37f + - Added WHOIS command (working) to IRCbot-
+- Fixed a fun doublechar token problem (the AA unknown command)
2000-08-26 19:26:02 +00:00
stskeeps c07a9207ca +- Added IRCd bot (raw commands) and the IRC bot, webtv.c 2000-08-26 19:05:09 +00:00
stskeeps 7cde16eac1 +- Added IRCd bot (raw commands) and the IRC bot, webtv.c 2000-08-26 15:52:44 +00:00
stskeeps e03c9bdf42 +- Fixed another SJOIN problem, but not the exact one i was looking for 2000-08-26 14:24:22 +00:00
stskeeps 582e6b9f30 +- Removed SUMMON totally 2000-08-25 19:39:54 +00:00
stskeeps ad8a1bf785 +- More memory cleanups, changed aClient->refcnt to a signed char,
+  aClient->hopcount to unsigned char
+- Changed aChannel->mode.msgs & .per to unsigned short, and changed
+  .kmode to unsigned char
+- Changed aChannel->users to unsigned short (max 65536 users per channel)
+  and FloodOpt->nmsg to an unsigned short
2000-08-25 19:30:41 +00:00
codemastr 3e6f1fce93 more memory cleanups 2000-08-25 19:20:54 +00:00
codemastr 18dde16b11 memory cleanups 2000-08-25 18:40:09 +00:00
stskeeps d3cfcdc6b0 - Removed the ERR_NOTONCHANNEL message in numeric.c =P 2000-08-25 17:52:44 +00:00
stskeeps cccda143b1 Last part of fix 2000-08-25 17:32:24 +00:00
stskeeps 649b5d812e -
+- Fixed the G:line bugs, i hope - moved tkl_sweep into a loopstruct
2000-08-25 17:29:24 +00:00
stskeeps e3339d4003 eek 2000-08-25 16:20:41 +00:00
stskeeps 1786f8f03b same as above 2000-08-25 16:18:57 +00:00
stskeeps c28527ade3 . 2000-08-25 16:18:11 +00:00
stskeeps 90f0809b44 . 2000-08-25 15:41:37 +00:00
stskeeps dc5f3390bc . 2000-08-22 15:40:28 +00:00
stskeeps 25760a38f1 . 2000-08-22 15:40:27 +00:00
stskeeps 18c669cf47 .. 2000-08-22 15:30:56 +00:00
cvs2hg ae21e16beb fixup commit for tag 'unreal3_1_plus' 2000-08-20 11:58:24 +00:00
stskeeps 623f6a44a0 . 2000-08-20 11:58:23 +00:00
stskeeps 4981573f80 +- Fixed /server so it doesnt support SERVER name :info anymore.. 2000-08-20 08:21:46 +00:00
stskeeps cb5de25f7e . 2000-08-20 08:04:39 +00:00
stskeeps ae1a133435 +- Made /kick for opers only be possible for netadmin/techadmin 2000-08-20 08:03:13 +00:00
stskeeps fc1a6c313b +- Fixed ban merging/similar bug in SJOIN 2000-08-19 17:48:58 +00:00
stskeeps 601d97dd93 +- Fixed some problems/typos/notlookingsogood (TM) bugs, in the tkl code 2000-08-19 17:44:44 +00:00
codemastr b69361e947 fixed a typo in /vhost 2000-08-19 17:25:38 +00:00
stskeeps c064f9d5e9 +- Removed INV_TRACK 2000-08-19 15:09:38 +00:00
stskeeps fe866e500b . 2000-08-19 15:06:57 +00:00
stskeeps 0bb293925d +- Made vhost strip too long vhosts 2000-08-19 14:40:42 +00:00
stskeeps fe95cb9a1f + and dynconf, chrestrict 2000-08-19 14:28:23 +00:00
stskeeps cd277778a3 . 2000-08-19 13:59:45 +00:00
stskeeps 7bc10582c5 +- Added some portability stuff 2000-08-19 13:49:35 +00:00
stskeeps b93a3e9e93 Checkmate 2000-08-19 13:36:02 +00:00
stskeeps 06a6b4c07f Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.201
diff -u -r1.1.1.1.2.1.2.1.2.201 Changes
--- Changes	2000/08/18 19:04:02	1.1.1.1.2.1.2.1.2.201
+++ Changes	2000/08/19 10:08:57
@@ -560,3 +560,4 @@
 - Added IRIX support (does it work?)
 - Fixed crypter so it actually functions (Makefile now sets mode 700) and
   it encrypts X and N lines too.
+- Fixed empty mode sends in register_user, reported by Bagge
2000-08-19 10:08:58 +00:00
angel11 34b46855a2 Fixed crypter 2000-08-18 19:04:02 +00:00
codemastr 65393c21ca *** empty log message *** 2000-08-18 16:44:35 +00:00
codemastr 0c9fd1139c added IRIX support (does it work?) 2000-08-18 16:44:06 +00:00
codemastr d5da9ddb9e fixed a +h bug 2000-08-18 16:14:24 +00:00
stskeeps 70873bcf00 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.197
diff -u -r1.1.1.1.2.1.2.1.2.197 Changes
--- Changes	2000/08/17 19:27:59	1.1.1.1.2.1.2.1.2.197
+++ Changes	2000/08/18 16:02:24
@@ -555,3 +555,4 @@
   badwords :P, does not work in channels
 - Removed the old GLINE system, TKL is now standard.
 - Added INV_TRACK define, we want people testing this.
+- Fixed the -1 usercount bug, found by codemastr, fixed by Stskeeps
2000-08-18 16:02:25 +00:00
stskeeps a3ec5a5fb8 +- Removed the old GLINE system, TKL is now standard.
+- Added INV_TRACK define, we want people testing this.
2000-08-17 19:28:00 +00:00
stskeeps c0f596fbb7 + badwords :P, does not work in channels
+- Removed the old GLINE system, TKL is now standard.
\ No newline at end of file
2000-08-16 16:51:55 +00:00
stskeeps 4ae6cd2bf4 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.194
diff -u -r1.1.1.1.2.1.2.1.2.194 Changes
--- Changes	2000/08/13 19:03:33	1.1.1.1.2.1.2.1.2.194
+++ Changes	2000/08/15 19:42:31
@@ -550,3 +550,6 @@
 - Fixed a bug with mkpasswd on OpenBSD
 - Added desynch +e warning, and updated ./update enough ...
 - Updated update to work better, and that you can use lynx instead of wget
+- Added #undef SHUN_NOTICES, to add notices for users who are shunned
+- Fixed bug with U:Lines should be able to privmsg/notice and recieve
+  badwords :P, does not work in channels
\ No newline at end of file
2000-08-15 19:42:32 +00:00
codemastr 242d9ab45d ... 2000-08-14 18:47:12 +00:00
stskeeps a4d4b20b2c Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.193
diff -u -r1.1.1.1.2.1.2.1.2.193 Changes
--- Changes	2000/08/13 17:28:30	1.1.1.1.2.1.2.1.2.193
+++ Changes	2000/08/13 19:03:33
@@ -548,4 +548,5 @@
   problem
 - Hopefully fixed the +x problem
 - Fixed a bug with mkpasswd on OpenBSD
-- Added desynch +e warning, and updated ./update enough ...
\ No newline at end of file
+- Added desynch +e warning, and updated ./update enough ...
+- Updated update to work better, and that you can use lynx instead of wget
2000-08-13 19:03:33 +00:00
stskeeps d42135097a . 2000-08-13 18:34:04 +00:00
stskeeps 9c4d0c511a . 2000-08-13 17:28:30 +00:00
stskeeps 85790c8442 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.191
diff -u -r1.1.1.1.2.1.2.1.2.191 Changes
--- Changes	2000/08/13 16:09:57	1.1.1.1.2.1.2.1.2.191
+++ Changes	2000/08/13 17:24:47
@@ -548,3 +548,4 @@
   problem
 - Hopefully fixed the +x problem
 - Fixed a bug with mkpasswd on OpenBSD
+- Added desynch +e warning, and updated ./update enough ..
\ No newline at end of file
2000-08-13 17:24:48 +00:00
codemastr c0c478112f Fixed a bug with mkpasswd on OpenBSD 2000-08-13 16:09:58 +00:00
cvs2hg 5406e9fa99 fixup commit for tag 'unreal3_1_fixpack1' 2000-08-13 15:29:15 +00:00
stskeeps 030b9c8291 cvs diff -u Changes 2000-08-13 15:29:14 +00:00
stskeeps 4493453545 . 2000-08-13 15:03:06 +00:00
stskeeps df0a433709 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.187
diff -u -r1.1.1.1.2.1.2.1.2.187 Changes
--- Changes	2000/08/11 19:31:50	1.1.1.1.2.1.2.1.2.187
+++ Changes	2000/08/13 14:39:47
@@ -543,3 +543,4 @@
 - Added Dianora's /userhost
 - Recoded /links using NS
 - Recoded /map a bit using NS, and added usercounts to Server struct
+- Some crazy time_t -> TS stuff, will save us some time in 2038
2000-08-13 14:39:49 +00:00
stskeeps 6c3bbf0009 *** empty log message *** 2000-08-11 19:34:45 +00:00
stskeeps bf7a3d3133 +- Recoded /map a bit using NS, and added usercounts to Server struct 2000-08-11 19:31:51 +00:00
stskeeps fb602a74e4 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.185
diff -u -r1.1.1.1.2.1.2.1.2.185 Changes
--- Changes	2000/08/11 18:01:14	1.1.1.1.2.1.2.1.2.185
+++ Changes	2000/08/11 18:34:57
@@ -541,3 +541,4 @@
 - Fixed a STRIPBADWORDS bug
 - Fixed a BotMOTD bug
 - Added Dianora's /userhost
+- Recoded /links using NS
2000-08-11 18:34:58 +00:00
stskeeps 040d480e99 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.184
diff -u -r1.1.1.1.2.1.2.1.2.184 Changes
--- Changes	2000/08/08 22:29:15	1.1.1.1.2.1.2.1.2.184
+++ Changes	2000/08/11 18:01:13
@@ -540,3 +540,4 @@
 - Fixed a PART bug
 - Fixed a STRIPBADWORDS bug
 - Fixed a BotMOTD bug
+- Added Dianora's /userhost
2000-08-11 18:01:15 +00:00
codemastr c90d13174d fixed a botmotd bug 2000-08-08 22:29:16 +00:00
codemastr 97e41a7e42 various fixes 2000-08-08 17:22:36 +00:00
stskeeps 7b6582bdcc . 2000-08-08 04:48:46 +00:00
stskeeps 5fde2907f5 *** empty log message *** 2000-08-07 17:48:06 +00:00
cvs2hg 71ce47a71b fixup commit for tag 'unreal3_1_final' 2000-08-07 17:21:49 +00:00
cvs2hg 98b483ee88 fixup commit for tag 'unreal3_1' 2000-08-07 17:21:48 +00:00
stskeeps 4ee74b07e3 *** empty log message *** 2000-08-07 17:21:47 +00:00
stskeeps d33f4a8120 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.179
diff -u -r1.1.1.1.2.1.2.1.2.179 Changes
--- Changes	2000/08/07 16:16:14	1.1.1.1.2.1.2.1.2.179
+++ Changes	2000/08/07 16:56:17
@@ -530,3 +530,4 @@
   Config, and all the things we want them to read/do to compile the IRCd
 - Updated PREFIX Client Protoctl
 - Added ^MrMike^'s command list, this one will be updated
+- Removed ID_CVS, hopefully fixing some bastard stuff
2000-08-07 16:56:31 +00:00
stskeeps b7920658e4 *** empty log message *** 2000-08-07 16:16:58 +00:00
stskeeps 135b4d9d87 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.178
diff -u -r1.1.1.1.2.1.2.1.2.178 Changes
--- Changes	2000/08/07 16:08:24	1.1.1.1.2.1.2.1.2.178
+++ Changes	2000/08/07 16:16:14
@@ -529,3 +529,4 @@
 - Added script ./Setup which makes the user forced through Unreal.nfo, FAQ,
   Config, and all the things we want them to read/do to compile the IRCd
 - Updated PREFIX Client Protoctl
+- Added ^MrMike^'s command list, this one will be updated
2000-08-07 16:16:15 +00:00
codemastr 8af8d17d52 fixed PREFIX= 2000-08-07 16:08:24 +00:00
stskeeps d11a065d37 *** empty log message *** 2000-08-07 16:05:37 +00:00
stskeeps 771dee3a5f *** empty log message *** 2000-08-07 15:50:44 +00:00
stskeeps ea519e2a6d . 2000-08-07 15:12:10 +00:00
stskeeps 9ddffa08ea *** empty log message *** 2000-08-07 15:11:11 +00:00
stskeeps 1e7c36aac0 +- Added script ./Setup which makes the user forced through Unreal.nfo, FAQ,
+  Config, and all the things we want them to read/do to compile the IRCd
2000-08-07 15:09:06 +00:00
stskeeps 3de653cbf2 . 2000-08-07 15:03:10 +00:00
stskeeps 4a08c9ba70 *** empty log message *** 2000-08-07 14:52:24 +00:00
stskeeps b750382333 . 2000-08-07 12:49:22 +00:00
stskeeps 98eb86460b . 2000-08-06 15:22:44 +00:00
stskeeps 3026350806 +- Made find_server_quick a prototype, and made some work more quicker as
+  well
2000-08-06 13:29:46 +00:00
stskeeps da3100e642 +- Changed some find_server(name, NULL) to find_server_quick to speed up
+  lookup of servers
2000-08-06 13:21:52 +00:00
stskeeps 6c1cefed98 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.171
diff -u -r1.1.1.1.2.1.2.1.2.171 Changes
--- Changes	2000/08/06 08:25:18	1.1.1.1.2.1.2.1.2.171
+++ Changes	2000/08/06 13:01:54
@@ -518,3 +518,5 @@
 - Updated ./ircd to also say to look at ircd.log
 - Fixed a SQLINE synch bug
 - Added command line option -F to prevent the ircd to fork out
+- Fixed the f*cken TKL bug
+- Fixed a netsplit bug
2000-08-06 13:01:56 +00:00
stskeeps 6f7b608fac Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.170
diff -u -r1.1.1.1.2.1.2.1.2.170 Changes
--- Changes	2000/08/06 08:06:36	1.1.1.1.2.1.2.1.2.170
+++ Changes	2000/08/06 08:24:08
@@ -517,3 +517,4 @@
   the ircd logs it to ircd.log and dies
 - Updated ./ircd to also say to look at ircd.log
 - Fixed a SQLINE synch bug
+- Added command line option -F to prevent the ircd to fork out
2000-08-06 08:25:18 +00:00
stskeeps 081d14d3e9 +- Fixed a SQLINE synch bug 2000-08-06 08:06:37 +00:00
codemastr 1b47753c0f made a check to see if the server name has a . in it if not, die 2000-08-04 20:16:12 +00:00
codemastr 1ebe25c025 made /knock without a reason work and some /knock clean ups 2000-08-04 19:32:00 +00:00
stskeeps 13790b01e3 *** empty log message *** 2000-08-04 12:14:24 +00:00
stskeeps 004f9222a1 *** empty log message *** 2000-08-03 11:07:46 +00:00
stskeeps c3e053033c +- Fixed a SJ3 bug with ban syncing to SJ2 servers 2000-08-03 10:56:02 +00:00
angel11 5561c155de Opers now see +s channels in /whois 2000-08-02 20:32:07 +00:00
codemastr 33c6e5c93b /chghost bug fix 2000-08-02 18:52:10 +00:00
stskeeps b7ee74ec97 +- Disabled anything with time in /list options temporary, causes bugs 2000-08-02 17:45:14 +00:00
codemastr 58f7ef9ca8 fixed a little typo in umode 2000-08-02 17:37:32 +00:00
codemastr 7f96ccb01e more +u fixes 2000-08-02 17:27:09 +00:00
codemastr 7666ceab87 fixed the ulimit core size failed bug 2000-08-02 17:11:39 +00:00
stskeeps e7c69eca78 +- Possible fixed the lopts bug (which i didnt))
+- Fixed a egcs problem in Config, the strtok bug
2000-08-02 15:59:03 +00:00
stskeeps d69bcc41fa *** empty log message *** 2000-08-02 15:46:15 +00:00
stskeeps 4d616cf680 +- Fixed the +lL (+Ll) bug, will first be fixed 100% when all is 3.1 2000-08-02 15:11:11 +00:00
stskeeps dc1eb8bddf Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.156
diff -u -r1.1.1.1.2.1.2.1.2.156 Changes
--- Changes	2000/08/01 17:27:52	1.1.1.1.2.1.2.1.2.156
+++ Changes	2000/08/02 14:55:29
@@ -496,3 +496,5 @@
 - Added sendto_chanops_butone because of codemastr's laziness
 - Fixed a few +u bugs
 - Fixed a +I bug (yes another one)
+- Changed channel.c so that when an opped non +q/+a Oper kicks a user who
+  is +q/+a it invokes an OperKick (patch by llthangel)
2000-08-02 14:55:33 +00:00
codemastr c9e4ba4c98 fixed a few +u bugs and a +I bug 2000-08-01 17:27:53 +00:00
stskeeps c1c1aa2909 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.154
diff -u -r1.1.1.1.2.1.2.1.2.154 Changes
--- Changes	2000/08/01 16:30:15	1.1.1.1.2.1.2.1.2.154
+++ Changes	2000/08/01 16:34:06
@@ -493,3 +493,4 @@
 - Fixed SVS2MODE bug with illegal modes
 - Fixed /notice @%+ bug, where it didnt work at all
 - Fixed a small chmode +u bug
+- Added sendto_chanops_butone because of codemastr's laziness
2000-08-01 16:34:07 +00:00
codemastr 6f9606b331 fixed a small +u bug 2000-08-01 16:30:16 +00:00
stskeeps 345f51b684 -- Fixed SVS2MODE bug with illegal modes
\ No newline at end of file
+(rc2)
+- Fixed SVS2MODE bug with illegal modes
+- Fixed /notice @%+ bug, where it didnt work at all
2000-08-01 16:11:28 +00:00
stskeeps d885489c48 +- Fixed SVS2MODE bug with illegal modes
\ No newline at end of file
2000-08-01 15:54:53 +00:00
cvs2hg 4659dab89c fixup commit for tag 'unreal3_1_rc2' 2000-08-01 10:10:27 +00:00
stskeeps 760dc8dab8 .CVS: ---------------------------------------------------------------------- 2000-08-01 10:10:26 +00:00
stskeeps 5133d62d3c +- Changed channel.c so when you kick someone as halfop it doesn't show as an
+  OperKick (unless you kick an op) (reported by ^Fanta, patch by llthangel)
2000-08-01 06:11:39 +00:00
stskeeps eded88dd61 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.149
diff -u -r1.1.1.1.2.1.2.1.2.149 Changes
--- Changes	2000/07/29 13:34:20	1.1.1.1.2.1.2.1.2.149
+++ Changes	2000/07/31 18:13:34
@@ -486,3 +486,4 @@
 - Fixed a problem in SVS2MODE not displaying mode changes, and well known
   why
 - Recoded SVSNOOP, but the IRCd doesn't get it at all??
+- added llthangel to credits
2000-07-31 18:13:35 +00:00
stskeeps bfb2ce7bce . 2000-07-29 18:10:48 +00:00
stskeeps 6854c9a063 *** empty log message *** 2000-07-29 13:42:37 +00:00
stskeeps 25077eadc1 +- Recoded SVSNOOP, but the IRCd doesn't get it at all?? 2000-07-29 13:34:21 +00:00
stskeeps 3f41561390 +- Introduced NS in SQLINE..
+- Fixed a problem in SVS2MODE not displaying mode changes, and well known
+  why
2000-07-29 13:02:31 +00:00
stskeeps e1499ca0ed +- Introduced NS in SQLINE.. 2000-07-29 12:37:28 +00:00
stskeeps b61f000488 +- Fixed a problem in synch using acptr->name as info line 2000-07-29 12:16:25 +00:00
stskeeps 3ae66ae4e0 +- NS introduction in sendto_serv_butone_token
+- Fixed Q:lined nick NickServ from <unregistered> on Nickname Server message
2000-07-29 11:36:43 +00:00
stskeeps 51a5fa808e *** empty log message *** 2000-07-29 08:27:21 +00:00
stskeeps 236f8ed033 +- NS introduction in sendto_serv_butone_token 2000-07-29 08:08:46 +00:00
codemastr a977359d9f fixed a _small_ memory over use 2000-07-28 20:02:52 +00:00
stskeeps 6426522201 +- Removed UPING UDP socket. Only resfd opens a udp fd now 2000-07-28 19:25:30 +00:00
stskeeps 47ddee28a4 +- Changed find_server_quick to work with masks too .. 2000-07-28 19:19:21 +00:00
stskeeps 249edda423 +- Added llthangel's whoisfix.patch, Makes sure +hv users show up as
+  %#channel instead of +#channel. Bug report by ^Fanta.
2000-07-28 19:10:26 +00:00
stskeeps bde554aaf9 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.138
diff -u -r1.1.1.1.2.1.2.1.2.138 Changes
--- Changes	2000/07/26 10:46:10	1.1.1.1.2.1.2.1.2.138
+++ Changes	2000/07/28 18:57:30
@@ -472,5 +472,5 @@
 - Removed SVSMODE +l support, and fixed servicestamp and +d support
 - Changed to ircu/hybrid6/unreal mix of numeric 005
 - Fixed a SJ3 Fake Direction loopbug (kills on nick collisions)
-- NS part 1
-- SJ3 fixes
+- SJ3 fixes, loop fix
+- Added NS, new generation ALN.
2000-07-28 18:57:41 +00:00
stskeeps 9ec9cba9d9 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.137
diff -u -r1.1.1.1.2.1.2.1.2.137 Changes
--- Changes	2000/07/25 15:37:52	1.1.1.1.2.1.2.1.2.137
+++ Changes	2000/07/26 10:46:07
@@ -472,4 +472,5 @@
 - Removed SVSMODE +l support, and fixed servicestamp and +d support
 - Changed to ircu/hybrid6/unreal mix of numeric 005
 - Fixed a SJ3 Fake Direction loopbug (kills on nick collisions)
-- NS part 1
\ No newline at end of file
+- NS part 1
+- SJ3 fixes
2000-07-26 10:46:10 +00:00
stskeeps f046832f10 Indentation. 2000-07-25 17:43:58 +00:00
stskeeps a055d59f9c indentiation 2000-07-25 15:41:55 +00:00
stskeeps a41b0b5bbb . 2000-07-25 15:37:54 +00:00
stskeeps bf7aad741d . 2000-07-25 14:12:42 +00:00
stskeeps cb74571261 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.135
diff -u -r1.1.1.1.2.1.2.1.2.135 Changes
--- Changes	2000/07/24 21:41:30	1.1.1.1.2.1.2.1.2.135
+++ Changes	2000/07/25 09:35:40
@@ -471,3 +471,4 @@
 - Removed a SJ3 debug msg
 - Removed SVSMODE +l support, and fixed servicestamp and +d support
 - Changed to ircu/hybrid6/unreal mix of numeric 005
+- Fixed a SJ3 Fake Direction loopbug (kills on nick collisions)
2000-07-25 09:35:43 +00:00
stskeeps 993180689a Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.134
diff -u -r1.1.1.1.2.1.2.1.2.134 Changes
--- Changes	2000/07/24 19:33:42	1.1.1.1.2.1.2.1.2.134
+++ Changes	2000/07/24 21:41:27
@@ -470,3 +470,4 @@
 - Added base64 encoding instead, for ALN v2 (NS)
 - Removed a SJ3 debug msg
 - Removed SVSMODE +l support, and fixed servicestamp and +d support
+- Changed to ircu/hybrid6/unreal mix of numeric 005
2000-07-24 21:41:33 +00:00
codemastr aecec0e171 . 2000-07-24 20:07:01 +00:00
stskeeps 52a5b1b038 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.133
diff -u -r1.1.1.1.2.1.2.1.2.133 Changes
--- Changes	2000/07/24 19:16:10	1.1.1.1.2.1.2.1.2.133
+++ Changes	2000/07/24 19:33:40
@@ -469,3 +469,4 @@
 - Removed ALN, and the ALN system.
 - Added base64 encoding instead, for ALN v2 (NS)
 - Removed a SJ3 debug msg
+- Removed SVSMODE +l support, and fixed servicestamp and +d support
2000-07-24 19:33:43 +00:00
stskeeps 9b181f575f Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.132
diff -u -r1.1.1.1.2.1.2.1.2.132 Changes
--- Changes	2000/07/24 18:58:13	1.1.1.1.2.1.2.1.2.132
+++ Changes	2000/07/24 19:16:08
@@ -468,3 +468,4 @@
 - Added /infoserv (you can stop bugging us now skold ;P)
 - Removed ALN, and the ALN system.
 - Added base64 encoding instead, for ALN v2 (NS)
+- Removed a SJ3 debug msg
2000-07-24 19:16:10 +00:00
stskeeps 7a9cade496 @@ -466,3 +466,5 @@
- SJ3 fixes. Let's hope this works (f*cken hell..)
 - Fixed a V:line bug
 - Added /infoserv (you can stop bugging us now skold ;P)
+- Removed ALN, and the ALN system.
+- Added base64 encoding instead, for ALN v2 (NS)
2000-07-24 18:58:18 +00:00
codemastr 009e5353e7 added /infoserv 2000-07-23 18:34:14 +00:00
stskeeps 2988283c76 . 2000-07-22 18:28:42 +00:00
stskeeps 7f3125a0e2 . 2000-07-22 17:31:22 +00:00
codemastr 07353dcf4b Fixed a V:line bug 2000-07-22 16:14:32 +00:00
stskeeps 110e114d90 +- SJ3 fixes. Let's hope this works (f*cken hell..) 2000-07-21 18:50:15 +00:00
stskeeps 8abce466d6 SJ3 fix 2000-07-17 21:06:16 +00:00
codemastr 6054bfabd2 fixed a +L bug and Config typo 2000-07-17 16:45:04 +00:00
stskeeps b1416fc0c0 . 2000-07-17 15:20:58 +00:00
stskeeps 160d1600a6 . 2000-07-17 10:11:26 +00:00
stskeeps 0ba15e3965 *** empty log message *** 2000-07-17 07:31:05 +00:00
stskeeps 5fe68141ad +- Fixed the pesky hostname bug 2000-07-17 07:04:03 +00:00
stskeeps df0815f9bd . 2000-07-16 20:32:39 +00:00
stskeeps 10ad7e34f5 . 2000-07-16 19:42:09 +00:00
stskeeps fcfb9aa3d2 . 2000-07-16 19:01:28 +00:00
codemastr b47a9f53cc added networks/shatstation.network 2000-07-16 19:00:25 +00:00
stskeeps 8617d1ba4c . 2000-07-16 18:55:11 +00:00
codemastr 9bccd6046d added networks/linuxsquare.network 2000-07-16 18:54:23 +00:00
stskeeps 1c8ea8df8c . 2000-07-16 18:49:03 +00:00
stskeeps 3f4174bb96 FUckeup stuff etc, but lets hope it works 2000-07-16 18:48:00 +00:00
codemastr d1839df783 fixed a +I bug 2000-07-16 16:58:17 +00:00
stskeeps 9390a647ed . 2000-07-16 13:39:18 +00:00
stskeeps 3856856120 . 2000-07-16 13:29:08 +00:00
stskeeps 587defb54e .
kd
2000-07-16 13:11:01 +00:00
stskeeps 047a43253c .
k
2000-07-16 13:07:18 +00:00
stskeeps f1c9feb8f7 . 2000-07-16 12:31:56 +00:00
stskeeps 81ce6d38a2 .
kxkx
2000-07-16 11:15:33 +00:00
stskeeps b57669903d .kd 2000-07-16 11:02:59 +00:00
stskeeps 0a7b6dfc3a .
k
: ----------------------------------------------------------------------
2000-07-16 10:31:38 +00:00
stskeeps 56663f23e1 . 2000-07-16 10:25:53 +00:00
stskeeps 0af5d85de7 . 2000-07-16 10:22:12 +00:00
stskeeps 5e9f767c86 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.116
diff -u -r1.1.1.1.2.1.2.1.2.116 Changes
--- Changes	2000/07/16 10:07:14	1.1.1.1.2.1.2.1.2.116
+++ Changes	2000/07/16 10:17:26
@@ -449,8 +449,5 @@
 - Made it so you can remove a protoctl by putting a - in front
 - Fixed a bug in summon
 - Added protection against webproxies
-- SJ3 part 2/3 and a VL fix
-- Indentation and more SJ3 fixes
 - Fixed TKL?
-- 3/4 SJ3 fix
-- Last part SJ3
+- Added SJ3, removed the old
2000-07-16 10:17:32 +00:00
stskeeps 515945254c fixed synching 2000-07-16 10:13:01 +00:00
stskeeps 9d966aa4d0 +- Last part SJ3 2000-07-16 10:07:14 +00:00
stskeeps bf26a46b15 . 2000-07-16 08:59:02 +00:00
stskeeps 6124a68fde +- 3/4 SJ3 fix 2000-07-16 08:58:48 +00:00
codemastr 65118165d6 Fixed the TKL bug? 2000-07-15 23:56:57 +00:00
stskeeps 2e461cba19 +- Indentation and more SJ3 fixes 2000-07-14 20:22:59 +00:00
stskeeps b89bcd31d9 +- SJ3 part 2/3 and a VL fix 2000-07-14 14:47:40 +00:00
codemastr a78d71ee8b *** empty log message *** 2000-07-09 18:47:25 +00:00
stskeeps 9e7138ace5 +- Added protection against webproxies 2000-07-09 18:44:33 +00:00
codemastr 50a94daec7 fixed a bug in summon 2000-07-09 18:13:53 +00:00
codemastr 401c3918af added ability to remove a protoctl flag 2000-07-07 19:36:12 +00:00
stskeeps eb842353cc +- Tokenized nick->nick PRIVMSG and NOTICE
\ No newline at end of file
2000-07-07 12:14:51 +00:00
stskeeps 6c67a4a6b1 +- Fixed some host revealing nick collision stuff 2000-07-07 09:35:35 +00:00
codemastr 3a385f679b added networks/staticedge.network 2000-07-06 18:11:16 +00:00
codemastr 30b6a30fc5 added networks/makenet 2000-07-06 18:05:03 +00:00
stskeeps 6dd738d91c - Fixed a /rehash -garbage bug reported by Curt|s 2000-07-06 17:13:45 +00:00
stskeeps 61b2e99257 - Added a #define capability to config.h (DISABLE_USERMOD),
disables /sethost, /setident, /chgname, /chghost, /chgident
2000-07-06 08:10:20 +00:00
stskeeps 84d8b082c2 +- Added regex portablity and checks in Config 2000-07-05 22:20:41 +00:00
stskeeps fc26ef3e44 +- Fixed a msg.h location problem ..
+- Added secure connections and openssl tracing to Config
2000-07-05 16:55:14 +00:00
stskeeps 32eaeaaf36 +- Fixed a msg.h location problem ..
\ No newline at end of file
2000-07-05 16:25:39 +00:00
stskeeps 8de5089b84 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.97
diff -u -r1.1.1.1.2.1.2.1.2.97 Changes
--- Changes	2000/07/05 15:11:43	1.1.1.1.2.1.2.1.2.97
+++ Changes	2000/07/05 16:25:14
@@ -436,3 +436,4 @@
 - Added VHP protoctl, (not in use in the synch). This makes virthost field
   in NICKv2 use the real virthost even if its +t. (Thanks to SL7)
 - Added support for the CR Java Chat auto join feature
+- Fixed a msg.h location problem ..
\ No newline at end of file
2000-07-05 16:25:19 +00:00
codemastr 3d7b0b6a0b added support for the CR Java Chat autojoin feature 2000-07-05 15:11:43 +00:00
stskeeps 04e9baae17 - Removed any trace of MD5, we use random() for nospoof now, this fixed a
license problem too
- Removed NOSPOOF_SEED01 and 02
- Added VHP protoctl, (not in use in the synch). This makes virthost field
  in NICKv2 use the real virthost even if its +t. (Thanks to SL7)
2000-07-05 13:05:34 +00:00
stskeeps 8a93ea7376 +- Fixed a sendto_serv_butone_token problem 2000-07-04 18:21:41 +00:00
stskeeps fa2a2c2234 - Added doc/crypto.doc describing the encrypted irc protocol 2000-07-04 11:25:37 +00:00
stskeeps 36154d7b10 - Added so stuff like Lost connection to, (report_error) only goes to realops
- Added some more descriptive error messages
2000-07-03 19:25:07 +00:00
stskeeps 5fcadbef9b .
k
2000-07-03 17:25:51 +00:00
codemastr ce9e5c4c84 Added OpenBSD 2.x support 2000-07-02 19:53:31 +00:00
codemastr d6fe0776a2 Fully added V:lines 2000-07-02 00:41:12 +00:00
stskeeps d5fd9a6ce9 +- Fixed some aligning in the VL PROTOCTL
+- Fixed some fucked up passwd stuff again ..
2000-07-01 12:59:00 +00:00
stskeeps 32fc008943 +- Fixed some aligning in the VL PROTOCTL 2000-07-01 10:50:56 +00:00
stskeeps 78545d38dc +- Fixed a crash problem on /quit or /squit 2000-06-30 20:51:03 +00:00
stskeeps 620c7e403d +- Fixed so that in +c it shows if a user is connected securely
+- Backported the passwd stuff, not needed.
2000-06-30 20:28:00 +00:00
codemastr 8ba0a10294 some V:line stuff 2000-06-30 16:33:03 +00:00
codemastr 8b0a1de92f added fclose() calls to vhost, dccdeny, and chrestrict confs 2000-06-29 18:18:37 +00:00
stskeeps b776a4d148 +- Fixed a ->passwd bug caused by codemastr.. 2000-06-29 12:23:26 +00:00
stskeeps a0dcb79a3a +- Added some more crypto stuff
+    - /crypto <algoritm> <keyfile laying in keys/> <parameters>
2000-06-28 20:54:49 +00:00
stskeeps 63e1fa2418 . 2000-06-28 19:45:39 +00:00
stskeeps f2d364aa8a +- Fixed crypto stuff 100% :)) 2000-06-28 19:37:17 +00:00
codemastr 9eeb7a2fc4 made K:line and n:line checking faster 2000-06-28 19:23:17 +00:00
codemastr 7144188368 made a major is_banned speed up 2000-06-28 17:11:55 +00:00
codemastr 2525edca20 removed list_channels 2000-06-28 16:56:21 +00:00
codemastr 279842d017 now can request topic without being a member, and removed topic , support 2000-06-28 16:15:58 +00:00
stskeeps 62323727a8 . 2000-06-27 20:22:33 +00:00
codemastr 645a04aec3 added option to encrypt restart/die passwords 2000-06-27 16:26:05 +00:00
codemastr b8f0063629 added encrypted I:line support 2000-06-27 15:45:41 +00:00
stskeeps 07104d2d7d . 2000-06-27 15:42:38 +00:00
stskeeps 68aba326e1 . 2000-06-27 13:22:57 +00:00
stskeeps 9b0f6b2a9c +- Some more crypto stuff, will work on the new engine tommorow 2000-06-26 21:41:00 +00:00
codemastr 384b7357cd fixed a typo in /stats z 2000-06-25 16:37:41 +00:00
stskeeps 4c039afe84 +- Added Blowfish encryption ability (SetSecure()), will extend to more
+  better encryption
Requires OpenSSL/blowfish
2000-06-25 14:35:24 +00:00
stskeeps 4e96e013ac +- Removed some odd Clone stuff(?) 2000-06-25 08:39:50 +00:00
stskeeps 62fe14251b +- Broken INETD support removed 2000-06-24 21:04:26 +00:00
stskeeps f7acfa8736 . 2000-06-24 20:57:30 +00:00
stskeeps 0a5bb85f2c - Removed IsService() 2000-06-24 20:45:48 +00:00
codemastr 0423078b67 *** empty log message *** 2000-06-24 18:54:11 +00:00
stskeeps 1e250927a2 - Fixed /setname desynch 2000-06-24 18:33:46 +00:00
codemastr 711ffb5c62 ... 2000-06-24 18:29:56 +00:00
stskeeps 2265903961 - Fixed last R_LINE stuff (check_time_interval) 2000-06-24 18:20:58 +00:00
codemastr 65cdea5cfe redid s_err.c to be faster (based on bahamut) 2000-06-24 18:14:26 +00:00
codemastr e3234d5671 *** empty log message *** 2000-06-24 15:19:36 +00:00
codemastr 4dd196bbc6 made /msg irc always work, cleanups, made it so all servers behind a U:lined server are U:lined 2000-06-23 21:32:25 +00:00
codemastr 0b85e10148 added networks/seveneagle.network 2000-06-23 18:37:52 +00:00
codemastr a35dd03e50 *** empty log message *** 2000-06-23 18:30:03 +00:00
stskeeps 4a1cded0fd - Made IRCII_KLUDGE disappear :P
- Fixed SENDQ_ALWAYS to be mainstream define (as always)
2000-06-23 18:24:12 +00:00
stskeeps 5c87943196 - Made IRCII_KLUDGE disappear :P 2000-06-23 18:19:49 +00:00
stskeeps f09b334e86 Missed one thing 2000-06-23 18:18:06 +00:00
stskeeps 985561c522 - Removed DISALLOW_MIXED_CASE and IGNORE_FIRST_CHAR, waste of space
- Made IDLE_FROM_MSG stock define
2000-06-23 18:17:10 +00:00
stskeeps 0b7c79b488 k- Removed aHush, not in use 2000-06-23 18:09:29 +00:00
stskeeps b3d8eb3104 - Fixed a wrongly outputted message (in hash collision detect) 2000-06-23 18:07:25 +00:00
stskeeps b6cb4e3661 - Made operkick be part of NO_OPEROVERRIDE
- Made admins unable to be shunned
- Made some socket errors which normally only showed up in DEBUGMODE, show
  up in ircd.log as well
2000-06-22 13:48:16 +00:00
stskeeps 031a342e60 Made operkick be part of OperOverride 2000-06-21 18:05:21 +00:00
stskeeps 023d869ffd - Small fix with ./Config showing incorrect path of stddef.h 2000-06-20 18:05:43 +00:00
stskeeps 4dcaaec5a3 - Fixed a bug in badwords not loading words correctly, and upped word limit
to 50
2000-06-20 08:15:13 +00:00
codemastr 614587cb7c fixed a chgident overflow 2000-06-19 20:49:27 +00:00
stskeeps 1d750653ab . 2000-06-19 16:21:32 +00:00
cvs2hg a278e31c9f fixup commit for tag 'unreal3_1_rc1' 2000-06-19 09:32:53 +00:00
stskeeps 39a02452d2 . 2000-06-19 09:32:52 +00:00
stskeeps 2016740b47 Stamp. 2000-06-18 10:22:40 +00:00
stskeeps 84c8525bc7 . 2000-06-18 10:21:45 +00:00
stskeeps 4feb893c3f - Made so auditorium mode shows users to @'s 2000-06-18 10:12:41 +00:00
stskeeps a30af17cb8 - Fixed ./Config showing freebsd 3.0 in freebsd 4
- Made so badwords.*.conf accepts # comments
- Added some default default badwords.message.conf and badwords.channel.conf
2000-06-18 10:10:34 +00:00
stskeeps 1d41fae3ca - Fixed /shun showing "1970" to permanently shunned users
- Fixed ./Config showing freebsd 3.0 in freebsd 4
2000-06-17 11:51:34 +00:00
stskeeps a31694c45a - Made /addline write to correct place when you use -f
- Made /zline not memory corrupt/crash, bad df bug
- Fixed a counting bug with unknown connections, very hopefully
- Fixed /htm giving wrong response when /htm to 1
2000-06-17 10:51:35 +00:00
drbin bb015165bc added ircsprintf.h to #include so that DEBUGMODE works !!! 2000-06-16 20:15:44 +00:00
drbin da53d2f0bf Added DEBUGMODE support in ircsprintf.h 2000-06-16 20:08:11 +00:00
drbin a80e94f246 Added DEBUG=1 support in win32 makefile 2000-06-16 19:40:18 +00:00
stskeeps a34dd526f2 - Added config.h setting to disable oper overrides, NO_OPEROVERRIDE 2000-06-16 17:08:10 +00:00
stskeeps 38a9332ce1 - Fixed a +L bug, (3.1 only) where any op could set +L
- Added channel mode +u, "Auditorium". Makes /names and /who #channel only
  show @'s
2000-06-16 17:07:21 +00:00
codemastr 956939e79b made perm TKLs allowed by using 0 as the time 2000-06-15 22:39:14 +00:00
drbin 227a0375e7 Updating to include aln.c 2000-06-15 20:43:36 +00:00
drbin 8afe521a85 *** empty log message *** 2000-06-15 20:06:50 +00:00
drbin a1e3d57d9e Fixed /Shun and /Gline Conflict .... (= != ==) 2000-06-15 20:01:09 +00:00
stskeeps c3dcf78497 Some bashing 2000-06-15 10:22:38 +00:00
stskeeps 3edeb401a7 Allow /shunned users to use /pong now 2000-06-14 17:25:42 +00:00
stskeeps f267677ce5 Poll() stuff 2000-06-11 13:05:36 +00:00
stskeeps c3773ecd9f - /shun accepts nick in add mode now (adds *@host) 2000-06-10 13:52:42 +00:00
stskeeps 51f84140fc - /close doesnt reveal realhost anymore 2000-06-10 13:39:43 +00:00
stskeeps b88cec9d5f bah 2000-06-10 10:45:01 +00:00
stskeeps e6b7e409ce . 2000-06-07 20:09:46 +00:00
stskeeps 422dbf746f - Made all ircops able to use +F (totally this time)
kd
2000-06-07 19:30:41 +00:00
stskeeps 7e3d2d8ea7 Made all IRCops able to use +F 2000-06-07 14:14:49 +00:00
stskeeps 12d99c8026 - Fixed the double +cF notice on local connections exiting, ugly hack
- Removed the last traces of unix sockets, flag 0x10 free now
2000-06-06 20:01:17 +00:00
stskeeps a75432c9ca In ./Config it runs a test program saying how many socket()s you can open 2000-06-06 12:48:10 +00:00
stskeeps bc87b99853 Small testing stuff 2000-06-06 12:39:08 +00:00
stskeeps c2d9acd82e sendto_serv_butone_token_opt 2000-06-04 14:51:38 +00:00
stskeeps afcea0d1ec Fixed the NickServ sets mode +creep SVS2MODE bug 2000-06-04 12:24:20 +00:00
stskeeps 0a2e7468d0 - Fixed a crash problem in register_user and most likely fixed the "strange
vhost" thing, (was a dumb bug, mising ircsprintf)
2000-06-04 09:14:48 +00:00
stskeeps d725dd805d . 2000-06-03 20:31:29 +00:00
stskeeps c8ac2db9f8 .. 2000-06-03 20:25:52 +00:00
stskeeps f1b988d04b Bah! 2000-06-03 20:23:12 +00:00
stskeeps e24344bde1 .. 2000-06-03 20:20:58 +00:00
stskeeps 565266a205 Access list stuff 2000-06-03 20:13:13 +00:00
stskeeps d76006aea2 .. 2000-06-03 20:11:50 +00:00
stskeeps 36b89e78bc . 2000-06-03 19:42:49 +00:00
stskeeps 4c499f8417 Test.. 2000-06-03 19:37:00 +00:00
stskeeps 989a5462d8 .. 2000-06-03 16:38:07 +00:00
stskeeps 4ffba555f3 Took out sequent/dynix support 2000-06-02 18:48:00 +00:00
stskeeps 34d0a3591d Test .. 2000-06-02 14:59:48 +00:00
stskeeps 01a0cbe628 !¤¤%!%1 2000-06-02 11:43:09 +00:00
stskeeps f2a31c5e21 possible res fix 2000-06-02 11:28:26 +00:00
stskeeps 7a78d5afff .. 2000-06-02 11:25:43 +00:00
stskeeps c2d59695ed Took out nick did a userhost on you and minimized hash table size so it went
0.6% memory down.adjust hash.h U_MAX if that is needed for performance
2000-06-02 11:25:00 +00:00
stskeeps 546af36469 - /stats s is now avail only for opers in mainstream 2000-06-02 10:48:49 +00:00
stskeeps b7b6e232ce .. 2000-06-01 20:51:05 +00:00
stskeeps b7d9439bdc - NETINFO protocol 0 is accepted as valid protocool (for services etc) 2000-06-01 14:20:57 +00:00
stskeeps a1cc97be8d Various fixes, and versioned up to RC1 2000-05-31 13:51:32 +00:00
stskeeps 0b3d4164fe - Made SVSO (ofcourse) IRCstats.operators--;
- Another IRCstats.unknown fix. Hope this works (hacked from undernet code)
2000-05-31 13:43:17 +00:00
stskeeps d7231c1801 Made /close reset IRCstats.unknown 2000-05-31 13:10:28 +00:00
codemastr 017bd482f1 *** empty log message *** 2000-05-30 21:46:13 +00:00
stskeeps c763583d33 First patch of ZIP_LINKS 2000-05-30 19:58:50 +00:00
stskeeps 48f9384a82 First part of 2000-05-30 19:58:27 +00:00
codemastr 2f8f56c191 *** empty log message *** 2000-05-29 19:21:03 +00:00
codemastr c53039ed41 *** empty log message *** 2000-05-29 15:48:45 +00:00
stskeeps adced2cf58 Made MODE_X and the family show mode changes, and made STRIPBADWORDS
standard
2000-05-29 15:09:01 +00:00
stskeeps 4dc224d3ff - A little anti-0 fix in channel.c 2000-05-29 14:47:54 +00:00
stskeeps c66be9025d Removed bsdinstall, isnt needed 2000-05-29 10:23:27 +00:00
stskeeps 588614da96 Removed a CVS_ID from whowas.c 2000-05-29 10:22:15 +00:00
stskeeps a59c66fd49 Added /shun 2000-05-29 10:17:13 +00:00
stskeeps 651ec98abc Fixed codemastr fucking up "ircd" 2000-05-29 07:25:26 +00:00
codemastr 59337acc04 fixed /stats C not showing N:lines 2000-05-28 21:53:09 +00:00
stskeeps 769f767b05 A compile fix.. 2000-05-28 17:35:42 +00:00
stskeeps 19a1e80ba8 Did a hack on ALN 2000-05-28 17:32:31 +00:00
stskeeps 58d92222ae Fixes in Unreal.nfo 2000-05-28 16:06:54 +00:00
stskeeps 5b22717119 Made the Own-protection just reduce the class maxli instead of bitching..
(class.c, s_user.c)
2000-05-28 16:03:08 +00:00
stskeeps 1f747eb73a Added rapta to beta tester credits 2000-05-28 15:49:29 +00:00
stskeeps 4f33019ee9 test of new cvs 2000-05-28 14:30:38 +00:00
cmunk 36e9700f16 Some win32 fixes done by Drbin 2000-05-28 09:01:26 +00:00
cvs2hg 843b580a40 fixup commit for branch 'devel' 2000-05-28 08:56:23 +00:00
206 changed files with 52129 additions and 21898 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Configuration Program
for Unreal3.2
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.
+104 -38
View File
@@ -1,50 +1,116 @@
Unreal3.2 Release Notes
========================
Unreal3.2.3 Release Notes
==========================
==[ GENERAL INFORMATION ]==
* If you are upgrading, make sure you run make clean and ./Config before doing make
* The official UnrealIRCd documentation is doc/unreal32docs.html
- 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/
- 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 ]==
- Added german docs (doc/unreal32docs.de.html)
- In a spamfilter reason field '_' gets converted to a space (' '),
now also added '__' which gets converted to underscore itself ('_').
==[ MAJOR BUGS FIXED ]==
- '/spamfiltere remove' was often removing the wrong entry (RC2 bug)
- The TRE regex library was sometimes matching too much if [range].+
was used multiple times.
- Fixed a remote include issue and added timeouts in case a connection/transfer fails
==[ MINOR BUGS FIXED ]==
- Sometimes hosts were not resolved on Windows due to a resolver bug
- spamfilter and sqline: memory leak on /rehash (a few kb)
- spamfilter: protect against insane long reason/regex fields in configfile
- set::modes-on-join now accepts extended channelmodes
- Opteron: various crashbugs fixed, should work ok now.
- Win32 GUI "rehash all" option did not reload motd/rules.
- Same for ./unreal rehash on *NIX
- Usermode 'r' (registered) was unset if you changed the case of your
nick (eg: 'blah'->'Blah'), this affected at least ircservices.
- vhost::swhois wasn't shown if you did a remote /whois.
- Made './curlinstall' work with new c-ares-1.0.0.
- Fixed compile problem on some machines related to TRE / libintl.
- /who +m was incorrectly hiding +H users even for opers.
- Fixed /rehash bug if an .so or remote include didn't load properly
==[ 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 ]==
- spamfilter.conf: fixed fyle sig, added sigs for: soex, Nkie, LOI, Gaggle,
changed a lot of sigs from block to gline.
- Windows: now using new Inno Setup which made the installer 300k smaller
- Docs, help.conf and other text updates.
- 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.
==[ COMMING UP ]==
- You can expect module support on windows in a nearby release.
==[ 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
* See Changelog for more details
+839 -3092
View File
File diff suppressed because it is too large Load Diff
+3093
View File
File diff suppressed because it is too large Load Diff
+254 -25
View File
@@ -21,6 +21,27 @@
RUN_CONFIGURE () {
ARG=""
# Do this even if we're not in advanced mode
if [ "$SHOWLISTMODES" = "1" ] ; then
ARG="$ARG--with-showlistmodes "
fi
if [ "$ADVANCED" = "1" ] ; then
if [ "$TOPICNICKISNUH" = "1" ] ; then
ARG="$ARG--with-topicisnuhost "
fi
if [ "$SHUNNOTICES" = "1" ] ; then
ARG="$ARG--with-shunnotices "
fi
if [ "$NOOPEROVERRIDE" = "1" ] ; then
ARG="$ARG--with-no-operoverride "
fi
if [ "$DISABLEUSERMOD" = "1" ] ; then
ARG="$ARG--with-disableusermod "
fi
if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then
ARG="$ARG--with-operoverride-verify "
fi
fi
if [ "$NOSPOOF" = "1" ] ; then
ARG="$ARG--enable-nospoof "
fi
@@ -76,6 +97,184 @@ fi
fi
}
RUN_ADVANCED () {
TEST=""
while [ -z "$TEST" ] ; do
if [ "$SHOWLISTMODES" = "1" ] ; then
TEST="Yes"
else
TEST="No"
fi
echo ""
echo "Do you want to show the modes a channel has set in the /list output?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
cc=$TEST
fi
case "$cc" in
[Yy]*)
SHOWLISTMODES="1"
;;
[Nn]*)
SHOWLISTMODES=""
;;
*)
echo ""
echo "You must enter either Yes or No"
TEST=""
;;
esac
done
TEST=""
while [ -z "$TEST" ] ; do
if [ "$TOPICNICKISNUH" = "1" ] ; then
TEST="Yes"
else
TEST="No"
fi
echo ""
echo "Do you want the /topic command to show the nick!user@host of the person"
echo "who set the topic, rather than just the nickname?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
cc=$TEST
fi
case "$cc" in
[Yy]*)
TOPICNICKISNUH="1"
;;
[Nn]*)
TOPICNICKISNUH=""
;;
*)
echo ""
echo "You must enter either Yes or No"
TEST=""
;;
esac
done
TEST=""
while [ -z "$TEST" ] ; do
if [ "$SHUNNOTICES" = "1" ] ; then
TEST="Yes"
else
TEST="No"
fi
echo ""
echo "Should Unreal notify a user when they are no longer shunned?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
cc=$TEST
fi
case "$cc" in
[Yy]*)
SHUNNOTICES="1"
;;
[Nn]*)
SHUNNOTICES=""
;;
*)
echo ""
echo "You must enter either Yes or No"
TEST=""
;;
esac
done
TEST=""
while [ -z "$TEST" ] ; do
if [ "$NOOPEROVERRIDE" = "1" ] ; then
TEST="Yes"
else
TEST="No"
fi
echo ""
echo "Do you want to disable oper override?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
cc=$TEST
fi
case "$cc" in
[Yy]*)
NOOPEROVERRIDE="1"
;;
[Nn]*)
NOOPEROVERRIDE=""
;;
*)
echo ""
echo "You must enter either Yes or No"
TEST=""
;;
esac
done
TEST=""
while [ -z "$TEST" ] ; do
if [ "$DISABLEUSERMOD" = "1" ] ; then
TEST="Yes"
else
TEST="No"
fi
echo ""
echo "Do you want to disable /sethost, /setident, /chgname,"
echo "/chghost, and /chgident?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
cc=$TEST
fi
case "$cc" in
[Yy]*)
DISABLEUSERMOD="1"
;;
[Nn]*)
DISABLEUSERMOD=""
;;
*)
echo ""
echo "You must enter either Yes or No"
TEST=""
;;
esac
done
TEST=""
while [ -z "$TEST" ] ; do
if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then
TEST="Yes"
else
TEST="No"
fi
echo ""
echo "Do you want to require opers to /invite themselves into a +s or +p channel?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
cc=$TEST
fi
case "$cc" in
[Yy]*)
OPEROVERRIDEVERIFY="1"
;;
[Nn]*)
OPEROVERRIDEVERIFY=""
;;
*)
echo ""
echo "You must enter either Yes or No"
TEST=""
;;
esac
done
}
c=""
n=""
NOSPOOF=""
@@ -97,6 +296,12 @@ INET6=""
REMOTEINC=""
CURLDIR=""
PREFIXAQ=""
SHOWLISTMODES="1"
TOPICNICKISNUH=""
SHUNNOTICES=""
NOOPEROVERRIDE=""
DISABLEUSERMOD=""
OPEROVERRIDEVERIFY=""
EXTRAPARA=""
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
c="\c"
@@ -108,37 +313,52 @@ fi
#parse arguments
NOCACHE=""
NOINTRO=""
if [ "$1" = "--help" ] ; then
echo "Config utility for UnrealIRCd"
echo "-----------------------------"
echo "Syntax: ./Config [options]"
echo "-nocache Ignore settings saved in config.settings"
echo "-nointro Skip intro (release notes, etc)"
echo "-quick Skip questions, go straight to configure"
echo "-C Clean ./configure cache"
exit 0
fi
if [ "$1" = "-nocache" -o "$2" = "-nocache" ] ; then
NOCACHE="1"
fi
if [ "$1" = "-nointro" -o "$2" = "-nointro" ] ; then
NOINTRO="1"
fi
CLEAN=""
ADVANCED=""
while [ $# -ge 1 ] ; do
if [ $1 = "--help" ] ; then
echo "Config utility for UnrealIRCd"
echo "-----------------------------"
echo "Syntax: ./Config [options]"
echo "-nocache Ignore settings saved in config.settings"
echo "-nointro Skip intro (release notes, etc)"
echo "-quick Skip questions, go straight to configure"
echo "-advanced Include additional advanced questions"
echo "-clean Clean ./configure cache"
exit 0
elif [ $1 = "-nocache" ] ; then
NOCACHE="1"
elif [ $1 = "-nointro" ] ; then
NOINTRO="1"
elif [ $1 = "-quick" -o $1 = "-q" ] ; then
echo "running quick config"
if [ -f "config.settings" ] ; then
. ./config.settings
fi
RUN_CONFIGURE
exit 0
elif [ $1 = "-clean" -o $1 = "-C" ] ; then
CLEAN="1"
elif [ $1 = "-advanced" ] ; then
PREADVANCED="1"
fi
shift 1
done
if [ -f "config.settings" -a -z "$NOCACHE" ] ; then
. config.settings
. ./config.settings
fi
if [ "$1" = "-C" -o "$2" = "-C" ] ; then
if [ "$PREADVANCED" = "1" ] ; then
ADVANCED="1"
elif [ "$ADVANCED" = "1" ]; then
ADVANCED=""
fi
if [ -n "$CLEAN" ] ; then
rm -f config.cache
fi
if [ "$1" = "-quick" -o "$1" = "-q" -o "$2" = "-quick" ] ; then
echo "running quick config"
RUN_CONFIGURE
exit 0
fi
clear
if [ -f ".CHANGES.NEW" -a -z "$NOINTRO" ] ; then
@@ -592,7 +812,9 @@ while [ -z "$TEST" ] ; do
;;
esac
done
if [ -n "$ADVANCED" ] ; then
RUN_ADVANCED
fi
echo ""
echo "Would you like any more parameters to configure?"
echo "Write them here:"
@@ -621,7 +843,14 @@ ZIPLINKS="$ZIPLINKS"
ZIPLINKSDIR="$ZIPLINKSDIR"
REMOTEINC="$REMOTEINC"
CURLDIR="$CURLDIR"
SHOWLISTMODES="$SHOWLISTMODES"
TOPICNICKISNUH="$TOPICNICKISNUH"
SHUNNOTICES="$SHUNNOTICES"
NOOPEROVERRIDE="$NOOPEROVERRIDE"
DISABLEUSERMOD="$DISABLEUSERMOD"
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
EXTRAPARA="$EXTRAPARA"
ADVANCED="$ADVANCED"
__EOF__
RUN_CONFIGURE
cat << __EOF__
+2 -2
View File
@@ -5,11 +5,11 @@ you like Unreal, and you'd like to see it continue to exist, please consider mak
a donation. We're not asking for anything huge, whatever you can afford is fine.
PayPal Donation Link:
<https://www.paypal.com/xclick/business=donation%40unrealircd.com&
<https://www.paypal.com/xclick/business=donation%40unrealircd.org&
item_name=UnrealIRCd+Donation&no_shipping=1&cn=Comments&tax=0&currency_code=USD>
Or simply send a payment through PayPal to:
donation@unrealircd.com
donation@unrealircd.org
If you don't want to use PayPal, or you want to donate something other than money
(old computer hardware, etc.), contact Stskeeps (stskeeps@unrealircd.com) and send
+4 -3
View File
@@ -34,11 +34,11 @@ FROMDOS=/home/cmunk/bin/4dos
#
#XCFLAGS=-O -g -export-dynamic
IRCDLIBS=@IRCDLIBS@ @TRELIBS@
IRCDLIBS=@IRCDLIBS@ @TRELIBS@ @CARESLIBS@
CRYPTOLIB=@CRYPTOLIB@
OPENSSLINCLUDES=
XCFLAGS=-I@TREINCDIR@ @CFLAGS@
XCFLAGS=-I@TREINCDIR@ -I@CARESINCDIR@ @CFLAGS@
#
# use the following on MIPS:
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
@@ -208,11 +208,12 @@ install: all
$(INSTALL) -m 0700 networks/makenet $(IRCDDIR)/networks
$(INSTALL) -m 0600 networks/networks.ndx $(IRCDDIR)/networks
$(INSTALL) -m 0700 -d $(IRCDDIR)/doc
$(INSTALL) -m 0600 doc/Authors doc/example.conf doc/example.settings doc/coding-guidelines doc/tao.of.irc doc/unreal32docs.html $(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) -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
+1 -1
View File
@@ -1,5 +1,5 @@
===============================================
= UnrealIRCd v3.2 =
= UnrealIRCd v3.2.3 =
===============================================
Was brought to you by:
+6 -6
View File
@@ -2,12 +2,12 @@
alias identify {
format "^#" {
nick chanserv;
target chanserv;
type services;
parameters "IDENTIFY %1-";
};
format "^[^#]" {
nick nickserv;
target nickserv;
type services;
parameters "IDENTIFY %1-";
};
@@ -16,12 +16,12 @@ alias identify {
alias services {
format "^#" {
nick chanserv;
target chanserv;
type services;
parameters "%1-";
};
format "^[^#]" {
nick nickserv;
target nickserv;
type services;
parameters "%1-";
};
@@ -30,12 +30,12 @@ alias services {
alias register {
format "^#" {
nick chanserv;
target chanserv;
type services;
parameters "REGISTER %1-";
};
format "^[^#]" {
nick nickserv;
target nickserv;
type services;
parameters "REGISTER %1-";
};
+6 -7
View File
@@ -1,19 +1,18 @@
/* Anope Aliases */
alias nickserv { type services; };
alias ns { nick nickserv; type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { nick chanserv; type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; };
alias ms { nick memoserv; type services; };
alias ms { target memoserv; type services; };
alias operserv { type services; };
alias os { nick operserv; type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias hs { nick helpserv; type services; };
alias botserv { type services; };
alias bs { nick botserv; type services; };
alias bs { target botserv; type services; };
alias hostserv { type services; };
alias hs { nick hostserv; type services; };
alias hs { target hostserv; type services; };
include "aliases/aliases.conf";
+25 -8
View File
@@ -1,16 +1,33 @@
/* Auspice Aliases */
alias nickserv { type services; };
alias ns { nick nickserv; type services; };
/* Uncomment this, if you have enabled "MassServ, W and X" in auspice */
# alias massserv { type services; };
# alias ma { target massserv; type services; };
# alias W { type services; };
# alias X { type services; };
/* Uncomment this, if you have enabled "WebServ" in auspice */
# alias webserv { type services; };
# alias ws { target webserv; type services; };
alias agent { type services; };
alias adminserv { type services; };
alias as { target adminserv; type services; };
alias botserv { type services; };
alias bs { target botserv; type services; };
alias chanserv { type services; };
alias cs { nick chanserv; type services; };
alias memoserv { type services; };
alias ms { nick memoserv; type services; };
alias cs { target chanserv; type services; };
alias helpserv { type services; };
alias hs { nick helpserv; type services; };
alias hs { target helpserv; type services; };
alias hostserv { type services; };
alias ho { target hostserv; type services; };
alias memoserv { type services; };
alias ms { target memoserv; type services; };
alias nickserv { type services; };
alias ns { target nickserv; type services; };
alias operserv { type services; };
alias os { nick operserv; type services; };
alias os { target operserv; type services; };
alias rootserv { type services; };
alias rs { nick rootserv; type services; };
alias rs { target rootserv; type services; };
include "aliases/aliases.conf";
+4 -4
View File
@@ -1,12 +1,12 @@
/* Cygnus Aliases */
alias nickserv { type services; };
alias ns { nick nickserv; type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { nick chanserv; type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; };
alias ms { nick memoserv; type services; };
alias ms { target memoserv; type services; };
alias rootserv { type services; };
alias rs { nick rootserv; type services; };
alias rs { target rootserv; type services; };
include "aliases/aliases.conf";
+6 -6
View File
@@ -1,16 +1,16 @@
/* Epona Aliases */
alias nickserv { type services; };
alias ns { nick nickserv; type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { nick chanserv; type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; };
alias ms { nick memoserv; type services; };
alias ms { target memoserv; type services; };
alias operserv { type services; };
alias os { nick operserv; type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias hs { nick helpserv; type services; };
alias hs { target helpserv; type services; };
alias botserv { type services; };
alias bs { nick botserv; type services; };
alias bs { target botserv; type services; };
include "aliases/aliases.conf";
+5 -5
View File
@@ -1,14 +1,14 @@
/* Generic Aliases */
alias nickserv { type services; };
alias ns { nick nickserv; type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { nick chanserv; type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; };
alias ms { nick memoserv; type services; };
alias ms { target memoserv; type services; };
alias operserv { type services; };
alias os { nick operserv; type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias hs { nick helpserv; type services; };
alias hs { target helpserv; type services; };
include "aliases/aliases.conf";
+1 -1
View File
@@ -1,4 +1,4 @@
/* Generic StatServ Aliases */
alias statserv { type stats; };
alias ss { nick statserv; type stats; };
alias ss { target statserv; type stats; };
+6 -6
View File
@@ -1,17 +1,17 @@
/* IRCServices Aliases */
alias nickserv { type services; };
alias ns { nick nickserv; type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { nick chanserv; type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; };
alias ms { nick memoserv; type services; };
alias ms { target memoserv; type services; };
alias operserv { type services; };
alias os { nick operserv; type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias hs { nick helpserv; type services; };
alias hs { target helpserv; type services; };
alias irciihelp { type services; };
alias statserv { type services; };
alias ss { nick statserv; type services; };
alias ss { target statserv; type services; };
include "aliases/aliases.conf";
+2 -2
View File
@@ -1,6 +1,6 @@
/* OperStats Aliases */
alias operserv { type stats; };
alias os { nick operserv; type stats; };
alias os { target operserv; type stats; };
alias statserv { type stats; };
alias ss { nick statserv; type stats; };
alias ss { target statserv; type stats; };
+99 -7
View File
@@ -20,6 +20,20 @@ CFLAGS="-pipe $CFLAGS"
fi
fi
dnl (the gcc flag detection trick is taken from xemacs/Vin Shelton)
dnl UnrealIRCd might not be strict-aliasing safe at this time
case "`gcc -v --help 2>&1`" in
*-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
esac
dnl Pointer signedness warnings are really a pain and 99.9% of the time
dnl they are of absolutely no use whatsoever. IMO the person who decided
dnl to enable this without -Wall should be shot on sight.
case "`gcc -v --help 2>&1`" in
*-Wpointer-sign* ) CFLAGS="$CFLAGS -Wno-pointer-sign" ;;
esac
AC_PATH_PROG(RM,rm)
AC_PATH_PROG(CP,cp)
AC_PATH_PROG(TOUCH,touch)
@@ -63,6 +77,9 @@ if test "$ac_cv_prog_gcc" = "yes"; then
Darwin*[)]
ac_cv_pic="-bundle -flat_namespace -undefined suppress"
;;
HP-UX*[)]
ac_cv_pic="-fPIC"
;;
esac
else
case `uname -s` in
@@ -111,9 +128,26 @@ if test "$ac_cv_ip6" = "no"; then
AC_MSG_WARN(Your system does not support IPv6 so it will not be enabled)
else
AC_DEFINE(INET6)
dnl in6addr_any detection code taken from ratbox
AC_MSG_CHECKING([for struct in6addr_any])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#define IN_AUTOCONF
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>]],
[[struct in6_addr a = in6addr_any;]]
)],
[AC_MSG_RESULT(yes)],
[
AC_MSG_RESULT(no)
AC_DEFINE(NO_IN6ADDR_ANY)
]
)
fi
LIBS="$save_libs"
])
AC_CHECK_HEADER(sys/param.h,AC_DEFINE(PARAMH))
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(STDLIBH))
AC_CHECK_HEADER(stddef.h,AC_DEFINE(STDDEFH))
@@ -224,12 +258,27 @@ dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_SETPGRP
AC_FUNC_SETVBUF_REVERSED
AC_FUNC_ALLOCA
AC_CHECK_FUNCS(snprintf,AC_DEFINE(HAVE_SNPRINTF))
AC_CHECK_FUNCS(vsnprintf,AC_DEFINE(HAVE_VSNPRINTF))
AC_CHECK_FUNCS(strlcpy, AC_DEFINE(HAVE_STRLCPY))
AC_CHECK_FUNCS(strlcat, AC_DEFINE(HAVE_STRLCAT))
AC_CHECK_FUNCS(strlncat, AC_DEFINE(HAVE_STRLNCAT))
AC_CHECK_FUNCS(inet_pton, AC_DEFINE(HAVE_INET_PTON))
AC_CHECK_FUNCS(inet_ntop, AC_DEFINE(HAVE_INET_NTOP))
dnl Check if it supports C99 style variable length arrays
AC_CACHE_CHECK(if C99 variable length arrays are supported, ac_cv_varlen_arrays, [
AC_TRY_COMPILE(,[
int main() {
int i = 5;
int a[i];
a[0] = 1;
return 0;
}], ac_cv_varlen_arrays=yes, ac_cv_varlen_arrays=no)
])
if test "$ac_cv_varlen_arrays" = "yes" ; then
AC_DEFINE(HAVE_C99_VARLEN_ARRAY)
fi
AC_CACHE_CHECK(if we can set the core size to unlimited, ac_cv_force_core,[
AC_TRY_RUN([
#include <sys/time.h>
@@ -323,7 +372,7 @@ 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])],
AC_DEFINE_UNQUOTED(DPATH, "$withval") IRCDDIR="$withval"; mkdir $withval/tmp, AC_DEFINE_UNQUOTED(DPATH,"`pwd`") IRCDDIR="`pwd`" mkdir `pwd`/tmp)
AC_DEFINE_UNQUOTED(DPATH, "$withval") IRCDDIR="$withval", AC_DEFINE_UNQUOTED(DPATH,"`pwd`") IRCDDIR="`pwd`")
AC_ARG_WITH(fd-setsize, [AC_HELP_STRING([--with-fd-setsize=size],[Specify the max file descriptors to use])],
ac_fd=$withval, ac_fd=1024)
AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $ac_fd)
@@ -332,6 +381,18 @@ AC_DEFINE_UNQUOTED(SPATH,"$withval") BINDIR="$withval",AC_DEFINE_UNQUOTED(SPATH,
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))
AC_ARG_WITH(showlistmodes, [AC_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])],
AC_DEFINE(LIST_SHOW_MODES))
AC_ARG_WITH(topicisnuhost, [AC_HELP_STRING([--with-topicisnuhost], [Display nick!user@host as the topic setter])],
AC_DEFINE(TOPIC_NICK_IS_NUHOST))
AC_ARG_WITH(shunnotices, [AC_HELP_STRING([--with-shunnotices], [Notify a user when he/she is no longer shunned])],
AC_DEFINE(SHUN_NOTICES))
AC_ARG_WITH(no-operoverride, [AC_HELP_STRING([--with-no-operoverride], [Disable OperOverride])],
AC_DEFINE(NO_OPEROVERRIDE))
AC_ARG_WITH(disableusermod, [AC_HELP_STRING([--with-disableusermod], [Disable /set* and /chg*])],
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))
CHECK_SSL
CHECK_ZLIB
CHECK_LIBCURL
@@ -364,8 +425,8 @@ IRCDLIBS="$IRCDLIBS -lresolv "
;;
esac
dnl REMEMBER TO CHANGE WITH A NEW RELEASE!
tre_version="0.6.6"
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
@@ -381,11 +442,11 @@ else
fi
AC_MSG_RESULT(configuring TRE regex library)
cd tre-$tre_version
./configure --disable-agrep --disable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp
./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
$ac_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing TRE regex library)
$ac_cv_prog_MAKER install
$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
@@ -395,6 +456,37 @@ else
fi
AC_SUBST(TRELIBS)
cd $cur_dir
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
cares_version="1.3.0"
AC_MSG_RESULT(extracting c-ares resolver library)
cur_dir=`pwd`
cd extras
dnl remove old c-ares directory to force a recompile...
rm -rf c-ares-$cares_version
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz c-ares.tar.gz
else
cp c-ares.tar.gz c-ares.tar.gz.bak
gunzip -f c-ares.tar.gz
cp c-ares.tar.gz.bak c-ares.tar.gz
tar xf c-ares.tar
fi
AC_MSG_RESULT(configuring c-ares library)
cd c-ares-$cares_version
./configure --prefix=$cur_dir/extras/c-ares || exit 1
AC_MSG_RESULT(compiling c-ares resolver library)
$ac_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing c-ares resolver library)
$ac_cv_prog_MAKER install || exit 1
CARESINCDIR="$cur_dir/extras/c-ares/include"
AC_SUBST(CARESINCDIR)
CARESLIBS="-L../extras/c-ares/lib -lcares"
AC_SUBST(CARESLIBS)
cd $cur_dir
AC_OUTPUT(Makefile src/modules/Makefile unreal ircdcron/ircdchk)
chmod 0700 unreal
chmod 0700 ircdcron/ircdchk
Vendored
+692 -6
View File
@@ -850,6 +850,13 @@ Optional Packages:
stored
--with-fd-setsize=size Specify the max file descriptors to use
--with-spath Specify the location of the executable
--with-showlistmodes Specify whether modes are shown in /list
--with-topicisnuhost Display nick!user@host as the topic setter
--with-shunnotices Notify a user when he/she is no longer shunned
--with-no-operoverride Disable OperOverride
--with-disableusermod Disable /set* and /chg*
--with-operoverride-verify
Require opers to invite themselves to +s/+p channels
Some influential environment variables:
CC C compiler command
@@ -2031,6 +2038,15 @@ CFLAGS="-pipe $CFLAGS"
fi
fi
case "`gcc -v --help 2>&1`" in
*-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
esac
case "`gcc -v --help 2>&1`" in
*-Wpointer-sign* ) CFLAGS="$CFLAGS -Wno-pointer-sign" ;;
esac
# Extract the first word of "rm", so it can be a program name with args.
set dummy rm; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
@@ -2629,6 +2645,7 @@ fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -6983,6 +7000,314 @@ cat >>confdefs.h <<\_ACEOF
#define SETVBUF_REVERSED 1
_ACEOF
fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo "$as_me:$LINENO: checking for working alloca.h" >&5
echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
if test "${ac_cv_working_alloca_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#include <alloca.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
char *p = (char *) alloca (2 * sizeof (int));
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_working_alloca_h=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
ac_cv_working_alloca_h=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
if test $ac_cv_working_alloca_h = yes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_ALLOCA_H 1
_ACEOF
fi
echo "$as_me:$LINENO: checking for alloca" >&5
echo $ECHO_N "checking for alloca... $ECHO_C" >&6
if test "${ac_cv_func_alloca_works+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#ifdef __GNUC__
# define alloca __builtin_alloca
#else
# ifdef _MSC_VER
# include <malloc.h>
# define alloca _alloca
# else
# if HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
char *alloca ();
# endif
# endif
# endif
# endif
#endif
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
char *p = (char *) alloca (1);
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_alloca_works=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
ac_cv_func_alloca_works=no
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
if test $ac_cv_func_alloca_works = yes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_ALLOCA 1
_ACEOF
else
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
# that cause trouble. Some versions do not even contain alloca or
# contain a buggy version. If you still want to use their alloca,
# use ar to extract alloca.o from them instead of compiling alloca.c.
ALLOCA=alloca.$ac_objext
cat >>confdefs.h <<\_ACEOF
#define C_ALLOCA 1
_ACEOF
echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
if test "${ac_cv_os_cray+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
#else
wenotbecray
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
egrep "webecray" >/dev/null 2>&1; then
ac_cv_os_cray=yes
else
ac_cv_os_cray=no
fi
rm -f conftest*
fi
echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
echo "${ECHO_T}$ac_cv_os_cray" >&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
f = $ac_func;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
eval "$as_ac_var=no"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
_ACEOF
break
fi
done
fi
echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
if test "${ac_cv_c_stack_direction+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
ac_cv_c_stack_direction=0
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
int
find_stack_direction ()
{
static char *addr = 0;
auto char dummy;
if (addr == 0)
{
addr = &dummy;
return find_stack_direction ();
}
else
return (&dummy > addr) ? 1 : -1;
}
int
main ()
{
exit (find_stack_direction () < 0);
}
_ACEOF
rm -f conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_c_stack_direction=1
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_c_stack_direction=-1
fi
rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
cat >>confdefs.h <<_ACEOF
#define STACK_DIRECTION $ac_cv_c_stack_direction
_ACEOF
fi
@@ -7381,6 +7706,222 @@ fi
done
for ac_func in inet_pton
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
f = $ac_func;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
eval "$as_ac_var=no"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
cat >>confdefs.h <<\_ACEOF
#define HAVE_INET_PTON 1
_ACEOF
fi
done
for ac_func in inet_ntop
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func ();
char (*f) ();
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
f = $ac_func;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
eval "$as_ac_var=no"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
cat >>confdefs.h <<\_ACEOF
#define HAVE_INET_NTOP 1
_ACEOF
fi
done
echo "$as_me:$LINENO: checking if C99 variable length arrays are supported" >&5
echo $ECHO_N "checking if C99 variable length arrays are supported... $ECHO_C" >&6
if test "${ac_cv_varlen_arrays+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
int main() {
int i = 5;
int a[i];
a[0] = 1;
return 0;
}
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_varlen_arrays=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
ac_cv_varlen_arrays=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_varlen_arrays" >&5
echo "${ECHO_T}$ac_cv_varlen_arrays" >&6
if test "$ac_cv_varlen_arrays" = "yes" ; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_C99_VARLEN_ARRAY 1
_ACEOF
fi
echo "$as_me:$LINENO: checking if we can set the core size to unlimited" >&5
echo $ECHO_N "checking if we can set the core size to unlimited... $ECHO_C" >&6
if test "${ac_cv_force_core+set}" = set; then
@@ -9486,12 +10027,12 @@ if test "${with_dpath+set}" = set; then
cat >>confdefs.h <<_ACEOF
#define DPATH "$withval"
_ACEOF
IRCDDIR="$withval"; mkdir $withval/tmp
IRCDDIR="$withval"
else
cat >>confdefs.h <<_ACEOF
#define DPATH "`pwd`"
_ACEOF
IRCDDIR="`pwd`" mkdir `pwd`/tmp
IRCDDIR="`pwd`"
fi;
# Check whether --with-fd-setsize or --without-fd-setsize was given.
@@ -9544,6 +10085,60 @@ _ACEOF
fi;
# Check whether --with-showlistmodes or --without-showlistmodes was given.
if test "${with_showlistmodes+set}" = set; then
withval="$with_showlistmodes"
cat >>confdefs.h <<\_ACEOF
#define LIST_SHOW_MODES 1
_ACEOF
fi;
# Check whether --with-topicisnuhost or --without-topicisnuhost was given.
if test "${with_topicisnuhost+set}" = set; then
withval="$with_topicisnuhost"
cat >>confdefs.h <<\_ACEOF
#define TOPIC_NICK_IS_NUHOST 1
_ACEOF
fi;
# Check whether --with-shunnotices or --without-shunnotices was given.
if test "${with_shunnotices+set}" = set; then
withval="$with_shunnotices"
cat >>confdefs.h <<\_ACEOF
#define SHUN_NOTICES 1
_ACEOF
fi;
# Check whether --with-no-operoverride or --without-no-operoverride was given.
if test "${with_no_operoverride+set}" = set; then
withval="$with_no_operoverride"
cat >>confdefs.h <<\_ACEOF
#define NO_OPEROVERRIDE 1
_ACEOF
fi;
# Check whether --with-disableusermod or --without-disableusermod was given.
if test "${with_disableusermod+set}" = set; then
withval="$with_disableusermod"
cat >>confdefs.h <<\_ACEOF
#define DISABLE_USERMOD 1
_ACEOF
fi;
# Check whether --with-operoverride-verify or --without-operoverride-verify was given.
if test "${with_operoverride_verify+set}" = set; then
withval="$with_operoverride_verify"
cat >>confdefs.h <<\_ACEOF
#define OPEROVERRIDE_VERIFY 1
_ACEOF
fi;
# Check whether --enable-ssl or --disable-ssl was given.
if test "${enable_ssl+set}" = set; then
enableval="$enable_ssl"
@@ -9851,6 +10446,9 @@ if test "$ac_cv_c_compiler_gnu" = "yes"; then
Darwin*)
ac_cv_pic="-bundle -flat_namespace -undefined suppress"
;;
HP-UX*)
ac_cv_pic="-fPIC"
;;
esac
else
case `uname -s` in
@@ -9962,6 +10560,58 @@ cat >>confdefs.h <<\_ACEOF
#define INET6 1
_ACEOF
echo "$as_me:$LINENO: checking for struct in6addr_any" >&5
echo $ECHO_N "checking for struct in6addr_any... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#define IN_AUTOCONF
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#ifdef F77_DUMMY_MAIN
# ifdef __cplusplus
extern "C"
# endif
int F77_DUMMY_MAIN() { return 1; }
#endif
int
main ()
{
struct in6_addr a = in6addr_any;
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
cat >>confdefs.h <<\_ACEOF
#define NO_IN6ADDR_ANY 1
_ACEOF
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
LIBS="$save_libs"
@@ -10026,7 +10676,7 @@ IRCDLIBS="$IRCDLIBS -lresolv "
;;
esac
tre_version="0.6.6"
tre_version="0.7.2"
echo "$as_me:$LINENO: result: extracting TRE regex library" >&5
echo "${ECHO_T}extracting TRE regex library" >&6
cur_dir=`pwd`
@@ -10043,13 +10693,13 @@ fi
echo "$as_me:$LINENO: result: configuring TRE regex library" >&5
echo "${ECHO_T}configuring TRE regex library" >&6
cd tre-$tre_version
./configure --disable-agrep --disable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp
./configure --disable-agrep --disable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp || exit 1
echo "$as_me:$LINENO: result: compiling TRE regex library" >&5
echo "${ECHO_T}compiling TRE regex library" >&6
$ac_cv_prog_MAKER
$ac_cv_prog_MAKER || exit 1
echo "$as_me:$LINENO: result: installing TRE regex library" >&5
echo "${ECHO_T}installing TRE regex library" >&6
$ac_cv_prog_MAKER install
$ac_cv_prog_MAKER install || exit 1
TREINCDIR="$cur_dir/extras/regexp/include"
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
@@ -10059,6 +10709,39 @@ else
fi
cd $cur_dir
cares_version="1.3.0"
echo "$as_me:$LINENO: result: extracting c-ares resolver library" >&5
echo "${ECHO_T}extracting c-ares resolver library" >&6
cur_dir=`pwd`
cd extras
rm -rf c-ares-$cares_version
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz c-ares.tar.gz
else
cp c-ares.tar.gz c-ares.tar.gz.bak
gunzip -f c-ares.tar.gz
cp c-ares.tar.gz.bak c-ares.tar.gz
tar xf c-ares.tar
fi
echo "$as_me:$LINENO: result: configuring c-ares library" >&5
echo "${ECHO_T}configuring c-ares library" >&6
cd c-ares-$cares_version
./configure --prefix=$cur_dir/extras/c-ares || exit 1
echo "$as_me:$LINENO: result: compiling c-ares resolver library" >&5
echo "${ECHO_T}compiling c-ares resolver library" >&6
$ac_cv_prog_MAKER || exit 1
echo "$as_me:$LINENO: result: installing c-ares resolver library" >&5
echo "${ECHO_T}installing c-ares resolver library" >&6
$ac_cv_prog_MAKER install || exit 1
CARESINCDIR="$cur_dir/extras/c-ares/include"
CARESLIBS="-L../extras/c-ares/lib -lcares"
cd $cur_dir
ac_config_files="$ac_config_files Makefile src/modules/Makefile unreal ircdcron/ircdchk"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -10635,6 +11318,7 @@ s,@PKGCONFIG@,$PKGCONFIG,;t t
s,@IRCDLIBS@,$IRCDLIBS,;t t
s,@MKPASSWDLIBS@,$MKPASSWDLIBS,;t t
s,@CPP@,$CPP,;t t
s,@ALLOCA@,$ALLOCA,;t t
s,@STRTOUL@,$STRTOUL,;t t
s,@CRYPTOLIB@,$CRYPTOLIB,;t t
s,@MODULEFLAGS@,$MODULEFLAGS,;t t
@@ -10645,6 +11329,8 @@ s,@BINDIR@,$BINDIR,;t t
s,@FD_SETSIZE@,$FD_SETSIZE,;t t
s,@TREINCDIR@,$TREINCDIR,;t t
s,@TRELIBS@,$TRELIBS,;t t
s,@CARESINCDIR@,$CARESINCDIR,;t t
s,@CARESLIBS@,$CARESLIBS,;t t
CEOF
_ACEOF
+42
View File
@@ -0,0 +1,42 @@
/* Example of a possible semi-secure /DCCALLOW configuration written by Syzop.
* $Id$
*
* Actually nothing is *100% secure*... there could still be
* bugs in the software itself (think: a winamp bug that can
* be exploited via an mp3, or: a wmplayer bug that can be
* exploited via a specially crafted .wmv, etc..).
* If you are really that paranoid you could just remove
* all 'allow dcc'-blocks and prompt the user for EVERY file ;).
*
* Still, I think this file is a good tradeoff between userfriendlyness
* and security. Note that when you try to only DENY specific
* file type (exe, com, etc) you are *guaranteed* to miss ones
* (like: did you know .r17 gets treated as a rar archive?
* and that an exe can be disguished as .cmd which is executable
* on nt/w2k/xp?)
*/
/* first.. deny everything, then allow known-good stuff... */
deny dcc { filename "*"; reason "Possible executable content"; soft yes; };
/* common image formats */
allow dcc { filename "*.jpg"; soft yes; };
allow dcc { filename "*.jpeg"; soft yes; };
allow dcc { filename "*.gif"; soft yes; };
allow dcc { filename "*.png"; soft yes; };
allow dcc { filename "*.bmp"; soft yes; };
/* audio / video (but not scripted/playlists!) */
allow dcc { filename "*.mp1"; soft yes; };
allow dcc { filename "*.mp2"; soft yes; };
allow dcc { filename "*.mp3"; soft yes; };
allow dcc { filename "*.mpg"; soft yes; };
allow dcc { filename "*.mpeg"; soft yes; };
allow dcc { filename "*.m1v"; soft yes; };
allow dcc { filename "*.m2v"; soft yes; };
allow dcc { filename "*.vob"; soft yes; };
allow dcc { filename "*.wav"; soft yes; };
/* text / misc */
allow dcc { filename "*.txt"; soft yes; };
allow dcc { filename "*.log"; soft yes; };
allow dcc { filename "*.pdf"; soft yes; };
allow dcc { filename "*.c"; soft yes; };
allow dcc { filename "*.cpp"; soft yes; };
+3 -2
View File
@@ -123,7 +123,8 @@ Carsten Munk <stskeeps@unrealircd.com> / May 1999, date
Dominick Meglio <codemastr@unrealircd.com> / June 1999, date
David Flynn / March 2000, June 2000
McSkaf / June 2001, September 2001
Finny Merrill <griever@unrealircd.com> / November 2001, date
Finny Merrill <griever@unrealircd.com> / November 2001, December 2002
Bram Matthys <syzop@unrealircd.com> / January 2002, date
Thanks go to those persons not mentioned here who have added their advice,
opinions, and code to IRC.
@@ -143,4 +144,4 @@ Eric P. Scott <eps@toaster.sfsu.edu>
Dan Goodwin <fornax@wpi.wpi.edu>
Noah Friedman <friedman@ai.mit.edu>
[ $Id$ ]
[ $Id$ ]
-195
View File
@@ -1,195 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>UnrealIRCd - 3.2 - Offical Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p> <font size="-1">I M P O R T A N T R E A D I N G</font></p>
<p><font size="-1">(YES, YOU WILL NEED TO READ ALL OF THIS)</font></p>
<p><font size="-1">* Unreal3.2 is a lot different than Unreal3.1.1. Forget
all you have learned about setting up Unreal3.1.1 - this is a lot different.
We have got a new configuration format that integrates all the former config
files,ircd.conf, vhost.conf, chrestrict.conf, unrealircd.conf, into to one newunrealircd.conf
(what the ircd.conf is called now). See doc/ for more information on the configuration
format</font></p>
<p><font size="-1">* THIS IS A BETA VERSION, REPORT BUGS ON http://bugs.unrealircd.org</font></p>
<p><font size="-1">* We have introduced a new cloaking algorithm (+x), which makes
it incompatible with Unreal3.1.1 - these can however still link, but the hostname
will look different. This is made of three big numbers, configured in the config
file - and these MUST be the same on all servers on the network. Keep these
numbers secret, and the cloaking algorithm is uncrackable (within 55 years,
that is). The +x algorithm was changed slightly to fix a method of cracking
that was found. #define COMPAT_BETA4_KEYS to use the beta4 system for compatibility
with older betas.</font></p>
<p><font size="-1">* If you use Linux and have problems where the IRCd complains
that MAXCONNECTIONS is larger than FD_SETSIZE, you need to get your root to
edit /usr/include/bits/types.h - #define __FD_SETSIZE 1024 to be somenumber
that is equal or higher than MAXCONNECTIONS. This is a problem with Linux that
it is hard coded and non override able in some distributions. We recommend you
use FreeBSD or the variants of this if you need to run high load IRC servers.</font></p>
<p><font size="-1">* We use autoconf to help with compilation, and this should
make us able to a lot more platform (we have even ported to BeOS).</font></p>
<p><font size="-1">* We require a pthreads library for the SOCKS scan now - and
this is now done in the background (no more waiting!).</font></p>
<p><font size="-1">* The IRCd is now modularized, and you load modules with the
loadmodule command. You will most likely want to add these lines:<br>
loadmodule &quot;src/modules/commands.so&quot;;<br>
loadmodule &quot;src/modules/scan.so&quot;;<br>
loadmodule &quot;src/modules/scan_socks.so&quot;;<br>
loadmodule &quot;src/modules/scan_http.so&quot;;</font></p>
<p><font size="-1"> If you would like to code a module, doc/ will contain a module
guide,and we got an example module in src/modules/m_dummy.c.</font></p>
<p><font size="-1">* We have some IPv6 support, and there are some minor bugs
in it.</font></p>
<p><font size="-1">* The documentation is NOT yet 100% complete</font></p>
<p><font size="-1">* We have added snomask (similar to ircu), basically this allowed
us to remove several modes. Modes +cfFkje are gone, but don't worry, you can
still use them. They are now added like this:</font></p>
<p><font size="-1"> /mode yournick +s +cF</font></p>
<p><font size="-1"> You set the flags in the second parameter of the mode command
for a mode change +s, setting -s with no parameters removes all your snomask.
You can remove a specific snomask by doing:</font></p>
<p><font size="-1"> /mode yournick -s -c</font></p>
<p><font size="-1">The current snomasks are:</font></p>
<p><font size="-1"> c - local connects<br>
F - far connects<br>
f - flood notices<br>
k - kill notices<br>
e - 'eyes' notices<br>
j - 'junk' notices<br>
v - vhost notices<br>
G - gline/shun notices<br>
n - nick change notices<br>
q - deny nick (Q:line) rejection notices</font></p>
<p><font size="-1"> It shouldn't be too hard to figure out, just play around with
it a bit :)</font></p>
<p><font size="-1">* /who needs testing it was recorded and may contain bugs</font></p>
<p><font size="-1">* We have added alias {} which allows you to dynamically create
commands such as /nickserv Read example.conf for more information on how to
create your own. To use standard ones include one of the following files</font></p>
<p><font size="-1"> aliases/ircservices.conf (IRCServices, Daylight)<br>
aliases/epona.conf (Epona)<br>
aliases/auspice.conf (Auspice)<br>
aliases/generic.conf (Magick, Sirius, Wrecked)<br>
aliases/operstats.conf (OperStats)<br>
aliases/genericstats.conf (GeoStats, NeoStats)</font></p>
<p><font size="-1">* You can now use an IP in the oper::from and vhost::from fields
even if the host resolves</font></p>
<p><font size="-1">* Added an http proxy scanner (scan_http.so)</font></p>
<p><font size="-1">* Added oper::snomask to specify default oper snomask modes</font></p>
<p><font size="-1">* /helpop text has been moved to a config directive, help {}.
To keep the standard help text you need to include help.conf so add include
&quot;help.conf&quot;; to your config file.</font></p>
<p><font size="-1">* To be able to use G:lines you must now have the can_gkline
flag (or t if old style flags)</font></p>
<p><font size="-1">* Usermode +T (Tech Admin) has been removed, since it is 100%
useless</font></p>
<p><font size="-1">* Added a make install to copy files to the installation location</font></p>
<p><font size="-1">* Removed ./ircd, ./killircd, crypt/mkpasswd, ./rehash and
merged them into a new ./unreal [start|stop|rehash|mkpasswd] for mkpasswd the
format is</font></p>
<p><font size="-1"> ./unreal mkpasswd [method] [password]</font></p>
<p><font size="-1">* Added a new system for crypting passwords. You now do for
example password &quot;my password&quot; { crypt; }; This allows you to have
some crypted passwords and others not. If you have SSL enabled you may also
use the md5 and sha1 methods.</font></p>
<p><font size="-1">* The old blackhole is now set::scan::endpoint and specifies
an IP and port to tell proxies to connect to.</font></p>
<p><font size="-1">* You can now specify a cipher list for SSL links (read doc/conf.doc
for more info)</font></p>
<p><font size="-1">* +I is now in invisibility.so so it is easily disabled</font></p>
<p><font size="-1">* set::socks has been replaced by set::scan (read doc/conf.doc
for more info)</font></p>
<p><font size="-1">* If you experience problems with the scanners, perhaps check
out BOPM (http://www.blitzed.org/bopm)</font></p>
<p><font size="-1">* log {} syslog support added (read doc/unreal32docs.html for
more info)</font></p>
<p><font size="-1">* Added ripemd-160 password encryption support</font></p>
<p><font size="-1">* Enabled sha1 and md5 password encryption on Win32 regardless
of whether SSL is used.</font></p>
<p><font size="-1">* Added WinNT/2k/XP service support (experimental) To use this
you use the unreal.exe utility: unreal install -installs the service<br>
unreal uninstall -uninstalls the service <br>
unreal start -starts the service <br>
unreal stop -stops the service<br>
unreal restart -restarts the service<br>
unreal rehash -rehashes the config file</font></p>
<p><font size="-1"> Config errors and crashes are now logged to service.log when
in service mode.</font></p>
<p><font size="-1">* Implemented a new win32 debugger to make fixing bugs much
easier.</font></p>
<p><font size="-1">* Added a win32 installer to simplify installing under Windows.</font></p>
<p><font size="-1">* AKILL/RAKILL is deprecated. Server command still works but
will be removed eventually (aliases to TKL G). For normal opers it notices that
the commands are deprecated.</font></p>
<p><font size="-1">Made the config parser smarter when it comes to time values
and size values. Entries are no longer limited to 1d2h1m. You can now enter
&quot;1day 2 hours 1 minute&quot; for example. See doc/conf.doc for more information.</font></p>
<p><font size="-1">* The oper override code has been rewritten to be less intrusive.
You can now no longer automatically join a channel for which you must override
a mode. You must /invite yourself to the channel. The idea behind this is it
prevents the accidental &quot;rejoin on kick&quot; ban override and joining
a +s channel without realizing it is +s and therefore you shouldn't know it
exists.</font></p>
<p><font size="-1">* If you use the SSL features of Unreal, you should use OpenSSL
0.9.6e or later. This is important as the older versions may make the program
exploitable. See http://www.openssl.org for more information</font></p>
<p><font size="-1">* We have made a lot of changes to deal with SSL, and if you
find any flaws or problems, please contact the coder team. We however think
that the changes will make SSL more transparent and make it work more efficiently.</font></p>
<p><font size="-1">* Added technical documentation in doc/technical. This directory
will contain information about the protocol used by Unreal.</font></p>
<p><font size="-1">* Added EGD support for SSL. EGD allows entropy to be gathered
on systems that do not have a random device (/dev/random or /dev/urandom) or
have an unreliable random device. Unreal has been tested using EGADS (http://www.securesoftware.com/egads.php)
[With EGD support enabled], PRNGD (http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html),
and EGD (http://egd.sourceforge.net). Other EGD compatible programs should work
as well.</font></p>
<p><font size="-1">* We have created a new complete set of docs! doc/unreal32docs.html
is now a complete<br>
set of docs! It is still not finished, however it contains atleast what was
already<br>
avail. in the other doc files. <br>
It can also be view online @ http://www.unrealircd.com/unreal32docs.html</font></p>
<p><font size="-1">* We have removed ./Setup - Please read the new docs for information
on configuring &amp;<br>
setting up Unreal3.2</font></p>
<p><font size="-1">* Removed makeconf - Read the docs to make a config file</font></p>
<p><font size="-1">* Added set::ssl::options with the following options:<br>
fail-if-no-clientcert - If SSL client connects and doesn't provide a client<br>
certificate, abort connection immediately<br>
verify-certificate - Check the certificate's validity using X509 methods, check if<br>
we trust CA's, etc. <br>
It however does slip self signed certificates through UNLESS<br>
no-self-signed - Don't allow self-signed certificates through (requires<br>
verify-certificate)</font></p>
<p><font size="-1">* Added the ability specify which CA's are trusted using set::ssl::trusted-ca-file</font></p>
<p><font size="-1">* A new configuration system has been added. The system is a bit more strict (meaning it
will complain more often) but it will never crash due to configuration errors, just
display a message saying errors exist.</font></p>
<p><font size="-1">* SVSLUSERS was added to all U:lines to change local and global max user counts (this is
NOT meant so you can make the max count higher than it really should be.)</font></p>
<p><font size="-1">* A new oper flag, can_override/v has been added. This is an attempt to stop oper abuse.
All opers can no longer use oper-override, this oflag MUST be in place for oper-override
to be allowed. Can_override is NOT assumed to be present no matter what your flags,
meaning you could be +N but still not be allowed to use oper-override.</font></p>
<p><font size="-1">* UNKLINE and UNZLINE have been removed in favor of a system like G:lines, to remove you
now /kline -user@host or /zline -user@host</font></p>
<p><font size="-1">* MAKE SURE YOU RERUN ./Config AND RUN make clean BEFORE USING
THIS VERSION!!!</font></p>
<p> </p>
<p> </p>
<p><font size="+2"><strong>Notes on compatibility</strong><a name="notesoncompatibility" id="notesoncompatibility"></a></font><br>
</p>
<p>Unreal 3.2 is ONLY compatible with Unreal3.1.4 and Unreal3.2 servers. DO NOT
ATTEMPT to link to servers that it is NOT compatible with.</p>
<p>
</body>
</html>
+135 -25
View File
@@ -1,30 +1,20 @@
==[ IMPORTANT MESSAGE ABOUT DISABLING NOSPOOF ]==
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).
WILL allow users to use "spoofed hosts" (like the IP of someone you trust).
If you got problems with NOSPOOF fix your client (bot?) instead (you should
PONG back to the initial PING at connect).
==[ HOW TO COMPILE UNREALIRCD WITHOUT SSL AT WINDOWS ]==
==[ GENERAL GUIDELINES ]==
First of all you need Microsoft Visual C++, compiling with cygwin
is not supported.
== "old" VC++ 6.0 ==
1. You need the Platform SDK (PSDK)
Grab it at: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ ->
core sdk -> install this sdk.
Note that this can take some time to download because it's >200Mb
(450mb installed) [!].
2. To compile:
start -> programs -> platform sdk blabla -> open build env. -> (choose os) ->
set blabla build env (debug). This will launch a DOS window.
3. 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
4. Copy the src\win32\tre.dll to your UnrealIrcd main dir.
5. Done!
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.
== VC++ 7.x (.NET) ==
== 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:
nmake -f makefile.win32
@@ -32,12 +22,132 @@ is not supported.
3. Copy the src\win32\tre.dll to your UnrealIrcd main dir.
4. Done!
==[ HOW TO COMPILE UNREALIRCD WITH SSL AT WINDOWS ]==
Ouch, that's much work ;).
You need to compile openssl yourself.
Then have a look at makefile.win32 for instruction on how
to enable / specify path / etc...
DO NOT ask us for help with compiling openssl!
== 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).
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
module has the filename 'm_crappymod.c', then you use:
nmake -f makefile.win32 custommodule MODULEFILE=m_crappymod
5. Done. A .dll file should have been created.
==[ AND ZIP LINKS SUPPORT? ]==
See makefile.win32 for instructions.
If you compiled with VC7 and used the official source (not a CVS version,
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.
DO NOT download a CVS version & compile your mod and then start
distributing the .dll for use at another (non-CVS) version!!
Every time we change a struct (and in some other cases) it makes the
binary/module binary incompatible which practically means your module
will CRASH or cause memory corruption and other subtle errors.
== COMPILING WITH ZIP LINKS / SSL / REMOTE INCLUDES SUPPORT ==
First of all, DO NOT use any precompiled libs from the official
zlib/openssl/curl sites. We require certain compile parameters.
Versions downloaded from such sites will often CRASH.
The easiest is to download the UnrealIRCd development package
which contains zlib, openssl and curl precompiled for you.
See: www.vulnscan.org/unrealwin32dev/
Just extract it somewhere (eg: to c:\dev).
Then, use compile flags to enable the features + specify where to look.
Here are examples if you used c:\dev:
ZIP: nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" ZLIB_LIB_DIR="c:\dev\zlib\dll32"
SSL: nmake -f makefile.win32 USE_SSL=1 OPENSSL_INC_DIR="c:\dev\openssl\include" OPENSSL_LIB_DIR="c:\dev\openssl\lib"
CURL: nmake -f makefile.win32 USE_REMOTEINC=1 LIBCURL_INC_DIR="c:\dev\curl\include" LIBCURL_LIB_DIR="c:\dev\curl\lib"
Obviously you can (and probably will) combine all these options, like
to build a zip+ssl+curl version (all in 1 line):
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" ZLIB_LIB_DIR="c:\dev\zlib\dll32"
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"
== COMPILING ZLIB/SSL/CURL YOURSELF ==
This is quite some work.. With the precomiled method shown above it
just takes like 5-10 minutes to have a zlib+ssl+curl Unreal version.
But if you want to compile each of these libs manually then it will
probably take an hour or so.
** THE INFORMATION BELOW IS OUTDATED, WE GOT RID OF MDd, USE MD INSTEAD
AND DONT COMPILE OPENSSL W/DEBUG ***
== ZIP LINKS (zlib) ==
[NOTE: precompiled dlls should NOT be used because they will cause a crash
(this is due to different compile parameters / api call systems]
To compile with ziplinks support you need to do the following:
Download the SOURCE from http://www.winimage.com/zLibDll/
(at the time of writing, http://www.winimage.com/zLibDll/zlib121.zip)
and extract it to somewhere, for example c:\dev\zlib-1.2.1
Then, edit win32\makefile.msc:
- Change -MD to -MDd
- Add -D ZLIB_WINAPI to CFLAGS
- so the result will be like:
CFLAGS = -nologo -MDd -O2 $(LOC) -D ZLIB_WINAPI
- Then compile: nmake -f win32\Makefile.msc
- Assuming the above step went fine, your zlib is now ready.
- Now, to compile UnrealIRCd with ziplinks you do something like this:
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib-1.2.1" ZLIB_LIB_DIR="c:\dev\zlib-1.2.1"
Obviously, change the paths if needed [1st = *.h files, 2nd=*.dll/*.lib]
== SSL (OpenSSL) ==
[note: openssl requires perl to configure/compile!]
- Download latest openssl (eg: openssl-0.9.7d.tar.gz) and extract it somewhere
(we'll use c:\dev\openssl-0.9.7d in this example)
- Open util\do_masm.bat, add 'debug' to the lines with 'mk1mf.pl' BUT be careful
since it should NOT be the last word, so add it somewhere before that.
For example: perl util\mk1mf.pl dll debug VC-W31-32 >ms\w31dll.mak
- Start the
- Now we go build openssl, run:
ms\do_masm
nmake -f ms\ntdll.mak
- Assuming the above step went fine, your OpenSSL is now ready.
- Now, to compile UnrealIRCd with ziplinks you do something like this:
nmake -f makefile.win32 USE_SSL=1 OPENSSL_INC_DIR="c:\openssl\inc32\openssl" OPENSSL_LIB_DIR="C:\Dev\openssl\out32dll.dbg"
Obviously, change the paths if needed [1st=*.h files, 2nd=*.dll/*.lib]
== REMOTE INCLUDES (curl, c-ares) ==
- Download latest c-ares source from http://daniel.haxx.se/projects/c-ares/
Download latest curl source from http://curl.haxx.se/download.html
Extract both somewhere (eg: c:\dev\c-ares-1.2.0 and c:\dev\curl-7.12.0)
- Open vc\vc.dsw from your ares directory. Assuming you have VC7 it will ask
whether it should convert the project, choose 'Yes to all'.
- (solution explorer) areslib -> properties
C/C++ -> code generation -> runtime library: Change to
'Multi-threaded Debug DLL (/MDd)'
- at the time of writing 'ares_free_errmem.c' should be removed from the
project file (solution explorer -> source files -> find the file + press
delete). Also 'ares_version.c' and 'ares_cancel.c' should be added
(solution explorer -> source files -> rightclick -> add -> add existing ->
go down a few directories if needed and choose the file).
- right click at 'areslib' in the solution explorer and select 'Build'.
Assuming it compiled fine, we are done with c-ares.
- Now go to the curl directory and open lib\curllib.dsw. Choose 'Yes to all'
again when asked about converting.
- Open config-win32.h (@header files in solution explorer) and add:
#define USE_ARES 1
- Open include\curl\multi.h and change the line with:
#include <winsock2.h>
to:
#include <winsock.h>
- (solution explorer) curllib -> properties
- C/C++ -> code generation -> runtime library: Change to
'Multi-threaded Debug DLL (/MDd)'
- C/C++ -> general -> additional include directories:
add the path to your <c-ares-directory> (eg: C:\Dev\c-ares-1.2.0).
- linker -> general -> additional library directories:
add the path to your <c-ares-directory>\vc\areslib\Debug,
for example C:\Dev\c-ares-1.2.0\vc\areslib\Debug.
- linker -> input -> additional dependencies:
add: areslib.lib
- linker -> input -> Module defenition file:
set to: libcurl.def
Done with editting properties.
- Now: Build -> rebuild solution, everything should compile fine.
- Now, to compile UnrealIRCd with remote includes you do something like this:
nmake -f makefile.win32 USE_REMOTEINC=1 LIBCURL_INC_DIR="C:\Dev\curl-7.12.0\include" LIBCURL_LIB_DIR="C:\Dev\curl-7.12.0\lib\Debug"
+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'.
*/
+56 -57
View File
@@ -26,10 +26,17 @@
#those lines are ignored by the ircd.
/*
* At *NIX UnrealIrcd supports modules.
* Loading the commands module is required:
* UnrealIRCd supports modules, loading some of them is required.
* You need at least the commands module and a cloaking module.
*/
loadmodule "src/modules/commands.so";
/* 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";
/*
* You can also include other configuration files.
@@ -65,7 +72,8 @@ me
/*
* NEW: admin {}
* OLD: A:Line Admin gives information on the server admin. you
* OLD: A:Line
* Admin gives information on the server admin. you
* may put as many lines under admin { as you wish.
* Syntax is as follows:
* admin {
@@ -180,39 +188,10 @@ allow channel {
* };
*/
/* OLD OPER FLAG | NEW FLAG NAME
O global
o local
a services-admin
A admin
r can_rehash
D can_die
R can_restart
h helpop
w can_wallops
g can_globops
c can_localroute
L can_globalroute
k can_localkill
K can_globalkill
b can_kline
Z can_gzline
t can_gkline
B can_unkline
n can_localnotice
G can_globalnotice
N netadmin
C coadmin
z can_zline
W get_umodew
H get_host
v can_override
*/
/*
Note: netadmin gives you OaAN
admin and services-admin give you o as well
*/
/* For a list of oper flags, see doc/unreal32docs.html#operblock
* [HIGHLY recommended to read]
*/
oper bobsmith {
class clients;
@@ -223,9 +202,13 @@ oper bobsmith {
flags
{
netadmin;
can_zline;
can_gzline;
can_gkline;
global;
};
};
/*
* NEW: listen {}
* OLD: P:Line
@@ -277,6 +260,14 @@ listen *:6697
listen *:8067;
listen *:6667;
/* NOTE: If you are on an IRCd shell with multiple IP's you are
* likely to get 'Address already in use' errors in your log
* and the ircd won't start. This means you MUST bind
* to a specific IP instead of '*', so for example:
* listen 1.2.3.4:6667;
* Obviously, replace the IP with the IP that was assigned to you.
*/
/*
* NEW: link {}
* OLD: C/N:Lines
@@ -327,9 +318,7 @@ link hub.mynet.com
password-receive "LiNk";
class servers;
options {
/* Note: You should not use autoconnect when linking
* services
*/
/* Note: You should not use autoconnect when linking services */
autoconnect;
ssl;
zip;
@@ -374,8 +363,6 @@ drpass {
*
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
*
* NOTICE: Right now, SEGV messages are *always* sent to ircd.log. codemastr is
* working on a way to redirect the messages to this log file. *
* Syntax:
* log "log file"
* {
@@ -399,6 +386,10 @@ log "ircd.log" {
server-connects;
kills;
errors;
sadmin-commands;
chg-commands;
oper-override;
spamfilter;
};
};
@@ -410,7 +401,7 @@ log "ircd.log" {
*
* Syntax:
* alias "name" {
* nick "points to";
* target "points to";
* type aliastype;
* };
*
@@ -419,14 +410,14 @@ log "ircd.log" {
// This points the command /nickserv to the user NickServ who is connected to the set::services-server server
/*alias NickServ {
nick "NickServ";
target "NickServ";
type services;
};*/
// If you want the command to point to the same nick as the command, you can leave the nick entry out
//alias ChanServ { type services; };
// Points the /statserv command to the user StatServ on the set::stats-name server
// Points the /statserv command to the user StatServ on the set::stats-server server
//alias StatServ { type stats; };
// Points the /superbot command to the user SuperBot
@@ -448,7 +439,7 @@ alias StatServ { type stats; };
* Syntax:
* alias "name" {
* format "format string" {
* nick "points to";
* target "points to";
* type aliastype;
* parameters "parameters to send";
* };
@@ -461,12 +452,12 @@ alias StatServ { type stats; };
/*
alias "identify" {
format "^#" {
nick "chanserv";
target "chanserv";
type services;
parameters "IDENTIFY %1-";
};
format "^[^#]" {
nick "nickserv";
target "nickserv";
type services;
parameters "IDENTIFY %1-";
};
@@ -481,18 +472,19 @@ alias "identify" {
/* The alias::format::parameters is similar to scripting languages. %N (where N is a number) represents a
* parameter sent to the command (in this case /identify). If you specify %N- it means all parameters from
* N until the last parameter in the string.
* N until the last parameter in the string. You may also specify %n which is replaced by
* the user's nickname.
*/
/* Standard aliases */
alias "services" {
format "^#" {
nick "chanserv";
target "chanserv";
type services;
parameters "%1-";
};
format "^[^#]" {
nick "nickserv";
target "nickserv";
type services;
parameters "%1-";
};
@@ -501,12 +493,12 @@ alias "services" {
alias "identify" {
format "^#" {
nick "chanserv";
target "chanserv";
type services;
parameters "IDENTIFY %1-";
};
format "^[^#]" {
nick "nickserv";
target "nickserv";
type services;
parameters "IDENTIFY %1-";
};
@@ -533,6 +525,11 @@ tld {
rules "ircd.rules.fr";
};
/* note: you can just delete the example block above,
* in which case the defaults motd/rules files (ircd.motd, ircd.rules)
* will be used for everyone.
*/
/*
* NEW: ban nick {}
* OLD: Q:Line
@@ -696,14 +693,16 @@ set {
help-channel "#ROXnet";
hiddenhost-prefix "rox";
/* prefix-quit "no"; */
/* Your cloak keys should be 3 random numbers between 10000 and 2147483646
* and should be the same at all servers on the network.
/* Cloak keys should be the same at all servers on the network.
* They are used for generating masked hosts and should be kept secret.
* The keys should be 3 random strings of 5-100 characters
* (10-20 chars is just fine) and must consist of lowcase (a-z),
* upcase (A-Z) and digits (0-9) [see first key example].
*/
cloak-keys {
9666;
3333;
3330;
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"and another one";
"and another one";
};
/* on-oper host */
hosts {
+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!
*/
-53
View File
@@ -1,53 +0,0 @@
/*
* Example set {} block
*/
set {
/*
* This is the mail users will get shown when k-lined
*/
kline-address "mail.to.mail.to";
/*
* What modes will users get when connecting to this server
*/
modes-on-connect "+ix";
/* What channels users will autojoin */
auto-join "0";
/* What channels opers will autojoin on connect*/
oper-auto-join "0";
dns {
/* What IP has our DNS server got? */
nameserver 127.0.0.1;
/* How long time will we wait for each attempt? */
timeout 2s;
/* How many attempts will we do */
retries 2s;
};
options {
enable-opermotd;
enable-chatops;
hide-ulines;
// webtv-support;
identd-check;
};
/*
* How many channels each user can join
*/
maxchannelsperuser 10;
/*
* This is a new thing in Unreal3.2.
* You _need_ to make three numbers up, bigger than 100000
* These MUST be the SAME on EVERY server in your NETWORK
* If people discover these keys, it is easier for them to crack
* the +x algoritm.
*/
cloak-keys
{
0;
0;
0;
};
};
+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
+65 -7
View File
@@ -1,5 +1,5 @@
Numeric 005 Documentation (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
(As of Unreal3.2-beta11)
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
@@ -17,13 +17,23 @@ by this server"
Currently UnrealIRCd supports several tokens that are included in numeric 005. A list of
all tokens, their respective value and a brief description are listed below.
Unreal attempts to follow the proposed ISupport standard as much as possible. Unreal only
ignores the standard in one regard, the TARGMAX token. This token is believed to be
impractical and technically impossible to correctly implement due to existing limitations
in the standard. Therefore, this token is not currently supported.
Unreal does additionally provide a few tokens which are not specified in the standard, these
include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, and CMDS. Unreal also maintains a few
legacy tokens such as MAXCHANNELS and WALLCHOPS to ensure compatibility until the ISupport
standard is more widely accepted by clients.
Token Value Default Value Description
------------------------------------------------------------------------------------------------
MAP none none Informs the client that the /map
command is present.
command is present. [Obsolete]
KNOCK none none Informs the client that the /knock
command is present.
command is present. [Obsolete]
SAFELIST none none The LIST command is sent in
multiple iterations so that the
@@ -34,10 +44,11 @@ HCN none none The server supports t
(Hybrid Connect Notice) protocol.
MAXCHANNELS number 10 The maximum number of channels a
user may join.
user may join. [Deprecated]
MAXBANS number 60 The maximum number of bans that
may be placed for a channel.
[Obsolete]
NICKLEN number 30 Maximum length of a user's
nickname.
@@ -55,6 +66,7 @@ AWAYLEN number 307 Maximum length of an
WALLCHOPS none none Indicates that you may use
NOTICE/PRIVMSG to send to +ohv by
using PRIVMSG/NOTICE [@|%|+]#channel.
[Deprecated]
WATCH number 128 Indicates the presence of the
WATCH command and specifies the
@@ -74,8 +86,8 @@ PREFIX (modes)prefixes (qaohv)~&@%+ Indicates the modes o
that corespond to the given
nickname prefixes.
CHANMODES A,B,C,D be,k,lfL, Specifies how each channel mode is
psmntirRcOAQKVHGCuzN set/unset. The A section specifies
CHANMODES A,B,C,D be,kfL,lj, Specifies how each channel mode is
psmntirRcOAQKVHGCuzNSMT set/unset. The A section specifies
modes that add a nick/mask to a
list. The B section specifies
modes that require a parameter
@@ -100,3 +112,49 @@ EXTBAN prefix,types ~,cqr Specifies what extban
defines which character indicates
an extban and the types defines
which extbans the server supports.
ELIST flags MNUCT Specifies the set of extended LIST
options supported. The M flag
indicates mask based searching,
the N flag indicates negative
mask based searching. The U flag
means support for user count
searching. The C flag allows channel
creation time searching, and the T
flag allows topic set time
searching.
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
accomplish a specific task. This
token replaces the MAP and KNOCK
tokens.
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
(+e) are supported by the server.
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
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
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
channel name that a user can create.
+11
View File
@@ -128,3 +128,14 @@ ZIP If both servers have this set then the link will be (zlib) compres
TKLEXT This allows 10 instead of 8 parameters in TKL's for spamfilter, see s_kline.c
function m_tkl for more info on this (added in 3.2RC2).
NICKIP This token indicates that a (standard) base64 encoded IP address is included
in the NICK command. The IP is in binary network byte order formated and
encoded using the standard base64 algorithm. '*' is used if no IP is available.
NICKCHARS This specifies a list of language characters that are allowed in nicks.
USMARC codes are used, with a suffix if needed. See src/charsys.c for the full
list (ctrl+f, static LangList) of possible languages (2nd column).
The items in the list sent as NICKCHARS=.. must always be sorted.
If a server sends NICKCHARS= and if the remote parameters do not match the
charsets in use locally, then the server link is rejected.
+108 -120
View File
@@ -1,122 +1,110 @@
Token List (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
(As of Unreal3.2-beta11)
Token List (c) 2002-2004 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
(As of Unreal3.2.3)
Command Token
Command Token
------------------------------------------------------------------------------------------------
PRIVMSG !
WHO \
WHOIS #
WHOWAS $
USER %
NICK &
SERVER '
LIST (
TOPIC )
INVITE *
VERSION +
QUIT ,
SQUIT -
KILL .
INFO /
LINKS 0
SUMMON 1
STATS 2
USERS 3
HELP 4
HELPOP 4
ERROR 5
AWAY 6
CONNECT 7
PING 8
PONG 9
OPER ;
PASS <
WALLOPS =
TIME >
NAMES ?
ADMIN @
NOTICE B
JOIN C
PART D
LUSERS E
MOTD F
MODE G
KICK H
USERHOST J
ISON K
REHASH O
RESTART P
CLOSE Q
DIE R
HASH S
DNS T
SILENCE U
AKILL V
KLINE W
UNKLINE X
RAKILL Y
GNOTICE Z
GOPER [
GLOBOPS ]
LOCOPS ^
PROTOCTL _
WATCH `
TRACE b
SQLINE c
UNSQLINE d
SVSNICK e
SVSNOOP f
SVSKILL h
SVSMODE n
SAMODE o
CHATOPS p
ZLINE q
UNZLINE r
RULES t
MAP u
SVS2MODE v
DALINFO w
ADCHAT x
MKPASSWD y
ADDLINE z
GLINE }
SETHOST AA
NACHAT AC
SETIDENT AD
SETNAME AE
LAG AF
SDESC AG
KNOCK AI
CREDITS AJ
LICENSE AK
CHGHOST AL
RPING AM
RPONG AN
NETINFO AO
SENDUMODE AP
ADDMODE AQ
ADDOMODE AR
SVSMODE AS
SMO AU
OPERMOTD AV
TSCTL AW
SAJOIN AX
SAPART AY
CHGIDENT AZ
SWHOIS BA
SVSO BB
SVSFLINE BC
TKL BD
VHOST BE
BOTMOTD BF
HTM BH
SHUN BL
SVSJOIN BR
SVSPART BT
SJOIN ~
UMODE2 |
PRIVATE !
WHOIS #
NICK &
SERVER '
TOPIC )
INVITE *
VERSION +
QUIT ,
SQUIT -
KILL .
INFO /
LINKS 0
STATS 2
HELP 4
ERROR 5
AWAY 6
CONNECT 7
PING 8
PONG 9
PASS <
TIME >
ADMIN @
SETHOST AA
NACHAT AC
SETIDENT AD
SETNAME AE
LAG AF
SDESC AG
KNOCK AI
CREDITS AJ
LICENSE AK
CHGHOST AL
RPING AM
RPONG AN
NETINFO AO
SENDUMODE AP
ADDMOTD AQ
ADDOMOTD AR
SVSMOTD AS
SMO AU
OPERMOTD AV
TSCTL AW
SAJOIN AX
SAPART AY
CHGIDENT AZ
NOTICE B
SWHOIS BA
SVSO BB
SVSFLINE BC
TKL BD
VHOST BE
BOTMOTD BF
HTM BH
DCCDENY BI
UNDCCDENY BJ
CHGNAME BK
SHUN BL
CYCLE BP
MODULE BQ
SVSNLINE BR
SVSPART BT
SVSLUSERS BU
SVSSNO BV
SVS2SNO BW
SVSJOIN BX
SVSSILENCE Bs
SVSWATCH Bw
JOIN C
PART D
LUSERS E
EOS ES
MOTD F
MODE G
KICK H
REHASH O
RESTART P
CLOSE Q
SENDSNO Ss
DNS T
TEMPSHUN Tz
SILENCE U
AKILL V
UNKLINE X
RAKILL Y
GLOBOPS ]
LOCOPS ^
PROTOCTL _
WATCH `
TRACE b
SQLINE c
UNSQLINE d
SVSNICK e
SVSNOOP f
SVSKILL h
SVSMODE n
SAMODE o
CHATOPS p
UNZLINE r
RULES t
MAP u
SVS2MODE v
DALINFO w
ADMINCHAT x
UMODE2 |
SJOIN ~
+5 -2
View File
@@ -3,7 +3,10 @@ VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
Protocol Version
------------------------------------------------------------------------------------------------
2303 3.2-Selene
2306 3.2.3
2305 3.2.2
2304 3.2.1
2303 3.2-beta*, 3.2-RC*, 3.2
2302 3.1.1-Darkshades, 3.1.2-Darkshades, 3.1.3-Komara, 3.1.4-Meadows
2301 3.1-Silverheart
2300 3.0-Morrigana
@@ -28,5 +31,5 @@ e SSL supported
O OperOverride enabled
o OperOverride without verify
Z Zip links supported
3 3rd party modules (were) loaded
3 3rd party modules (were) loaded or unreal is any other way 'tainted' (eg: bad libs)
E Extended channel modes supported
+45
View File
@@ -0,0 +1,45 @@
==[ Translations ]============================================================
Starting with the release of Unreal 3.2 we have begun accepting translated
documentation files. For now, only translations of unreal32docs.html and
example.conf are accepted. Other stuff might be translated later, but
this will probably be postponed to 3.3 (numerics/ircd text/help.conf/etc).
There a few requirements however:
- When you submit your translation it should be a translation of the
very latest doc... So be sure to translate the cvs version of
unreal32docs.html (www.vulnscan.org/UnrealIrcd/unreal32docs.html).
- Of course the translation should be correct.. So also 'technically',
it's therefore recommended that have some real experience with Unreal ;)
- If you are accepted and start working on it, it would be nice if you
could put your docs-in-progress online somewhere so we can see how
progress is going a bit.
- You should use a proper HTML editor, this especially excludes Microsoft
Word and Frontpage since it enlarges the .html file by (at least) 30%.
Don't worry, there are enough free&simple html editors out there that
work perfectly fine, you won't need to be an HTML expert at all!
- Someone, usually the person who translated it, needs to be willing
to actively maintain the docs. This is very important! If docs are
out of date (out-of-synch) there will be confusion among users.
Translators will receive once a week (and right before every release)
all changes that were made in unreal32docs.html. Then the translator
should update his/her doc and send it in (or commit it via cvs).
Count on an average of 15 minutes a week (it varies).
Now, we should tell you that the first-time translation of unreal32docs.html
is a LOT of work.. probably 20 hours or so. After that, the weekly updates
take really just 5, 10, 15 minutes a week, which is pretty much "no time".
Now why would you translate at all? Well, by translating UnrealIRCd
documentation you will help out your fellow citizens and/or other people
of that language, you will make Unreal a bit more 'internationalized',
and it's a worthwile contribution to the UnrealIRCd project.
Upon successful completion you will also receive an @unrealircd.org
forwarder email address, and of course your name will be in the docs.
If you want to start translating a document, please send an email to
coders@lists.unrealircd.org and mention the language you are willing
to translate to.. You will then receive an email back saying you can
go ahead (or not). This is mainly to avoid multiple persons working
on the same translation.
==============================================================================
+1051 -354
View File
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
File diff suppressed because it is too large Load Diff
+577 -239
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
+7 -30
View File
@@ -35,12 +35,7 @@ DLLFUNC int h_defizzer_connect(aClient *sptr);
static Hook *LocConnect = NULL;
ModuleInfo DefizzerModInfo;
#ifndef DYNAMIC_LINKING
ModuleHeader defizzer_Header
#else
#define defizzer_Header Mod_Header
ModuleHeader Mod_Header
#endif
ModuleHeader MOD_HEADER(defizzer)
= {
"defizzer", /* Name of module */
"$Id$", /* Version */
@@ -49,43 +44,25 @@ ModuleHeader Mod_Header
NULL
};
/* The purpose of these ifdefs, are that we can "static" link the ircd if we
* want to
*/
/* This is called on module init, before Server Ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Init(ModuleInfo *modinfo)
#else
int defizzer_Init(ModuleInfo *modinfo)
#endif
DLLFUNC int MOD_INIT(defizzer)(ModuleInfo *modinfo)
{
bcopy(modinfo,&DefizzerModInfo,modinfo->size);
LocConnect = HookAddEx(DefizzerModInfo.handle, HOOKTYPE_PRE_LOCAL_CONNECT, h_defizzer_connect);
return MOD_SUCCESS;
}
/* Is first run when server is 100% ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Load(int module_load)
#else
int defizzer_Load(int module_load)
#endif
DLLFUNC int MOD_LOAD(defizzer)(int module_load)
{
return MOD_SUCCESS;
}
/* Called when module is unloaded */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Unload(int module_unload)
#else
int defizzer_Unload(int module_unload)
#endif
DLLFUNC int MOD_UNLOAD(defizzer)(int module_unload)
{
HookDel(LocConnect);
return MOD_SUCCESS;
}
static void ban_fizzer(aClient *cptr)
{
int i;
@@ -148,4 +125,4 @@ DLLFUNC int h_defizzer_connect(aClient *sptr)
return exit_client(sptr, sptr, &me, "Fizzer client");
}
return 0;
}
}
BIN
View File
Binary file not shown.
+186 -86
View File
@@ -25,21 +25,29 @@ help {
" ==-------------------------oOo--------------------------==";
};
/* note: indexes were generated by cat somecmds|sort|column -c 70
* along with tab->space conversion (tabwidth 8).
* Perhaps we should automate this step :). -- Syzop
*/
help Usercmds {
" Currently the following User commands are available.";
" Use /HELPOP <command name> to get more information about";
" a specific command.";
" -";
" ==-----------------oOo-----------------==";
" ADMIN KICK MOTD QUIT VERSION";
" AWAY KNOCK NAMES RULES VHOST";
" CREDITS LICENSE NICK SETNAME WATCH";
" CYCLE LINKS NOTICE SILENCE WHO";
" DALINFO LIST PART STATS WHOIS";
" INVITE LUSERS PING TIME WHOWAS";
" ISON MAP PONG TOPIC";
" JOIN MODE PRIVMSG USERHOST";
" ==-----------------oOo-----------------==";
" ==-------------------------oOo-------------------------==";
" ADMIN LICENSE PART USERHOST";
" AWAY LINKS PING USERIP";
" CREDITS LIST PONG VERSION";
" CYCLE LUSERS PRIVMSG VHOST";
" DALINFO MAP QUIT WATCH";
" DCCALLOW MODE RULES WHO";
" INVITE MODULE SETNAME WHOIS";
" ISON MOTD SILENCE WHOWAS";
" JOIN NAMES STATS";
" KICK NICK TIME";
" KNOCK NOTICE TOPIC";
" ==-------------------------oOo-------------------------==";
};
help Opercmds {
@@ -47,16 +55,19 @@ help Opercmds {
" Use /HELPOP <command name> to get more information about";
" a specific command.";
" -";
" ==----------------oOo---------------==";
" OPER WALLOPS GLOBOPS CHATOPS LOCOPS DNS";
" ADCHAT NACHAT KILL KLINE ZLINE SPAMFILTER";
" GLINE SHUN GZLINE HTM TSCTL TEMPSHUN";
" REHASH RESTART DIE";
" LAG SETHOST SETIDENT CHGHOST CHGIDENT";
" CHGNAME SQUIT CONNECT DCCDENY UNDCCDENY";
" SAJOIN SAPART SAMODE RPING TRACE";
" OPERMOTD SDESC MKPASSWD CLOSE MODULE";
" ==----------------oOo---------------==";
" ==-------------------------oOo-------------------------==";
" ADCHAT GLOBOPS OPERMOTD SPAMFILTER";
" CHATOPS GZLINE REHASH SQUIT";
" CHGHOST HTM RESTART TEMPSHUN";
" CHGIDENT KILL RPING TRACE";
" CHGNAME KLINE SAJOIN TSCTL";
" CLOSE LAG SAMODE UNDCCDENY";
" CONNECT LOCOPS SAPART WALLOPS";
" DCCDENY MKPASSWD SDESC ZLINE";
" DIE MODULE SETHOST";
" DNS NACHAT SETIDENT";
" GLINE OPER SHUN";
" ==-------------------------oOo-------------------------==";
};
help Svscmds {
@@ -67,13 +78,13 @@ help Svscmds {
" Use /HELPOP <command name> to get more information about";
" a specific command.";
" -";
" ==-----------oOo-----------==";
" SVSNICK SVSMODE SVSKILL SVSWATCH";
" SVSNOOP SVSJOIN SVSPART SVSSILENCE";
" SVSO SWHOIS SQLINE SVSNLINE";
" UNSQLINE SVS2MODE SVSFLINE SVSSNO";
" SVSMOTD SVS2SNO SVSLUSERS";
" ==-----------oOo-----------==";
" ==-------------------------oOo-------------------------==";
" SQLINE SVSKILL SVSNLINE SVSSNO";
" SVS2MODE SVSLUSERS SVSNOOP SVSWATCH";
" SVS2SNO SVSMODE SVSO SWHOIS";
" SVSFLINE SVSMOTD SVSPART UNSQLINE";
" SVSJOIN SVSNICK SVSSILENCE";
" ==-------------------------oOo-------------------------==";
};
help Umodes {
@@ -130,7 +141,9 @@ help Snomasks {
" k = View KILL notices";
" n = View nick changes on local server";
" N = View nick changes on remote servers";
" o = View oper-up notices";
" q = View rejected nick changes due to Q:lines";
" s = View general notices";
" S = View spamfilter matches";
" v = View usage of /VHOST command";
" ==-------------------------oOo------------------------==";
@@ -149,9 +162,10 @@ help Chmodes {
" 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]";
" f [*]<lines>:<seconds> = Flood protection [o]";
" (Users will be kicked after saying <lines> in <seconds> and banned if * is specified)";
" I <nick!ident@host> = Overrides +i for matching users [h]";
" f <floodparams> = Flood protection (for more info see /HELPOP CHMODEF) [o]";
" i = A user must be invited to join the channel [h]";
" j <joins:sec> = Throttle joins per-user to 'joins' per 'sec' seconds [o]";
" k <key> = Users must specify <key> to join [h]";
" l <number of max users> = Channel may hold at most <number> of users [o]";
" m = Moderated channel (only +vhoaq users may speak) [h]";
@@ -164,7 +178,7 @@ help Chmodes {
" A = Server/Net Admin only channel (settable by Admins)";
" C = No CTCPs allowed in the channel [o]";
" G = Filters out all Bad words in messages with <censored> [o]";
" M = Must be using a registered nick (+r) to talk [o]";
" M = Must be using a registered nick (+r), or have voice access to talk [o]";
" K = /KNOCK is not allowed [o]";
" L <chan2> = Channel link (If +l is full, the next user will auto-join <chan2>) [q]";
" N = No Nickname changes are permitted in the channel [o]";
@@ -180,39 +194,67 @@ help Chmodes {
" ==------------------------------oOo----------------------------==";
};
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";
" floods. The syntax for this mode's parameter is as follows:";
" -";
" +f [<amount><type>{#<action>}{,...}]:<seconds>";
" -";
" The amount specifies the number of times the specified flood must occur";
" before action is taken. Below are the available types:";
" -";
" ==-----Type-----Name--------Default Action---Other Actions-----==";
" c CTCP +C m, M";
" j Join +i R";
" k Knock +k";
" m Messages +m M";
" n Nickchange +N";
" t Text kick b";
" -";
" The difference between type m and t is that m is tallied for the entire";
" channel whereas t is tallied per user.";
" -";
" If you choose to specify an action for a mode, you may also specify a";
" time (in minutes) after which the specific action will be reversed.";
};
help Oflags {
" Here you will find the flags that can be placed inside of the O:Lines";
" -";
" ==----------------------oOo--------------------==";
" o = Local Operator";
" O = Global Operator";
" a = Gets +a on oper up. Is Services Administrator";
" A = Gets +A on oper up. Is Server Administrator";
" C = Gets +C on oper up. Is Co Administrator";
" N = Gets +N on oper up. Is Network Administrator";
" ==-------------------------------oOo-----------------------------==";
" o (locop) Local Operator";
" O (globop) Global Operator";
" C (coadmin) Gets +C on oper up. Is Co Administrator";
" A (admin) Gets +A on oper up. Is Server Administrator";
" a (services-admin) Gets +a on oper up. Is Services Administrator";
" N (netadmin) Gets +N on oper up. Is Network Administrator";
" -";
" r = Access to /REHASH server";
" R = Access to /RESTART server";
" D = Access to /DIE server";
" h = Oper receives umode +h (helpop)";
" g = Oper can send /GLOBOPS";
" w = Oper can send /WALLOPS";
" n = Oper can send Local Server Notices";
" G = Oper can send Global Server Notices";
" c = Access to do local /SQUITs and /CONNECTs";
" L = Access to do global /SQUITs and /CONNECTs";
" k = Access to do local /KILLs";
" K = Access to do global /KILLs";
" b = Oper can /KLINE users from server";
" B = Oper can remove Klines";
" z = Can add Z:Lines";
" Z = Can add global Z:Lines";
" t = Can use /GLINE and /SHUN";
" v = Can use OperOverride";
" q = Can use +q";
" H = Gets +x on oper up";
" W = Gets +W on oper up";
" ==----------------------oOo--------------------==";
" r (can_rehash) Access to /REHASH server";
" R (can_restart) Access to /RESTART server";
" D (can_die) Access to /DIE server";
" h (helpop) Oper receives umode +h (helpop)";
" g (can_globops) Oper can send /GLOBOPS";
" w (can_wallops) Oper can send /WALLOPS";
" n (can_localnotice) Oper can send Local Server Notices";
" G (can_globalnotice) Oper can send Global Server Notices";
" c (can_localroute) Access to do local /SQUITs and /CONNECTs";
" L (can_globalroute) Access to do global /SQUITs and /CONNECTs";
" k (can_localkill) Access to do local /KILLs";
" K (can_globalkill) Access to do global /KILLs";
" b (can_kline) Oper can /KLINE users from server";
" B (can_unkline) Oper can remove Klines";
" z (can_zline) Can add Z:Lines";
" Z (can_gzline) Can add global Z:Lines";
" t (can_gkline) Can use /GLINE, /SHUN and /SPAMFILTER";
" v (can_override) Can use OperOverride";
" 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-----------------------------==";
};
@@ -232,31 +274,61 @@ help Whois {
" -";
" Syntax: WHOIS <user>";
" Example: WHOIS hAtbLaDe";
" -";
" Status flags:";
" The list of channels shown in the WHOIS reply can include one or more";
" status flags to indicate information about the channel. These flags are";
" described below:";
" ~ - User is a Channel Owner (+q)";
" & - User is a Channel Admin (+a)";
" @ - User is a Channel Operator (+o)";
" % - User is a Halfop (+h)";
" + - User is Voiced (+v)";
" ! - User has channels hidden in whois (+p) and you are an IRC Operator";
" ? - The channel is secret (+s) and you are an IRC Operator";
};
help Who {
" Retrieves information about users";
" -";
" Syntax:";
" /WHO [+|-][acghmnsuCM] [args]";
" /WHO [+|-][acghimnsuMRI] [args]";
" Flags are specified like channel modes, the flags cgmnsu all have arguments";
" Flags are set to a positive check by +, a negative check by -";
" The flags available:";
" Flag a: user is away";
" Flag c <channel>: user is on <channel>, no wildcards accepted";
" Flag g <gcos/realname>: user has string <gcos> in their GCOS,";
" Flag g <gcos/realname>: user has string <gcos> in his/her GCOS,";
" wildcards accepted, oper only";
" Flag h <host>: user has string <host> in their hostname, wildcards are accepted";
" Flag m <usermodes>: user has <usermodes> set on them, only o/A/a for nonopers";
" Flag n <nick>: user has string <nick> in their nickname, wildcards accepted";
" Flag h <host>: user has string <host> in his/her hostname, wildcards are accepted";
" Flag i <ip>: user has string <ip> in his/her IP address";
" Flag m <usermodes>: user has <usermodes> set, only o/C/A/a/N for nonopers";
" Flag n <nick>: user has string <nick> in his/her nickname, wildcards accepted";
" Flag s <server>: user is on server <server>, wildcards not accepted";
" Flag u <user>: user has string <user> in their username, wildcards accepted";
" Flag u <user>: user has string <user> in his/her username, wildcards accepted";
" Behavior flags:";
" Flag C: show first visible channel user is in";
" Flag M: check for user in channels I am a member of";
" Flag R: show users' real hostnames";
" Flag I: show users' IP addresses";
" -";
" For backwards compatibility, /who 0 o still shows +o users";
" Example: WHO +m o";
" -";
" Status flags:";
" The who command shows several flags in the returned result to indicate";
" different information about the user. These flags are explained below:";
" G - User is /away (gone)";
" H - User is not /away (here)";
" r - User is using a registered nickname";
" B - User is a bot (+B)";
" * - User is an IRC Operator";
" ~ - User is a Channel Owner (+q)";
" & - User is a Channel Admin (+a)";
" @ - User is a Channel Operator (+o)";
" % - User is a Halfop (+h)";
" + - User is Voiced (+v)";
" ! - User is +H and you are an IRC Operator";
" ? - User is only visible because you are an IRC Operator";
};
help Whowas {
@@ -427,6 +499,14 @@ help Userhost {
" Example: USERHOST hAtbLaDe";
};
help Userip {
" Returns the userip of the user in question.";
" Usually used by scripts or bots.";
" -";
" Syntax: USERIP <nickname>";
" Example: USERIP codemastr";
};
help Topic {
" Sets/Changes the topic of the channel in question,";
" or just display the current Topic.";
@@ -439,11 +519,14 @@ help Topic {
help Invite {
" Sends a user an Invitation to join a particular channel.";
" You must be an Operator on the channel in order to";
" invite a user into it.";
" If the channel is +i, you must be an Operator to use this";
" command, otherwise any user may use the command.";
" Invite without parameters lists the channels you have been";
" invited to.";
" -";
" Syntax: INVITE <user> <channel>";
" Syntax: INVITE [<user> <channel>]";
" Example: INVITE hAtbLaDe #Support";
" Example: INVITE";
};
help Kick {
@@ -473,7 +556,7 @@ help Watch {
" -";
" Syntax: WATCH +nick1 +nick2 +nick3 (Add nicknames)";
" WATCH -nick (Delete nicknames)";
" WATCH (View the watchlist)";
" WATCH (View which users are online)";
};
help List {
@@ -502,9 +585,11 @@ help Privmsg {
" Send a message to a channel.";
" Ex: /PRIVMSG #room Hi all";
" /PRIVMSG <prefix><#channel> <text>";
" Send a message to users with <prefix> in <#channel> only";
" Ex: /PRIVMSG @#room This goes to all ops";
" /PRIVMSG +%@#room This goes to all +v, +h and +o's.";
" Send a message to users with <prefix> and higher in <#channel> only";
" Ex: /PRIVMSG @#room This goes to +oaq";
" /PRIVMSG +#room This goes to +vhoaq";
" NOTE: You need at least voice in order to send to +#chan/%#chan/@#chan";
" and at least ops to send to &#chan/~#chan.";
" /PRIVMSG $<mask> <text>";
" Send a message to all users on servers matching <mask> [Oper only]";
" This is shown in the status window by most clients.";
@@ -527,9 +612,11 @@ help Notice {
" Send a notice to a channel.";
" Ex: /NOTICE #room Hi all, this is annoying";
" /NOTICE <prefix><#channel> <text>";
" Send a notice to users with <prefix> in <#channel> only";
" Ex: /NOTICE @#room This goes to all ops";
" /NOTICE +%@#room This goes to all +v, +h and +o's.";
" Send a notice to users with <prefix> and higher in <#channel> only";
" Ex: /NOTICE @#room This goes to +oaq";
" /NOTICE +#room This goes to +vhoaq";
" NOTE: You need at least voice in order to send to +#chan/%#chan/@#chan";
" and at least ops to send to &#chan/~#chan.";
" /NOTICE $<mask> <text>";
" Send a notice to all users on servers matching <mask> [Oper only]";
" This is shown in the status window by most clients.";
@@ -794,7 +881,7 @@ help Restart {
" -";
" Syntax: RESTART";
" RESTART <password>";
" RESTART <server> <password>";
" RESTART <password> <reason>";
};
help Die {
@@ -903,9 +990,10 @@ help Sapart {
" Forces a user to part a channel.";
" Services Admin Command";
" -";
" Syntax: SAPART <nick> <channel>,[<channel2>..]";
" Syntax: SAPART <nick> <channel>,[<channel2>..] [<comment>]";
" Example: SAPART hAtbLaDe #OperHelp";
" SAPART hAtbLaDe #Support,#IRCHelp";
" SAPART hAtbLaDe #Support,#IRCHelp Go away";
};
help Samode {
@@ -951,13 +1039,16 @@ help Sdesc {
};
help Mkpasswd {
" This command will Encrypt the string it has been given";
" So you can add it directly to the unrealircd.conf if you use";
" Encrypted passwords. Type can be crypt, sha1, or md5. Sha1";
" and md5 are only available when compiled with SSL support.";
" 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'):";
" *NIX: crypt, md5, sha1 [*], ripemd160 [*]";
" Windows: crypt [*], md5, sha1, ripemd160 [*]";
" [*: only available if compiled with SSL support]";
" -";
" Syntax: MKPASSWD <method> <password>";
" Example: MKPASSWD crypt mpsare";
" Example: MKPASSWD md5 IamTeh1337";
};
help Module {
@@ -1053,7 +1144,7 @@ help Svsjoin {
" Forces a user to join a channel.";
" Must be sent through an U:Lined server.";
" -";
" Syntax: SVSJOIN <nick> <channel>[,<channel2>..]";
" Syntax: SVSJOIN <nick> <channel>[,<channel2>..] [key1[,key2[..]]]";
" Example: SVSJOIN hAtbLaDe #jail";
" SVSJOIN hAtbLaDe #jail,#zoo";
};
@@ -1062,9 +1153,10 @@ help Svspart {
" Forces a user to leave a channel.";
" Must be sent through an U:Lined server.";
" -";
" Syntax: SVSPART <nick> <channel>[,<channel2>..]";
" Syntax: SVSPART <nick> <channel>[,<channel2>..] [<comment>]";
" Example: SVSPART hAtbLaDe #Hanson";
" SVSPART hAtbLaDe #Hanson,#AOL";
" SVSPART hAtbLaDe #Hanson,#AOL You must leave";
};
help Svso {
@@ -1191,7 +1283,8 @@ help Spamfilter {
" Use: /spamfilter [add|del|remove|+|-] [type] [action] [tkltime] [reason] [regex]";
" [type] specifies the target type, you can specify multiple targets:";
" 'c' channel msg, 'p' private msg, 'n' private notice,";
" 'N' channel notice, 'P' part msg, 'q' quit msg, 'd' dcc";
" 'N' channel notice, 'P' part msg, 'q' quit msg, 'd' dcc,";
" 'a' away, 't' topic, 'u' user (nick!user@host:realname ban)";
" [action] specifies the action to be taken (only 1 action can be specified):";
" 'kill', 'tempshun' (only shun current session), 'shun',";
" 'kline', 'gline', 'zline', 'gzline', 'block' (blocks the msg),";
@@ -1225,3 +1318,10 @@ help Tempshun {
" Example: TEMPSHUN evilguy suspected infection";
" TEMPSHUN -niceguy";
};
help DccAllow {
" For help on the DCCALLOW system, type '/DCCALLOW HELP'";
/* It would be useless and bad to include it here since that
* stuff quickly gets out-of-synch.
*/
};
+2 -5
View File
@@ -31,8 +31,9 @@ typedef struct {
#define AUTHTYPE_SSL_CLIENTCERT 4
#define AUTHTYPE_RIPEMD160 5
#ifdef USE_SSL
/* 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_RIPEMD160
@@ -47,11 +48,7 @@ typedef struct {
#endif
#endif
#ifdef _WIN32
#ifndef AUTHENABLE_MD5
#define AUTHENABLE_MD5
#endif
#ifndef AUTHENABLE_SHA1
#define AUTHENABLE_SHA1
#endif
+33 -66
View File
@@ -36,7 +36,7 @@
#include <process.h>
#include <io.h>
#endif
//#include "dynconf.h"
#include "types.h"
#include "config.h"
#ifdef PARAMH
#include <sys/param.h>
@@ -96,12 +96,12 @@ void free();
#define TS time_t
extern int match(char *, char *);
extern int match(const char *, const char *);
#define mycmp(a,b) \
( (toupper(a[0])!=toupper(b[0])) || smycmp((a)+1,(b)+1) )
extern int smycmp(char *, char *);
extern int smycmp(const char *, const char *);
#ifndef GLIBC2_x
extern int myncmp(char *, char *, int);
extern int myncmp(const char *, const char *, int);
#endif
#ifdef NEED_STRTOK
@@ -125,7 +125,15 @@ extern char *inet_ntoa(struct IN_ADDR);
extern int inet_netof(struct IN_ADDR);
#endif
int global_count, max_global_count;
#ifndef HAVE_INET_NTOP
const char *inet_ntop(int, const void *, char *, size_t);
#endif
#ifndef HAVE_INET_PTON
int inet_pton(int af, const char *src, void *dst);
#endif
MODVAR int global_count, max_global_count;
extern char *myctime(time_t);
extern char *strtoken(char **, char *, char *);
@@ -140,10 +148,11 @@ extern char *strtoken(char **, char *, char *);
#define DupString(x,y) do{int l=strlen(y);x=MyMalloc(l+1);(void)memcpy(x,y, l+1);}while(0)
extern u_char tolowertab[], touppertab[];
extern MODVAR u_char tolowertab[], touppertab[];
#if defined(CHINESE_NICK) || defined(JAPANESE_NICK)
#if defined(NICK_GB2312) || defined(NICK_GBK) || defined(NICK_GBK_JAP)
#define USE_LOCALE
#include <ctype.h>
#endif
#ifndef USE_LOCALE
@@ -166,7 +175,7 @@ extern u_char tolowertab[], touppertab[];
#undef isspace
#undef iscntrl
#endif
extern unsigned char char_atribs[];
extern MODVAR unsigned char char_atribs[];
#define PRINT 1
#define CNTRL 2
@@ -175,6 +184,7 @@ extern unsigned char char_atribs[];
#define DIGIT 16
#define SPACE 32
#define ALLOW 64
#define ALLOWN 128
#ifndef KLINE_TEMP
#define KLINE_PERM 0
@@ -199,6 +209,7 @@ extern unsigned char char_atribs[];
#define isgraph(c) ((char_atribs[(u_char)(c)]&PRINT) && ((u_char)(c) != 0x32))
#define ispunct(c) (!(char_atribs[(u_char)(c)]&(CNTRL|ALPHA|DIGIT)))
#endif
#define iswseperator(c) (!isalnum(c) && !((u_char)c >= 128))
#ifndef MALLOCD
#define MyFree free
@@ -240,66 +251,18 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
#define EXPAR4 ""
#endif /* EXTCMODE */
#define PROTOCTL_CLIENT_1 \
"MAP" \
" KNOCK" \
" SAFELIST" \
" HCN" \
" MAXCHANNELS=%i" \
" MAXBANS=%i" \
" NICKLEN=%i" \
" TOPICLEN=%i" \
" KICKLEN=%i" \
" MAXTARGETS=%i" \
" AWAYLEN=%i" \
" :are supported by this server"
#define PROTOCTL_PARAMETERS_1 \
MAXCHANNELSPERUSER, \
MAXBANS, \
NICKLEN, \
TOPICLEN, \
TOPICLEN, \
MAXTARGETS, \
TOPICLEN
#ifdef PREFIX_AQ
#define CHPFIX "(qaohv)~&@%+"
#define CHPAR1 "be"
#define CHPFIX "(qaohv)~&@%+"
#define CHPAR1 "beI"
#else
#define CHPFIX "(ohv)@%+"
#define CHPAR1 "beqa"
#define CHPFIX "(ohv)@%+"
#define CHPAR1 "beIqa"
#endif /* PREFIX_AQ */
#define CHPAR2 "kfL"
#define CHPAR3 "l"
#define CHPAR4 "psmntirRcOAQKVGCuzNSM"
#define CHPAR2 "kfL"
#define CHPAR3 "l"
#define CHPAR4 "psmntirRcOAQKVCuzNSM"
#define PROTOCTL_CLIENT_2 \
"WALLCHOPS" \
" WATCH=%i" \
" SILENCE=%i" \
" MODES=%i" \
" CHANTYPES=%s" \
" PREFIX=%s" \
" CHANMODES=%s%s,%s%s,%s%s,%s%s" \
" NETWORK=%s" \
" CASEMAPPING=%s" \
" EXTBAN=~,%s" \
" :are supported by this server"
#define PROTOCTL_PARAMETERS_2 \
MAXWATCH, \
SILENCE_LIMIT, \
MAXMODEPARAMS, \
"#", \
CHPFIX, \
CHPAR1, EXPAR1, \
CHPAR2, EXPAR2, \
CHPAR3, EXPAR3, \
"psmntirRcOAQKVGCuzNSM", EXPAR4, \
ircnet005, \
"ascii", \
extbanstr
/* Server-Server PROTOCTL -Stskeeps
* Please check send_proto() for more. -- Syzop
@@ -314,7 +277,8 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
" SJ3" \
" NS" \
" SJB64" \
" TKLEXT"
" TKLEXT" \
" NICKIP"
#ifdef _WIN32
/*
@@ -322,7 +286,6 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
* Windows' internal strerror() function doesn't work with socket errors.
*/
extern int DisplayString(HWND hWnd, char *InBuf, ...);
#undef strerror
#else
typedef int SOCKET;
#define INVALID_SOCKET -1
@@ -336,8 +299,9 @@ extern int lu_noninv, lu_inv, lu_serv, lu_oper,
lu_unknown, lu_channel, lu_lu, lu_lulocal, lu_lserv,
lu_clu, lu_mlu, lu_cglobalu, lu_mglobalu;
TS now;
MODVAR TS now;
#ifndef _WIN32
#if defined(__STDC__)
#define __const const
#define __signed signed
@@ -360,6 +324,9 @@ TS now;
#endif
#endif
#endif
#else
#define inline __inline
#endif
#define READBUF_SIZE 8192
+44 -75
View File
@@ -76,11 +76,6 @@
*/
#define SHOW_SECRET
/*
* This allows you to see modes in /list
*/
#define LIST_SHOW_MODES
/*
* Admin's chat...
*/
@@ -92,24 +87,12 @@
*/
#undef SECURECHANMSGSONLYGOTOSECURE
/*
* be compatible with older cloak keys? If you link to servers beta4 and
* earlier without this the cloak keys will produce diff results
* Not recommended, however, as beta4 and earlier 3.2 has an insecure
* cloak algo -griever
*/
#undef COMPAT_BETA4_KEYS
/*
If you want SHUN_NOTICES, define this
*/
#undef SHUN_NOTICES
/*
If you want to support chinese and/or japanese nicks
*/
#undef CHINESE_NICK
#undef JAPANESE_NICK
#undef NICK_GB2312
#undef NICK_GBK
#undef NICK_GBK_JAP
/*
Remote rehash
@@ -126,39 +109,12 @@
*/
#undef STRIPBADWORDS_CHAN_ALWAYS
/*
* NO_OPEROVERRIDE
* This will disable OperMode, OperTopic and Banwalks
*/
#undef NO_OPEROVERRIDE
/*
* OPEROVERRIDE_VERIFY
* This will prompt opers before permitting them to join +p/+s
* channels, decreasing the chances of someone "accidentally"
* entering a random channel.
*/
#undef OPEROVERRIDE_VERIFY
/*
* THROTTLING
* This will only allow 1 connection per ip in set::throttle::period time
*/
#define THROTTLING
/*
* NAZIISH_CHBAN_HANDLING (formerly ANNOYING_BAN_THING)
* Reject bans that are matched by existing bans, causes chanserv
* To flood-kick an akicked user if their akick is matched by another
* Ban, but if you don't mind, this can free up ban list space I guess
*/
#undef NAZIISH_CHBAN_HANDLING
/*
* Disable /sethost, /setident, /chgname, /chghost, /chgident
*/
#undef DISABLE_USERMOD
/*
* No spoof code
*
@@ -178,13 +134,6 @@
*/
#define HOSTILENAME /* [DO NOT CHANGE!] */
/*
* This makes topics include nick!user@host instead of nick in topic whoset,
* ALL servers must be Unreal3.2-beta12 or higher, and services may have some
* problems with this
*/
#undef TOPIC_NICK_IS_NUHOST
/*
* Use JOIN instead of SJOIN on every remotely sent JOIN
*/
@@ -241,7 +190,11 @@
* the maintainer.
*/
/* #undef DEBUGMODE define DEBUGMODE to enable debugging mode.*/
/* DEBUGMODE: This should only be used when tracing a problem. It creates
* an insane amount of log output which can be very useful for debugging.
* You should *NEVER* enable this setting on production servers.
*/
/* #undef DEBUGMODE */
/*
* Full pathnames and defaults of irc system's support files. Please note that
@@ -255,7 +208,6 @@
#define OPATH "oper.motd" /* Operators MOTD file */
#define LPATH "debug.log" /* Where the debug file lives, if DEBUGMODE */
#define PPATH "ircd.pid" /* file for server pid */
#define lPATH "ircd.log" /* server log file */
#define VPATH "ircd.svsmotd" /* Services MOTD append. */
#define BPATH "bot.motd" /* Bot MOTD */
#define IRCDTUNE "ircd.tune" /* tuning .. */
@@ -286,9 +238,25 @@
* that the 'new' access lets them. Note also that defining this is
* a major security hole if your ircd goes down and some other user
* starts up the server with a new conf file that has some extra
* O-lines. So don't use this unless you're debugging.
* O-lines.
* Naturally, for non-suid/sgid ircds, this setting does not matter,
* hence command line parameters are always permitted then.
*/
#undef CMDLINE_CONFIG /* allow conf-file to be specified on command line */
#undef CMDLINE_CONFIG
/** FAKELAG_CONFIGURABLE makes it possible to make certain classes exempted
* from 'fake lag' (that is, the artificial delay that is added by the ircd
* to prevent flooding, which causes the messages/commands of the user to
* slow down). Naturally, incorrect use of this feature can cause SEVERE
* issues, in fact it can easily bring your whole IRCd down if one of the
* users with class::options::nofakelag does a good flood at full speed.
* Hence, this is disabled by default, and you need to explicitly enable it
* here IF YOU KNOW WHAT YOU ARE DOING. People complaining their ircd
* ""crashed"" because of this setting will be shot. </DISCLAIMER>
* Common usage for this are: a trusted bot ran by an IRCOp, that you only
* want to give "flood access" and nothing else, and other such things.
*/
#undef FAKELAG_CONFIGURABLE
/*
* Size of the LISTEN request. Some machines handle this large
@@ -374,25 +342,13 @@
#define PORTNUM 6667 /* 6667 is default */
/*
* Maximum number of network connections your server will allow. This should
* never exceed max. number of open file descrpitors and wont increase this.
* Should remain LOW as possible. Most sites will usually have under 30 or so
* connections. A busy hub or server may need this to be as high as 50 or 60.
* Making it over 100 decreases any performance boost gained from it being low.
* if you have a lot of server connections, it may be worth splitting the load
* over 2 or more servers.
* 1 server = 1 connection, 1 user = 1 connection.
* This should be at *least* 3: 1 listen port, 1 dns port + 1 client
*
* Note: this figure will be too high for most systems. If you get an
* fd-related error on compile, change this to 256.
*
* Windows users: This should be a fairly high number. Some operations
* will slow down because of this, but it is _required_ because of the way
* windows NT(and possibly 95) allocate fd handles. A good number is 16384.
* Maximum number of network connections your server will allow.
* This is usually configured via ./Config on *NIX,
* the setting mentioned below is the default for Windows.
* 2004-10-13: 1024 -> 4096
*/
#ifndef MAXCONNECTIONS
#define MAXCONNECTIONS 1024
#define MAXCONNECTIONS 4096
#endif
/*
@@ -483,9 +439,15 @@
*/
#define SIXBONE_HACK
/*
* Forces Unreal to use compressed IPv6 addresses rather than expanding them
*/
#undef IPV6_COMPRESSED
/*
* Extended channel modes. This extends the channel modes with yet another
* 32 possible modes which can also be used in modules.
* This is now pretty much required.
*/
#define EXTCMODE
@@ -495,6 +457,13 @@
*/
#define NEWCHFLOODPROT
/* JoinThrottle (chanmode +j): +j x:y throttles users to X joins per Y seconds (per-user).
* In peak situations (eg: just after a server restart with thousand clients joining
* hundreds of channels) it can use like ~200k, but in normal circumstances you should
* count on just ~10-50k.
*/
#define JOINTHROTTLE
/* ------------------------- END CONFIGURATION SECTION -------------------- */
#define MOTD MPATH
#define RULES RPATH
+117 -10
View File
@@ -27,10 +27,6 @@
typedef struct zNetwork aNetwork;
struct zNetwork {
long key;
long key2;
long key3;
long keycrc;
unsigned x_inah:1;
char *x_ircnetwork;
char *x_ircnet005;
@@ -74,6 +70,7 @@ typedef struct zConfiguration aConfiguration;
struct zConfiguration {
unsigned som:1;
unsigned hide_ulines:1;
unsigned flat_map:1;
unsigned allow_chatops:1;
unsigned webtv_support:1;
unsigned no_oper_hiding:1;
@@ -88,11 +85,13 @@ struct zConfiguration {
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;
long oper_modes;
char *oper_snomask;
@@ -102,6 +101,7 @@ struct zConfiguration {
char *oper_only_stats;
OperStat *oper_only_stats_ext;
int maxchannelsperuser;
int maxdccallow;
int anti_spam_quit_message_time;
char *egd_path;
char *static_quit;
@@ -111,10 +111,14 @@ struct zConfiguration {
char *x_server_key_pem;
char *trusted_ca_file;
long ssl_options;
#elif defined(_WIN32)
void *bogus1, *bogus2, *bogus3;
long bogus4;
#endif
enum UHAllowed userhost_allowed;
char *restrict_usermodes;
char *restrict_channelmodes;
char *restrict_extendedbans;
char *channel_command_prefix;
long unknown_flood_bantime;
long unknown_flood_amount;
@@ -138,24 +142,28 @@ struct zConfiguration {
long spamfilter_ban_time;
char *spamfilter_ban_reason;
char *spamfilter_virus_help_channel;
char spamfilter_vchan_deny;
SpamExcept *spamexcept;
char *spamexcept_line;
aNetwork network;
};
#ifndef DYNCONF_C
extern aConfiguration iConf;
extern MODVAR aConfiguration iConf;
#endif
#define KLINE_ADDRESS iConf.kline_address
#define KLINE_ADDRESS iConf.kline_address
#define GLINE_ADDRESS iConf.gline_address
#define CONN_MODES iConf.conn_modes
#define OPER_MODES iConf.oper_modes
#define OPER_SNOMASK iConf.oper_snomask
#define CONNECT_SNOMASK iConf.user_snomask
#define SHOWOPERMOTD iConf.som
#define HIDE_ULINES iConf.hide_ulines
#define FLAT_MAP iConf.flat_map
#define ALLOW_CHATOPS iConf.allow_chatops
#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
@@ -164,6 +172,7 @@ extern aConfiguration iConf;
#define HOST_TIMEOUT iConf.host_timeout
#define HOST_RETRIES iConf.host_retries
#define NAME_SERVER iConf.name_server
#define DNS_BINDIP iConf.dns_bindip
#define IDENT_CHECK iConf.ident_check
#define FAILOPER_WARN iConf.fail_oper_warn
#define SHOWCONNECTINFO iConf.show_connect_info
@@ -191,15 +200,12 @@ extern aConfiguration iConf;
#define SSL_SERVER_CERT_PEM (iConf.x_server_cert_pem ? iConf.x_server_cert_pem : "server.cert.pem")
#define SSL_SERVER_KEY_PEM (iConf.x_server_key_pem ? iConf.x_server_key_pem : "server.key.pem")
#define CLOAK_KEY1 iConf.network.key
#define CLOAK_KEY2 iConf.network.key2
#define CLOAK_KEY3 iConf.network.key3
#define CLOAK_KEYCRC iConf.network.keycrc
#define STATIC_QUIT iConf.static_quit
#define STATIC_PART iConf.static_part
#define UHOST_ALLOWED iConf.userhost_allowed
#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
@@ -238,4 +244,105 @@ extern aConfiguration iConf;
#define SPAMFILTER_BAN_TIME iConf.spamfilter_ban_time
#define SPAMFILTER_BAN_REASON iConf.spamfilter_ban_reason
#define SPAMFILTER_VIRUSCHAN iConf.spamfilter_virus_help_channel
#define SPAMFILTER_VIRUSCHANDENY iConf.spamfilter_vchan_deny
#define SPAMFILTER_EXCEPT iConf.spamexcept_line
/* 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;
unsigned has_dont_resolve:1;
unsigned has_mkpasswd_for_everyone:1;
unsigned has_allow_part_if_shunned:1;
unsigned has_ssl_egd:1;
unsigned has_dns_timeout:1;
unsigned has_dns_retries:1;
unsigned has_dns_nameserver: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;
unsigned has_modes_on_oper:1;
unsigned has_snomask_on_connect:1;
unsigned has_snomask_on_oper:1;
unsigned has_auto_join:1;
unsigned has_oper_auto_join:1;
unsigned has_oper_only_stats:1;
unsigned has_maxchannelsperuser:1;
unsigned has_maxdccallow:1;
unsigned has_anti_spam_quit_message_time:1;
unsigned has_egd_path:1;
unsigned has_static_quit:1;
unsigned has_static_part:1;
#ifdef USE_SSL
unsigned has_ssl_certificate:1;
unsigned has_ssl_key:1;
unsigned has_ssl_trusted_ca_file:1;
unsigned has_ssl_options:1;
#endif
unsigned has_allow_userhost_change:1;
unsigned has_restrict_usermodes:1;
unsigned has_restrict_channelmodes:1;
unsigned has_restrict_extendedbans:1;
unsigned has_channel_command_prefix:1;
unsigned has_anti_flood_unknown_flood_bantime:1;
unsigned has_anti_flood_unknown_flood_amount:1;
unsigned has_modes_on_join:1;
#ifdef NO_FLOOD_AWAY
unsigned has_anti_flood_away_count:1;
unsigned has_anti_flood_away_period:1;
#endif
unsigned has_anti_flood_nick_flood:1;
unsigned has_ident_connect_timeout:1;
unsigned has_ident_read_timeout:1;
unsigned has_default_bantime:1;
unsigned has_who_limit:1;
unsigned has_silence_limit:1;
#ifdef NEWCHFLOODPROT
unsigned has_modef_default_unsettime:1;
unsigned has_modef_max_unsettime:1;
#endif
unsigned has_ban_version_tkl_time:1;
unsigned has_spamfilter_ban_time:1;
unsigned has_spamfilter_ban_reason:1;
unsigned has_spamfilter_virus_help_channel:1;
unsigned has_spamfilter_virus_help_channel_deny:1;
unsigned has_spamfilter_except:1;
unsigned has_hosts_host_on_oper_up:1;
unsigned has_network_name:1;
unsigned has_default_server:1;
unsigned has_services_server:1;
unsigned has_hosts_global:1;
unsigned has_hosts_admin:1;
unsigned has_hosts_local:1;
unsigned has_hosts_servicesadmin:1;
unsigned has_hosts_netadmin:1;
unsigned has_hosts_coadmin:1;
unsigned has_hiddenhost_prefix:1;
unsigned has_prefix_quit:1;
unsigned has_help_channel:1;
unsigned has_stats_server:1;
unsigned has_cloak_keys:1;
unsigned has_options_webtv_support:1;
unsigned has_options_hide_ulines:1;
unsigned has_options_flat_map:1;
unsigned has_options_show_opermotd:1;
unsigned has_options_identd_check:1;
unsigned has_options_fail_oper_warn:1;
unsigned has_options_dont_resolve:1;
unsigned has_options_show_connect_info:1;
unsigned has_options_mkpasswd_for_everyone:1;
unsigned has_options_allow_part_if_shunned:1;
};
+1 -1
View File
@@ -13,7 +13,7 @@ void delfrom_fdlist(int a, fdlist * b);
void init_fdlist(fdlist * b);
#ifndef NO_FDLIST
extern fdlist oper_fdlist;
extern MODVAR fdlist oper_fdlist;
#endif
+230 -147
View File
@@ -25,28 +25,29 @@
* Most of the externs and prototypes thrown in here to 'cleanup' things.
* -avalon
*/
#include "setup.h"
#ifndef NO_FDLIST
#include "fdlist.h"
#endif
extern char *extraflags;
extern int tainted;
extern MODVAR char *extraflags;
extern MODVAR int tainted;
/* for the new s_err.c */
extern char *getreply(int);
#define rpl_str(x) getreply(x)
#define err_str(x) getreply(x)
extern Member *freemember;
extern Membership *freemembership;
extern MembershipL *freemembershipL;
extern TS nextconnect, nextdnscheck, nextping;
extern aClient *client, me, *local[];
extern aChannel *channel;
extern struct stats *ircstp;
extern int bootopt;
extern time_t TSoffset;
extern MODVAR Member *freemember;
extern MODVAR Membership *freemembership;
extern MODVAR MembershipL *freemembershipL;
extern MODVAR TS nextconnect, nextdnscheck, nextping;
extern MODVAR aClient *client, me, *local[];
extern MODVAR aChannel *channel;
extern MODVAR struct stats *ircstp;
extern MODVAR int bootopt;
extern MODVAR time_t TSoffset;
/* Prototype added to force errors -- Barubary */
extern TS check_pings(TS now);
extern TS TS2ts(char *s);
extern time_t timeofday;
extern MODVAR time_t timeofday;
/* newconf */
#define get_sendq(x) ((x)->class ? (x)->class->sendq : MAXSENDQLENGTH)
/* get_recvq is only called in send.c for local connections */
@@ -55,53 +56,53 @@ extern time_t timeofday;
#define CMD_FUNC(x) int (x) (aClient *cptr, aClient *sptr, int parc, char *parv[])
#ifndef NO_FDLIST
extern float currentrate;
extern float currentrate2; /* outgoing */
extern float highest_rate;
extern float highest_rate2;
extern int lifesux;
extern int LRV;
extern time_t LCF;
extern int currlife;
extern int HTMLOCK;
extern int noisy_htm;
extern long lastsendK, lastrecvK;
extern MODVAR float currentrate;
extern MODVAR float currentrate2; /* outgoing */
extern MODVAR float highest_rate;
extern MODVAR float highest_rate2;
extern MODVAR int lifesux;
extern MODVAR int LRV;
extern MODVAR time_t LCF;
extern MODVAR int currlife;
extern MODVAR int HTMLOCK;
extern MODVAR int noisy_htm;
extern MODVAR long lastsendK, lastrecvK;
#endif
/*
* Configuration linked lists
*/
extern ConfigItem_me *conf_me;
extern ConfigItem_class *conf_class;
extern ConfigItem_class *default_class;
extern ConfigItem_admin *conf_admin;
extern ConfigItem_admin *conf_admin_tail;
extern ConfigItem_drpass *conf_drpass;
extern ConfigItem_ulines *conf_ulines;
extern ConfigItem_tld *conf_tld;
extern ConfigItem_oper *conf_oper;
extern ConfigItem_listen *conf_listen;
extern ConfigItem_allow *conf_allow;
extern ConfigItem_except *conf_except;
extern ConfigItem_vhost *conf_vhost;
extern ConfigItem_link *conf_link;
extern ConfigItem_ban *conf_ban;
extern ConfigItem_badword *conf_badword_channel;
extern ConfigItem_badword *conf_badword_message;
extern ConfigItem_badword *conf_badword_quit;
extern ConfigItem_deny_dcc *conf_deny_dcc;
extern ConfigItem_deny_channel *conf_deny_channel;
extern ConfigItem_deny_link *conf_deny_link;
extern ConfigItem_allow_channel *conf_allow_channel;
extern ConfigItem_deny_version *conf_deny_version;
extern ConfigItem_log *conf_log;
extern ConfigItem_alias *conf_alias;
extern ConfigItem_include *conf_include;
extern ConfigItem_help *conf_help;
extern ConfigItem_offchans *conf_offchans;
extern MODVAR ConfigItem_me *conf_me;
extern MODVAR ConfigItem_class *conf_class;
extern MODVAR ConfigItem_class *default_class;
extern MODVAR ConfigItem_admin *conf_admin;
extern MODVAR ConfigItem_admin *conf_admin_tail;
extern MODVAR ConfigItem_drpass *conf_drpass;
extern MODVAR ConfigItem_ulines *conf_ulines;
extern MODVAR ConfigItem_tld *conf_tld;
extern MODVAR ConfigItem_oper *conf_oper;
extern MODVAR ConfigItem_listen *conf_listen;
extern MODVAR ConfigItem_allow *conf_allow;
extern MODVAR ConfigItem_except *conf_except;
extern MODVAR ConfigItem_vhost *conf_vhost;
extern MODVAR ConfigItem_link *conf_link;
extern MODVAR ConfigItem_ban *conf_ban;
extern MODVAR ConfigItem_badword *conf_badword_channel;
extern MODVAR ConfigItem_badword *conf_badword_message;
extern MODVAR ConfigItem_badword *conf_badword_quit;
extern MODVAR ConfigItem_deny_dcc *conf_deny_dcc;
extern MODVAR ConfigItem_deny_channel *conf_deny_channel;
extern MODVAR ConfigItem_deny_link *conf_deny_link;
extern MODVAR ConfigItem_allow_channel *conf_allow_channel;
extern MODVAR ConfigItem_allow_dcc *conf_allow_dcc;
extern MODVAR ConfigItem_deny_version *conf_deny_version;
extern MODVAR ConfigItem_log *conf_log;
extern MODVAR ConfigItem_alias *conf_alias;
extern MODVAR ConfigItem_include *conf_include;
extern MODVAR ConfigItem_help *conf_help;
extern MODVAR ConfigItem_offchans *conf_offchans;
extern int completed_connection(aClient *);
extern void clear_unknown();
extern EVENT(tkl_check_expire);
extern EVENT(e_unload_module_delayed);
#ifdef THROTTLING
extern EVENT(e_clean_out_throttling_buckets);
@@ -110,9 +111,8 @@ extern EVENT(e_clean_out_throttling_buckets);
extern void module_loadall(int module_load);
extern long set_usermode(char *umode);
extern char *get_modestr(long umodes);
extern void tkl_stats(aClient *cptr, int type, char *para);
extern void config_error(char *format, ...) __attribute__((format(printf,1,2)));
extern int config_verbose;
extern MODVAR int config_verbose;
extern void config_progress(char *format, ...) __attribute__((format(printf,1,2)));
extern void ipport_seperate(char *string, char **ip, char **port);
ConfigItem_class *Find_class(char *name);
@@ -120,28 +120,26 @@ ConfigItem_deny_dcc *Find_deny_dcc(char *name);
ConfigItem_oper *Find_oper(char *name);
ConfigItem_listen *Find_listen(char *ipmask, int port);
ConfigItem_ulines *Find_uline(char *host);
ConfigItem_except *Find_except(char *host, short type);
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_ban *Find_ban(char *host, short type);
ConfigItem_ban *Find_banEx(char *host, short type, short type2);
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);
ConfigItem_deny_channel *Find_channel_allowed(char *name);
ConfigItem_alias *Find_alias(char *name);
ConfigItem_help *Find_Help(char *command);
int AllowClient(aClient *cptr, struct hostent *hp, char *sockhost, char *username);
int parse_netmask(const char *text, struct IN_ADDR *addr, int *b);
int match_ipv4(struct IN_ADDR *addr, struct IN_ADDR *mask, int b);
#ifdef INET6
int match_ipv6(struct IN_ADDR *addr, struct IN_ADDR *mask, int b);
#endif
extern struct tm motd_tm, smotd_tm;
extern Link *Servers;
int parse_netmask(const char *text, struct irc_netmask *netmask);
int match_ip(struct IN_ADDR addr, char *uhost, char *mask, struct irc_netmask *netmask);
ConfigItem_ban *Find_ban_ip(aClient *sptr);
extern MODVAR struct tm motd_tm, smotd_tm;
extern MODVAR Link *Servers;
void add_ListItem(ListStruct *, ListStruct **);
ListStruct *del_ListItem(ListStruct *, ListStruct **);
/* Remmed out for win32 compatibility.. as stated of 467leaf win32 port.. */
extern aClient *find_match_server(char *mask);
extern LoopStruct loop;
extern MODVAR LoopStruct loop;
extern int del_banid(aChannel *chptr, char *banid);
extern int del_exbanid(aChannel *chptr, char *banid);
#ifdef SHOWCONNECTINFO
@@ -155,11 +153,11 @@ extern int del_exbanid(aChannel *chptr, char *banid);
#define BREPORT_FIN_ID "NOTICE AUTH :*** Received identd response\r\n"
#define BREPORT_FAIL_ID "NOTICE AUTH :*** No ident response; username prefixed with ~\r\n"
extern char REPORT_DO_DNS[256], REPORT_FIN_DNS[256], REPORT_FIN_DNSC[256],
extern MODVAR char REPORT_DO_DNS[256], REPORT_FIN_DNS[256], REPORT_FIN_DNSC[256],
REPORT_FAIL_DNS[256], REPORT_DO_ID[256], REPORT_FIN_ID[256],
REPORT_FAIL_ID[256];
extern int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns,
extern MODVAR int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns,
R_do_id, R_fin_id, R_fail_id;
#endif
@@ -183,6 +181,7 @@ extern int del_silence(aClient *, char *);
extern void send_user_joins(aClient *, aClient *);
extern void clean_channelname(char *);
extern int do_nick_name(char *);
extern int do_remote_nick_name(char *);
extern int can_send(aClient *, aChannel *, char *, int);
extern long get_access(aClient *, aChannel *);
extern int is_chan_op(aClient *, aChannel *);
@@ -205,10 +204,14 @@ extern int attach_conf(aClient *, aConfItem *);
extern void inittoken();
extern void reset_help();
extern char *debugmode, *configfile, *sbrk0;
extern MODVAR char *debugmode, *configfile, *sbrk0;
extern char *getfield(char *);
extern void get_sockhost(aClient *, char *);
#ifndef _WIN32
extern char *strerror(int);
#else
extern MODFUNC char *sock_strerror(int);
#endif
extern int dgets(int, char *, int);
extern char *inetntoa(char *);
@@ -220,14 +223,14 @@ extern int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
#endif
#ifdef _WIN32
extern int dbufalloc, dbufblocks, debuglevel;
extern MODVAR int dbufalloc, dbufblocks, debuglevel;
#else
extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno;
#endif
extern short LastSlot; /* last used index in local client array */
extern int OpenFiles; /* number of files currently open */
extern int debuglevel, portnum, debugtty, maxusersperchannel;
extern int readcalls, udpfd, resfd;
extern MODVAR short LastSlot; /* last used index in local client array */
extern MODVAR int OpenFiles; /* number of files currently open */
extern MODVAR int debuglevel, portnum, debugtty, maxusersperchannel;
extern MODVAR int readcalls, udpfd, resfd;
extern aClient *add_connection(aClient *, int);
extern int add_listener(aConfItem *);
extern void add_local_domain(char *, int);
@@ -310,8 +313,11 @@ extern void sendto_opers(char *, ...) __attribute__((format(printf,1,2)));
extern void sendto_umode(int, char *, ...) __attribute__((format(printf,2,3)));
extern void sendto_umode_raw(int, char *, ...) __attribute__((format(printf,2,3)));
extern void sendto_snomask(int snomask, char *pattern, ...) __attribute__((format(printf,2,3)));
extern void sendto_snomask_global(int snomask, char *pattern, ...) __attribute__((format(printf,2,3)));
extern void sendto_snomask_normal(int snomask, char *pattern, ...) __attribute__((format(printf,2,3)));
extern void sendto_snomask_normal_global(int snomask, char *pattern, ...) __attribute__((format(printf,2,3)));
extern void sendnotice(aClient *to, char *pattern, ...) __attribute__((format(printf,2,3)));
extern int writecalls, writeb[];
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);
@@ -323,7 +329,8 @@ 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 *cptr, aClient *sptr, aClient *target, char *filename);
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);
@@ -340,7 +347,6 @@ extern int hunt_server(aClient *, aClient *, char *, int, int, char **);
extern int hunt_server_token(aClient *, aClient *, char *, char *, char *, int, int, char **);
extern int hunt_server_token_quiet(aClient *, aClient *, char *, char *, char *, int, int, char **);
extern aClient *next_client(aClient *, char *);
extern int m_umode(aClient *, aClient *, int, char **);
extern int m_names(aClient *, aClient *, int, char **);
extern int m_server_estab(aClient *);
extern void umode_init(void);
@@ -379,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 int init_resolver(int);
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 *);
@@ -410,52 +416,57 @@ extern time_t atime(char *xtime);
/* Mode externs
*/
extern long UMODE_INVISIBLE; /* 0x0001 makes user invisible */
extern long UMODE_OPER; /* 0x0002 Operator */
extern long UMODE_WALLOP; /* 0x0004 send wallops to them */
extern long UMODE_FAILOP; /* 0x0008 Shows some global messages */
extern long UMODE_HELPOP; /* 0x0010 Help system operator */
extern long UMODE_REGNICK; /* 0x0020 Nick set by services as registered */
extern long UMODE_SADMIN; /* 0x0040 Services Admin */
extern long UMODE_ADMIN; /* 0x0080 Admin */
extern long UMODE_SERVNOTICE;/* 0x0100 server notices such as kill */
extern long UMODE_LOCOP; /* 0x0200 Local operator -- SRB */
extern long UMODE_RGSTRONLY; /* 0x0400 Only reg nick message */
extern long UMODE_WEBTV; /* 0x0800 WebTV Client */
extern long UMODE_SERVICES; /* 0x4000 services */
extern long UMODE_HIDE; /* 0x8000 Hide from Nukes */
extern long UMODE_NETADMIN; /* 0x10000 Network Admin */
extern long UMODE_COADMIN; /* 0x80000 Co Admin */
extern long UMODE_WHOIS; /* 0x100000 gets notice on /whois */
extern long UMODE_KIX; /* 0x200000 usermode +q */
extern long UMODE_BOT; /* 0x400000 User is a bot */
extern long UMODE_SECURE; /* 0x800000 User is a secure connect */
extern long UMODE_VICTIM; /* 0x8000000 Intentional Victim */
extern long UMODE_DEAF; /* 0x10000000 Deaf */
extern long UMODE_HIDEOPER; /* 0x20000000 Hide oper mode */
extern long UMODE_SETHOST; /* 0x40000000 used sethost */
extern long UMODE_STRIPBADWORDS; /* 0x80000000 */
extern long UMODE_HIDEWHOIS; /* hides channels in /whois */
extern long UMODE_NOCTCP; /* blocks all ctcp (except dcc and action) */
extern long AllUmodes, SendUmodes;
extern MODVAR long UMODE_INVISIBLE; /* 0x0001 makes user invisible */
extern MODVAR long UMODE_OPER; /* 0x0002 Operator */
extern MODVAR long UMODE_WALLOP; /* 0x0004 send wallops to them */
extern MODVAR long UMODE_FAILOP; /* 0x0008 Shows some global messages */
extern MODVAR long UMODE_HELPOP; /* 0x0010 Help system operator */
extern MODVAR long UMODE_REGNICK; /* 0x0020 Nick set by services as registered */
extern MODVAR long UMODE_SADMIN; /* 0x0040 Services Admin */
extern MODVAR long UMODE_ADMIN; /* 0x0080 Admin */
extern MODVAR long UMODE_SERVNOTICE;/* 0x0100 server notices such as kill */
extern MODVAR long UMODE_LOCOP; /* 0x0200 Local operator -- SRB */
extern MODVAR long UMODE_RGSTRONLY; /* 0x0400 Only reg nick message */
extern MODVAR long UMODE_WEBTV; /* 0x0800 WebTV Client */
extern MODVAR long UMODE_SERVICES; /* 0x4000 services */
extern MODVAR long UMODE_HIDE; /* 0x8000 Hide from Nukes */
extern MODVAR long UMODE_NETADMIN; /* 0x10000 Network Admin */
extern MODVAR long UMODE_COADMIN; /* 0x80000 Co Admin */
extern MODVAR long UMODE_WHOIS; /* 0x100000 gets notice on /whois */
extern MODVAR long UMODE_KIX; /* 0x200000 usermode +q */
extern MODVAR long UMODE_BOT; /* 0x400000 User is a bot */
extern MODVAR long UMODE_SECURE; /* 0x800000 User is a secure connect */
extern MODVAR long UMODE_VICTIM; /* 0x8000000 Intentional Victim */
extern MODVAR long UMODE_DEAF; /* 0x10000000 Deaf */
extern MODVAR long UMODE_HIDEOPER; /* 0x20000000 Hide oper mode */
extern MODVAR long UMODE_SETHOST; /* 0x40000000 used sethost */
extern MODVAR long UMODE_STRIPBADWORDS; /* 0x80000000 */
extern MODVAR long UMODE_HIDEWHOIS; /* hides channels in /whois */
extern MODVAR long UMODE_NOCTCP; /* blocks all ctcp (except dcc and action) */
extern MODVAR long AllUmodes, SendUmodes;
extern long SNO_KILLS;
extern long SNO_CLIENT;
extern long SNO_FLOOD;
extern long SNO_FCLIENT;
extern long SNO_JUNK;
extern long SNO_VHOST;
extern long SNO_EYES;
extern long SNO_TKL;
extern long SNO_NICKCHANGE;
extern long SNO_FNICKCHANGE;
extern long SNO_QLINE;
extern long SNO_SNOTICE;
extern long SNO_SPAMF;
extern MODVAR long SNO_KILLS;
extern MODVAR long SNO_CLIENT;
extern MODVAR long SNO_FLOOD;
extern MODVAR long SNO_FCLIENT;
extern MODVAR long SNO_JUNK;
extern MODVAR long SNO_VHOST;
extern MODVAR long SNO_EYES;
extern MODVAR long SNO_TKL;
extern MODVAR long SNO_NICKCHANGE;
extern MODVAR long SNO_FNICKCHANGE;
extern MODVAR long SNO_QLINE;
extern MODVAR long SNO_SNOTICE;
extern MODVAR long SNO_SPAMF;
extern MODVAR long SNO_OPER;
#ifdef EXTCMODE
/* Extended chanmodes... */
extern Cmode_t EXTMODE_NONOTICE;
extern MODVAR Cmode_t EXTMODE_NONOTICE;
#ifdef STRIPBADWORDS
extern MODVAR Cmode_t EXTMODE_STRIPBADWORDS;
#endif
extern MODVAR Cmode_t EXTMODE_JOINTHROTTLE;
#endif
#ifndef HAVE_STRLCPY
@@ -476,6 +487,7 @@ extern void debug(int, char *, ...);
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
#ifdef INET6
@@ -495,8 +507,8 @@ char *Inet_ia2pNB(struct IN_ADDR *ia, int compressed);
/*
* CommandHash -Stskeeps
*/
extern aCommand *CommandHash[256];
extern aCommand *TokenHash[256];
extern MODVAR aCommand *CommandHash[256];
extern MODVAR aCommand *TokenHash[256];
extern void init_CommandHash(void);
extern aCommand *add_Command_backend(char *cmd, int (*func)(), unsigned char parameters, unsigned char token, int flags);
extern void add_Command(char *cmd, char *token, int (*func)(), unsigned char parameters);
@@ -542,10 +554,6 @@ 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 int find_tkline_match_zap(aClient *cptr);
extern int find_shun(aClient *cptr);
extern aTKline *find_qline(aClient *cptr, char *nick, int *ishold);
extern void tkl_synch(aClient *sptr);
extern void dcc_sync(aClient *sptr);
extern void report_flines(aClient *sptr);
extern void report_network(aClient *sptr);
@@ -585,7 +593,7 @@ extern time_t rfc2time(char *s);
extern char *rfctime(time_t t, char *buf);
extern void *MyMallocEx(size_t size);
#ifdef USE_SSL
extern char *ssl_get_cipher(SSL *ssl);
extern MODFUNC char *ssl_get_cipher(SSL *ssl);
#endif
extern long config_checkval(char *value, unsigned short flags);
extern void config_status(char *format, ...) __attribute__((format(printf,1,2)));
@@ -593,14 +601,14 @@ extern void init_random();
extern u_char getrandom8();
extern u_int16_t getrandom16();
extern u_int32_t getrandom32();
extern char trouble_info[1024];
extern MODVAR char trouble_info[1024];
#define EVENT_DRUGS BASE_VERSION
extern void rejoin_doparts(aClient *sptr);
extern void rejoin_dojoinandmode(aClient *sptr);
extern void rejoin_doparts(aClient *sptr, char did_parts[]);
extern void rejoin_dojoinandmode(aClient *sptr, char did_parts[]);
extern void ident_failed(aClient *cptr);
extern char extchmstr[4][64];
extern char extbanstr[EXTBANTABLESZ+1];
extern MODVAR char extchmstr[4][64];
extern MODVAR char extbanstr[EXTBANTABLESZ+1];
#ifdef EXTCMODE
extern int extcmode_default_requirechop(aClient *, aChannel *, char *, int, int);
extern int extcmode_default_requirehalfop(aClient *, aChannel *, char *, int, int);
@@ -629,23 +637,23 @@ extern int l_commands_Load(int);
#endif
extern void sendto_chmodemucrap(aClient *, aChannel *, char *);
extern void verify_opercount(aClient *, char *);
extern int place_host_ban(aClient *sptr, int action, char *reason, long time);
extern int valid_host(char *host);
extern int count_oper_sessions(char *);
extern char *unreal_mktemp(char *dir, char *suffix);
extern char *unreal_getpathname(char *filepath, char *path);
extern char *unreal_getfilename(char *path);
extern int unreal_copyfile(char *src, char *dest);
extern int unreal_copyfileex(char *src, char *dest, int tryhardlink);
extern time_t unreal_getfilemodtime(char *filename);
extern void unreal_setfilemodtime(char *filename, time_t mtime);
extern void DeleteTempModules(void);
extern Extban *extbaninfo;
extern MODVAR Extban *extbaninfo;
extern Extban *findmod_by_bantype(char c);
extern Extban *ExtbanAdd(Module *reserved, ExtbanInfo req);
extern void ExtbanDel(Extban *);
extern void extban_init(void);
extern char *trim_str(char *str, int len);
extern char *ban_realhost, *ban_virthost, *ban_ip;
extern void join_channel(aChannel *chptr, aClient *cptr, aClient *sptr, int flags);
extern MODVAR char *ban_realhost, *ban_virthost, *ban_ip;
extern char *unreal_checkregex(char *s, int fastsupport, int check_broadness);
extern int banact_stringtoval(char *s);
extern char *banact_valtostring(int val);
@@ -654,34 +662,109 @@ extern char banact_valtochar(int val);
extern int spamfilter_gettargets(char *s, aClient *sptr);
extern char *spamfilter_target_inttostring(int v);
extern Spamfilter *unreal_buildspamfilter(char *s);
extern int dospamfilter(aClient *sptr, char *str_in, int type, char *target);
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 char backupbuf[];
extern MODVAR char backupbuf[];
extern void add_invite(aClient *, aChannel *);
extern void channel_modes(aClient *, char *, char *, aChannel *);
extern char modebuf[BUFSIZE], parabuf[BUFSIZE];
extern MODVAR char modebuf[BUFSIZE], parabuf[BUFSIZE];
extern int op_can_override(aClient *sptr);
extern aClient *find_chasing(aClient *sptr, char *user, int *chasing);
extern long opermode;
extern void do_mode(aChannel *, aClient *, aClient *, int, char **, time_t, int);
extern void set_mode(aChannel *, aClient *, int, char **, u_int *,
char[MAXMODEPARAMS][MODEBUFLEN + 3], int);
extern MODVAR long opermode;
extern void add_user_to_channel(aChannel *chptr, aClient *who, int flags);
extern int add_banid(aClient *, aChannel *, char *);
extern int add_exbanid(aClient *cptr, aChannel *chptr, char *banid);
extern void sub1_from_channel(aChannel *);
extern aCtab cFlagTab[];
extern MODVAR aCtab cFlagTab[];
extern char *unreal_encodespace(char *s);
extern char *unreal_decodespace(char *s);
extern Link *helpign;
extern aMotd *rules;
extern fdlist default_fdlist, busycli_fdlist, serv_fdlist, oper_fdlist;
extern void DCCdeny_add(char *filename, char *reason, int type);
extern MODVAR Link *helpign;
extern MODVAR aMotd *rules;
extern MODVAR fdlist default_fdlist, busycli_fdlist, serv_fdlist, oper_fdlist;
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);
extern void reread_motdsandrules();
extern MODVAR int SVSNOOP;
extern int callbacks_check(void);
extern void callbacks_switchover(void);
extern int efunctions_check(void);
extern void efunctions_switchover(void);
extern char *encode_ip(u_char *);
extern char *decode_ip(char *);
extern void sendto_fconnectnotice(char *nick, anUser *user, aClient *sptr, int disconnect, char *comment);
extern void sendto_one_nickcmd(aClient *cptr, aClient *sptr, char *umodes);
extern int on_dccallow_list(aClient *to, aClient *from);
extern int add_dccallow(aClient *sptr, aClient *optr);
extern int del_dccallow(aClient *sptr, aClient *optr);
extern void delete_linkblock(ConfigItem_link *link_ptr);
extern void delete_classblock(ConfigItem_class *class_ptr);
extern void del_async_connects(void);
extern void make_extbanstr(void);
extern void isupport_init(void);
extern int do_cmd(aClient *cptr, aClient *sptr, char *cmd, int parc, char *parv[]);
extern void create_snomask(aClient *sptr, anUser *user, char *snomask);
extern MODVAR char *me_hash;
extern MODVAR int dontspread;
/* Efuncs */
extern MODVAR int (*do_join)(aClient *, aClient *, int, char **);
extern MODVAR void (*join_channel)(aChannel *chptr, aClient *cptr, aClient *sptr, int flags);
extern MODVAR int (*can_join)(aClient *cptr, aClient *sptr, aChannel *chptr, char *key, char *link, char *parv[]);
extern MODVAR void (*do_mode)(aChannel *chptr, aClient *cptr, aClient *sptr, int parc, char *parv[], time_t sendts, int samode);
extern MODVAR void (*set_mode)(aChannel *chptr, aClient *cptr, int parc, char *parv[], u_int *pcount,
char pvar[MAXMODEPARAMS][MODEBUFLEN + 3], int bounce);
extern MODVAR int (*m_umode)(aClient *, aClient *, int, char **);
extern MODVAR int (*register_user)(aClient *cptr, aClient *sptr, char *nick, char *username, char *umode, char *virthost, char *ip);
extern MODVAR int (*tkl_hash)(unsigned int c);
extern MODVAR char (*tkl_typetochar)(int type);
extern MODVAR aTKline *(*tkl_add_line)(int type, char *usermask, char *hostmask, char *reason, char *setby,
TS expire_at, TS set_at, TS spamf_tkl_duration, char *spamf_tkl_reason);
extern MODVAR aTKline *(*tkl_del_line)(aTKline *tkl);
extern MODVAR void (*tkl_check_local_remove_shun)(aTKline *tmp);
extern MODVAR aTKline *(*tkl_expire)(aTKline * tmp);
extern MODVAR EVENT((*tkl_check_expire));
extern MODVAR int (*find_tkline_match)(aClient *cptr, int xx);
extern MODVAR int (*find_shun)(aClient *cptr);
extern MODVAR int (*find_spamfilter_user)(aClient *sptr);
extern MODVAR aTKline *(*find_qline)(aClient *cptr, char *nick, int *ishold);
extern MODVAR int (*find_tkline_match_zap)(aClient *cptr);
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);
/* /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
aJFlood *cmodej_addentry(aClient *cptr, aChannel *chptr);
void cmodej_delentry(aJFlood *e);
void cmodej_deluserentries(aClient *cptr);
void cmodej_delchannelentries(aChannel *chptr);
#endif
extern void charsys_reset(void);
extern void charsys_addmultibyterange(char s1, char e1, char s2, char e2);
extern void charsys_addallowed(char *s);
extern void charsys_reset(void);
extern MODVAR char langsinuse[4096];
extern MODVAR aTKline *tklines[TKLISTLEN];
extern int isipv6(struct IN_ADDR *addr);
extern void inet4_to_inet6(const void *src_in, void *dst_in);
extern void unrealdns_delreq_bycptr(aClient *cptr);
extern void inet6_to_inet4(const void *src, void *dst);
extern void sendtxtnumeric(aClient *to, char *pattern, ...);
extern void unrealdns_gethostbyname_link(char *name, ConfigItem_link *conf);
extern void unrealdns_delasyncconnects(void);
+3
View File
@@ -30,6 +30,9 @@
#define __u_l unsigned long
#endif
extern int inet_pton(int af, const char *src, void *dst);
extern const char *inet_ntop(int af, const void *src, char *dst, size_t cnt);
#ifdef __STDC__
# ifndef _WIN32
extern __u_l inet_addr(char *);
+37
View File
@@ -0,0 +1,37 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/macros.h
* Copyright (c) 2004 Dominick Meglio & The UnrealIRCd Team
*
* 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$
*/
#include "setup.h"
/* Calculate the size of an array */
#define ARRAY_SIZEOF(x) (sizeof((x))/sizeof((x)[0]))
/* Allocate a dynamic local variable */
#if defined(HAVE_C99_VARLEN_ARRAY)
#define DYN_LOCAL(type, name, size) type name[size]
#define DYN_FREE(name)
#elif defined(HAVE_ALLOCA)
#define DYN_LOCAL(type, name, size) type *name = (size ? alloca(size) : NULL)
#define DYN_FREE(name)
#else
#define DYN_LOCAL(type, name, size) type *name = (size ? malloc(size) : NULL)
#define DYN_FREE(name) (name ? free(name) : 0)
#endif
+28
View File
@@ -0,0 +1,28 @@
/*
* This is an OpenSSL-compatible implementation of the RSA Data Security,
* Inc. MD5 Message-Digest Algorithm.
*
* Written by Solar Designer <solar@openwall.com> in 2001, and placed in
* the public domain. See md5.c for more information.
*/
#if defined(USE_SSL)
#include <openssl/md5.h>
#elif !defined(_MD5_H)
#define _MD5_H
/* Any 32-bit or wider unsigned integer data type will do */
typedef unsigned long MD5_u32plus;
typedef struct {
MD5_u32plus lo, hi;
MD5_u32plus a, b, c, d;
unsigned char buffer[64];
MD5_u32plus block[16];
} MD5_CTX;
extern void MD5_Init(MD5_CTX *ctx);
extern void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size);
extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
#endif
+175 -47
View File
@@ -21,40 +21,51 @@
#ifndef MODULES_H
#define MODULES_H
#include "types.h"
#define MOD_VERSION "3.2-b5-1"
#define MOD_WE_SUPPORT "3.2-b5*"
#define MAXCUSTOMHOOKS 30
#define MAXHOOKTYPES 70
#define MAXHOOKTYPES 100
#define MAXCALLBACKS 30
#define MAXEFUNCTIONS 60
#if defined(_WIN32)
#define DLLFUNC _declspec(dllexport)
#define irc_dlopen(x,y) LoadLibrary(x)
#define irc_dlclose FreeLibrary
#define irc_dlsym(x,y,z) z = (void *)GetProcAddress(x,y)
#undef irc_dlerror
#define MOD_EXTENSION "dll"
#define DLLFUNC _declspec(dllexport)
#define irc_dlopen(x,y) LoadLibrary(x)
#define irc_dlclose FreeLibrary
#define irc_dlsym(x,y,z) z = (void *)GetProcAddress(x,y)
#define irc_dlerror our_dlerror
#elif defined(HPUX)
#define irc_dlopen(x,y) shl_load(x,y,0L)
#define irc_dlsym(x,y,z) shl_findsym(x,y,z)
#define irc_dlclose shl_unload
#define irc_dlerror() strerror(errno)
#define MOD_EXTENSION "so"
#define irc_dlopen(x,y) shl_load(x,y,0L)
#define irc_dlsym(x,y,z) shl_findsym(x,y,z)
#define irc_dlclose shl_unload
#define irc_dlerror() strerror(errno)
#else
#define irc_dlopen dlopen
#define irc_dlclose dlclose
#if defined(UNDERSCORE)
#define irc_dlsym(x,y,z) z = obsd_dlsym(x,y)
#else
#define irc_dlsym(x,y,z) z = dlsym(x,y)
#endif
#define irc_dlerror dlerror
#define DLLFUNC
#define MOD_EXTENSION "so"
#define irc_dlopen dlopen
#define irc_dlclose dlclose
#if defined(UNDERSCORE)
#define irc_dlsym(x,y,z) z = obsd_dlsym(x,y)
#else
#define irc_dlsym(x,y,z) z = dlsym(x,y)
#endif
#define irc_dlerror dlerror
#define DLLFUNC
#endif
#define EVENT(x) void (x) (void *data)
/* Casts to int, void, void *, and char * function pointers */
#define TO_INTFUNC(x) (int (*)())(x)
#define TO_VOIDFUNC(x) (void (*)())(x)
#define TO_PVOIDFUNC(x) (void *(*)())(x)
#define TO_PCHARFUNC(x) (char *(*)())(x)
typedef struct _mod_symboltable Mod_SymbolDepTable;
typedef struct _event Event;
typedef struct _eventinfo EventInfo;
typedef struct _irchook Hook;
typedef struct _hooktype Hooktype;
typedef struct _irccallback Callback;
typedef struct _ircefunction Efunction;
/*
* Module header that every module must include, with the name of
@@ -87,15 +98,18 @@ typedef struct {
} ModuleInfo;
#define MOBJ_EVENT 0x0001
#define MOBJ_HOOK 0x0002
#define MOBJ_COMMAND 0x0004
#define MOBJ_HOOKTYPE 0x0008
#define MOBJ_VERSIONFLAG 0x0010
#define MOBJ_SNOMASK 0x0020
#define MOBJ_UMODE 0x0040
#define MOBJ_CMDOVERRIDE 0x0080
#define MOBJ_EXTBAN 0x0100
#define MOBJ_EVENT 0x0001
#define MOBJ_HOOK 0x0002
#define MOBJ_COMMAND 0x0004
#define MOBJ_HOOKTYPE 0x0008
#define MOBJ_VERSIONFLAG 0x0010
#define MOBJ_SNOMASK 0x0020
#define MOBJ_UMODE 0x0040
#define MOBJ_CMDOVERRIDE 0x0080
#define MOBJ_EXTBAN 0x0100
#define MOBJ_CALLBACK 0x0200
#define MOBJ_ISUPPORT 0x0400
#define MOBJ_EFUNCTION 0x0800
typedef struct {
long mode;
@@ -234,12 +248,17 @@ typedef struct {
#define EXTBANTABLESZ 32
typedef enum ExtbanOptions { EXTBOPT_CHSVSMODE=0x1 } ExtbanOptions;
typedef struct {
/** extbans module */
Module *owner;
/** extended ban character */
char flag;
/** extban options */
ExtbanOptions options;
/** access checking [optional].
* aClient *: the client
* aChannel *: the channel
@@ -274,8 +293,9 @@ typedef struct {
typedef struct {
char flag;
ExtbanOptions options;
int (*is_ok)(aClient *, aChannel *, char *para, int, int, int);
char * (*conv_param)(char *);
char * (*conv_param)(char *);
int (*is_banned)(aClient *, aChannel *, char *, int);
} ExtbanInfo;
@@ -291,6 +311,13 @@ typedef struct _versionflag {
ModuleChild *parents;
} Versionflag;
typedef struct _isupport {
struct _isupport *prev, *next;
char *token;
char *value;
Module *owner;
} Isupport;
typedef struct _ModuleObject {
struct _ModuleObject *prev, *next;
short type;
@@ -304,6 +331,9 @@ typedef struct _ModuleObject {
Umode *umode;
Cmdoverride *cmdoverride;
Extban *extban;
Callback *callback;
Efunction *efunction;
Isupport *isupport;
} object;
} ModuleObject;
@@ -318,6 +348,39 @@ struct _irchook {
Module *owner;
};
struct _irccallback {
Callback *prev, *next;
short type;
union {
int (*intfunc)();
void (*voidfunc)();
char *(*pcharfunc)();
} func;
Module *owner;
char willberemoved; /* will be removed on next rehash? (eg the 'old'/'current' one) */
};
/* Definition of an efunction: a MANDATORY Extern Function (in a module),
* for things like do_join, join_channel, etc.
* The difference between callbacks and efunctions are:
* - efunctions are mandatory, while callbacks can be optional (depends!)
* - efunctions are ment for internal usage, so 3rd party modules are not allowed
* to add them.
* - all efunctions are declared as function pointers in modules.c
*/
struct _ircefunction {
Efunction *prev, *next;
short type;
union {
int (*intfunc)();
void (*voidfunc)();
void *(*pvoidfunc)();
char *(*pcharfunc)();
} func;
Module *owner;
char willberemoved; /* will be removed on next rehash? (eg the 'old'/'current' one) */
};
struct _hooktype {
short id;
char *string;
@@ -356,7 +419,7 @@ struct _Module
unsigned char options;
unsigned char errorcode;
char *tmp_file;
unsigned char compilecheck; /* feel free to rename this mess, but mod->flags sucks :[. */
unsigned long mod_sys_version;
};
/*
* Symbol table
@@ -425,8 +488,10 @@ void EventStatus(aClient *sptr);
void SetupEvents(void);
void LockEventSystem(void);
void UnlockEventSystem(void);
extern Hook *Hooks[MAXHOOKTYPES];
extern Hooktype Hooktypes[MAXCUSTOMHOOKS];
extern MODVAR Hook *Hooks[MAXHOOKTYPES];
extern MODVAR Hooktype Hooktypes[MAXCUSTOMHOOKS];
extern MODVAR Callback *Callbacks[MAXCALLBACKS], *RCallbacks[MAXCALLBACKS];
extern MODVAR Efunction *Efunctions[MAXEFUNCTIONS];
void Module_Init(void);
char *Module_Create(char *path);
@@ -445,6 +510,11 @@ void *obsd_dlsym(void *handle, char *symbol);
Versionflag *VersionflagAdd(Module *module, char flag);
void VersionflagDel(Versionflag *vflag, Module *module);
Isupport *IsupportAdd(Module *module, const char *token, const char *value);
void IsupportSetValue(Isupport *isupport, const char *value);
void IsupportDel(Isupport *isupport);
Isupport *IsupportFind(const char *token);
#define add_Hook(hooktype, func) HookAddMain(NULL, hooktype, func, NULL, NULL)
#define HookAdd(hooktype, func) HookAddMain(NULL, hooktype, func, NULL, NULL)
#define HookAddEx(module, hooktype, func) HookAddMain(module, hooktype, func, NULL, NULL)
@@ -492,6 +562,24 @@ void HooktypeDel(Hooktype *hooktype, Module *module);
#define RunHook6(hooktype,a,b,c,d,e,f) do { Hook *h; for (h = Hooks[hooktype]; h; h = h->next) (*(h->func.intfunc))(a,b,c,d,e,f); } while(0)
#define RunHook7(hooktype,a,b,c,d,e,f,g) do { Hook *h; for (h = Hooks[hooktype]; h; h = h->next) (*(h->func.intfunc))(a,b,c,d,e,f,g); } while(0)
#define CallbackAdd(cbtype, func) CallbackAddMain(NULL, cbtype, func, NULL, NULL)
#define CallbackAddEx(module, cbtype, func) CallbackAddMain(module, cbtype, func, NULL, NULL)
#define CallbackAddVoid(cbtype, func) CallbackAddMain(NULL, cbtype, NULL, func, NULL)
#define CallbackAddVoidEx(module, cbtype, func) CallbackAddMain(module, cbtype, NULL, func, NULL)
#define CallbackAddPChar(cbtype, func) CallbackAddMain(NULL, cbtype, NULL, NULL, func)
#define CallbackAddPCharEx(module, cbtype, func) CallbackAddMain(module, cbtype, NULL, NULL, func)
extern Callback *CallbackAddMain(Module *module, int cbtype, int (*intfunc)(), void (*voidfunc)(), char *(*pcharfunc)());
extern Callback *CallbackDel(Callback *cb);
#define EfunctionAdd(module, cbtype, func) EfunctionAddMain(module, cbtype, func, NULL, NULL, NULL)
#define EfunctionAddVoid(module, cbtype, func) EfunctionAddMain(module, cbtype, NULL, func, NULL, NULL)
#define EfunctionAddPVoid(module, cbtype, func) EfunctionAddMain(module, cbtype, NULL, NULL, func, NULL)
#define EfunctionAddPChar(module, cbtype, func) EfunctionAddMain(module, cbtype, NULL, NULL, NULL, func)
extern Efunction *EfunctionAddMain(Module *module, int eftype, int (*intfunc)(), void (*voidfunc)(), void *(*pvoidfunc)(), char *(*pcharfunc)());
extern Efunction *EfunctionDel(Efunction *cb);
Command *CommandAdd(Module *module, char *cmd, char *tok, int (*func)(), unsigned char params, int flags);
void CommandDel(Command *command);
int CommandExists(char *name);
@@ -539,12 +627,50 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
#define HOOKTYPE_UMODE_CHANGE 36
#define HOOKTYPE_TOPIC 37
#define HOOKTYPE_REHASH_COMPLETE 38
#define HOOKTYPE_TKL_ADD 39
#define HOOKTYPE_TKL_DEL 40
#define HOOKTYPE_LOCAL_KILL 41
#define HOOKTYPE_LOG 42
#define HOOKTYPE_REMOTE_JOIN 43
#define HOOKTYPE_REMOTE_PART 44
#define HOOKTYPE_REMOTE_KICK 45
#define HOOKTYPE_LOCAL_SPAMFILTER 46
/* Hook return values */
#define HOOK_CONTINUE 0
#define HOOK_ALLOW -1
#define HOOK_DENY 1
/* Callback types */
#define CALLBACKTYPE_CLOAK 1
#define CALLBACKTYPE_CLOAKKEYCSUM 2
/* Efunction types */
#define EFUNC_DO_JOIN 1
#define EFUNC_JOIN_CHANNEL 2
#define EFUNC_CAN_JOIN 3
#define EFUNC_DO_MODE 4
#define EFUNC_SET_MODE 5
#define EFUNC_M_UMODE 6
#define EFUNC_REGISTER_USER 7
#define EFUNC_TKL_HASH 8
#define EFUNC_TKL_TYPETOCHAR 9
#define EFUNC_TKL_ADD_LINE 10
#define EFUNC_TKL_DEL_LINE 11
#define EFUNC_TKL_CHECK_LOCAL_REMOVE_SHUN 12
#define EFUNC_TKL_EXPIRE 13
#define EFUNC_TKL_CHECK_EXPIRE 14
#define EFUNC_FIND_TKLINE_MATCH 15
#define EFUNC_FIND_SHUN 16
#define EFUNC_FIND_SPAMFILTER_USER 17
#define EFUNC_FIND_QLINE 18
#define EFUNC_FIND_TKLINE_MATCH_ZAP 19
#define EFUNC_TKL_STATS 20
#define EFUNC_TKL_SYNCH 21
#define EFUNC_M_TKL 22
#define EFUNC_PLACE_HOST_BAN 23
#define EFUNC_DOSPAMFILTER 24
/* Module flags */
#define MODFLAG_NONE 0x0000
#define MODFLAG_LOADED 0x0001 /* Fully loaded */
@@ -563,25 +689,27 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
#define CONFIG_EXCEPT 4
#define CONFIG_DENY 5
#define CONFIG_ALLOW 6
#define CONFIG_CLOAKKEYS 7
#ifdef DYNAMIC_LINKING
#define MOD_HEADER(name) Mod_Header
#define MOD_TEST(name) Mod_Test
#define MOD_INIT(name) Mod_Init
#define MOD_LOAD(name) Mod_Load
#define MOD_UNLOAD(name) Mod_Unload
#define MOD_HEADER(name) Mod_Header
#define MOD_TEST(name) Mod_Test
#define MOD_INIT(name) Mod_Init
#define MOD_LOAD(name) Mod_Load
#define MOD_UNLOAD(name) Mod_Unload
#else
#define MOD_HEADER(name) name##_Header
#define MOD_TEST(name) name##_Test
#define MOD_INIT(name) name##_Init
#define MOD_LOAD(name) name##_Load
#define MOD_UNLOAD(name) name##_Unload
#define MOD_HEADER(name) name##_Header
#define MOD_TEST(name) name##_Test
#define MOD_INIT(name) name##_Init
#define MOD_LOAD(name) name##_Load
#define MOD_UNLOAD(name) name##_Unload
#endif
#define CLOAK_KEYCRC RCallbacks[CALLBACKTYPE_CLOAKKEYCSUM]->func.pcharfunc()
#ifdef DYNAMIC_LINKING
/* ugly alert!!!! */
#include "version.h"
char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7 PATCH8 PATCH9;
#include "modversion.h"
#endif
#endif
+91
View File
@@ -0,0 +1,91 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/modversion.h
* (C) 2004-2005 Bram Matthys and The UnrealIRCd Team
*
* 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$
*/
#include "version.h"
/* What all this is for? Well, it's simple...
* Example: When someone compiles a module with zip support, but the
* core was not compiled with zip support, then the module will read
* things incorrect in the struct because the module sees an extra
* field half-way the struct but in the core that field does not exist,
* hence all data is shifted 4 bytes causing all kinds of odd crashes,
* memory corruption, and weird problems.
* This is an attempt to prevent this a bit, but there are a lot more
* options that cause binary incompatability (eg: changing nicklen),
* we just take the most common ones...
*
* NOTE: On win32 we allow ssl and zip inconsistencies because we
* explicitly use "padding" in the structs: we add a useless
* placeholder so everything is still aligned correctly.
* In the process of doing so, we waste several bytes per-user,
* but this prevents (most) binary incompatability problems
* making it easier for module coders to ship dll's.
*/
#if defined(USE_SSL) && !defined(_WIN32)
#define MYTOKEN_SSL "/SSL"
#else
#define MYTOKEN_SSL ""
#endif
#if defined(ZIP_LINKS) && !defined(_WIN32)
#define MYTOKEN_ZIP "/ZIP"
#else
#define MYTOKEN_ZIP ""
#endif
#if defined(NOSPOOF)
#define MYTOKEN_NOSPOOF "/NOSPF"
#else
#define MYTOKEN_NOSPOOF ""
#endif
#if !defined(EXTCMODE)
#define MYTOKEN_EXTCMODE "/NOEXTC"
#else
#define MYTOKEN_EXTCMODE ""
#endif
#if !defined(JOINTHROTTLE)
#define MYTOKEN_JOINTHROTTLE "/NOJTHR"
#else
#define MYTOKEN_JOINTHROTTLE ""
#endif
#if !defined(NO_FLOOD_AWAY)
#define MYTOKEN_NOFLDAWAY "/NONFA"
#else
#define MYTOKEN_NOFLDAWAY ""
#endif
#if !defined(NEWCHFLOODPROT)
#define MYTOKEN_NEWCHF "/NOCHF"
#else
#define MYTOKEN_NEWCHF ""
#endif
#ifdef INET6
#define MYTOKEN_INET6 "/IPV6"
#else
#define MYTOKEN_INET6 ""
#endif
#ifdef UNREALCORE
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7 PATCH8 PATCH9 \
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
#else
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;
#endif
+3 -11
View File
@@ -239,7 +239,6 @@
#define MSG_TSCTL "TSCTL"
#define TOK_TSCTL "AW"
#define MSG_SVSJOIN "SVSJOIN"
#define TOK_SVSJOIN "BR"
#define MSG_SAJOIN "SAJOIN"
#define TOK_SAJOIN "AX"
#define MSG_SVSPART "SVSPART"
@@ -300,23 +299,16 @@
#define MAXPARA 15
extern int m_join(), m_part(), m_mode();
extern int m_nick(), m_error();
extern int m_error();
extern int m_dns();
extern int m_tkl();
extern int m_motd(), m_user();
extern int m_info(), m_summon();
extern int m_users(), m_version();
extern int m_names();
extern int m_lusers(), m_umode();
extern int m_motd();
extern int m_service(), m_watch();
extern int m_service();
extern int m_dalinfo();
extern int m_credits();
extern int m_license();
extern int m_botmotd();
extern int m_opermotd();
extern int m_module(), m_alias(), m_tkl(), m_opermotd();
extern int m_module(), m_alias();
extern int m_rehash(), m_die(), m_restart();
#endif
+26 -4
View File
@@ -33,11 +33,11 @@
#define RPL_YOURHOST 002
#define RPL_CREATED 003
#define RPL_MYINFO 004
#define RPL_PROTOCTL 005
#define RPL_ISUPPORT 005
#define RPL_REDIR 10
#define RPL_REMOTEPROTOCTL 105
#define RPL_REMOTEISUPPORT 105
/*
* Errors are in the range from 400-599 currently and are grouped by what
@@ -127,6 +127,9 @@
#define ERR_NOOPERHOST 491
#define ERR_NOCTCP 492
#define ERR_CHANOWNPRIVNEEDED 499
#define ERR_TOOMANYJOINS 500
#define ERR_UMODEUNKNOWNFLAG 501
#define ERR_USERSDONTMATCH 502
@@ -134,6 +137,9 @@
#define ERR_TOOMANYWATCH 512
#define ERR_NEEDPONG 513
#define ERR_TOOMANYDCC 514
#define ERR_DISABLED 517
#define ERR_NOINVITE 518
#define ERR_ADMONLY 519
#define ERR_OPERONLY 520
@@ -178,8 +184,12 @@
#define RPL_TOPIC 332
#define RPL_TOPICWHOTIME 333
#define RPL_INVITELIST 336
#define RPL_ENDOFINVITELIST 337
#define RPL_LISTSYNTAX 334
#define RPL_WHOISBOT 335
#define RPL_USERIP 340
#define RPL_INVITING 341
#define RPL_SUMMONING 342
@@ -189,8 +199,8 @@
#define RPL_ENDOFWHO 315
#define RPL_NAMREPLY 353
#define RPL_ENDOFNAMES 366
#define RPL_INVITELIST 346
#define RPL_ENDOFINVITELIST 347
#define RPL_INVEXLIST 346
#define RPL_ENDOFINVEXLIST 347
#define RPL_EXLIST 348
#define RPL_ENDOFEXLIST 349
@@ -264,6 +274,7 @@
#define RPL_STATSVLINE 227
#define RPL_STATSBANVER 228
#define RPL_STATSSPAMF 229
#define RPL_STATSEXCEPTTKL 230
#define RPL_SERVICEINFO 231
#define RPL_RULES 232
#define RPL_SERVICE 233
@@ -305,6 +316,7 @@
#define RPL_HELPFWD 294
#define RPL_HELPIGN 295
/*
* New /MAP format.
*/
@@ -332,8 +344,18 @@
#define RPL_NOWOFF 605
#define RPL_WATCHLIST 606
#define RPL_ENDOFWATCHLIST 607
#define RPL_DCCSTATUS 617
#define RPL_DCCLIST 618
#define RPL_ENDOFDCCLIST 619
#define RPL_DCCINFO 620
#define RPL_DUMPING 640
#define RPL_DUMPRPL 641
#define RPL_EODUMP 642
#define RPL_WHOISSECURE 671
#define ERR_CANNOTDOCOMMAND 972
#define ERR_CANNOTCHANGECHANMODE 974
#define ERR_NUMERICERR 999
-4
View File
@@ -55,10 +55,6 @@ EVENT(loop_event);
/* support.c */
char *my_itoa(int i);
/* s_kline.c */
int find_tkline_match(aClient *cptr, int xx);
extern EVENT(tkl_check_expire);
/* s_serv.c */
void load_tunefile(void);
extern EVENT(save_tunefile);
+74 -66
View File
@@ -1,74 +1,82 @@
/*
* ircd/res_def.h (C)opyright 1992 Darren Reed.
/* OMG... OMG! WHAT AN INCLUDE HORROR !!! */
#undef strcasecmp
#undef strncasecmp
#ifdef WIN32
#include <win32/ares/setup.h>
#endif
#include <ares.h>
#include <ares_version.h>
#undef strcasecmp
#undef strncasecmp
#ifndef GOT_STRCASECMP
#define strcasecmp mycmp
#define strncasecmp myncmp
#endif
typedef enum {
DNSREQ_CLIENT = 1,
DNSREQ_LINKCONF = 2,
DNSREQ_CONNECT = 3
} DNSReqType;
typedef struct _dnsreq DNSReq;
/* Depending on the request type, some fields are filled in:
* cptr: DNSREQ_CLIENT, DNSREQ_CONNECT
* link: DNSREQ_LINKCONF, DNSREQ_CONNECT
*/
#define RES_INITLIST 1
#define RES_CALLINIT 2
#define RES_INITSOCK 4
#define RES_INITDEBG 8
#define RES_INITCACH 16
#define MAXPACKET 1024
#define MAXALIASES 35
#define MAXADDRS 35
#define AR_TTL 300 /* minimum TTL in seconds for dns cache entries */
struct hent {
char *h_name; /* official name of host */
char *h_aliases[MAXALIASES]; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
/* list of addresses from name server */
struct IN_ADDR h_addr_list[MAXADDRS];
#define h_addr h_addr_list[0] /* address, for backward compatiblity */
struct _dnsreq {
DNSReq *prev, *next;
char *name; /**< Name being resolved (only for DNSREQ_LINKCONF and DNSREQ_CONNECT) */
char ipv6; /**< Resolving for ipv6 or ipv4? */
DNSReqType type; /**< DNS Request type (DNSREQ_*) */
aClient *cptr; /**< Client the request is for, NULL if client died OR unavailable */
ConfigItem_link *linkblock; /**< Linkblock */
};
typedef struct reslist {
int id;
int sent; /* number of requests sent */
int srch;
time_t ttl;
char type;
char retries; /* retry counter */
char sends; /* number of sends (>1 means resent) */
char resend; /* send flag. 0 == dont resend */
time_t sentat;
time_t timeout;
struct IN_ADDR addr;
char *name;
struct reslist *next;
Link cinfo;
struct hent he;
} ResRQ;
typedef struct _dnscache DNSCache;
typedef struct cache {
time_t expireat;
time_t ttl;
struct hostent he;
struct cache *hname_next, *hnum_next, *list_next;
} aCache;
struct _dnscache {
DNSCache *prev, *next; /**< Previous and next in linked list */
DNSCache *hprev, *hnext; /**< Previous and next in hash list */
char *name; /**< The hostname */
struct IN_ADDR addr; /**< Stored IP address */
time_t expires; /**< When record expires */
};
typedef struct cachetable {
aCache *num_list;
aCache *name_list;
} CacheTable;
typedef struct _dnsstats DNSStats;
#define ARES_CACSIZE 101
struct _dnsstats {
unsigned int cache_hits;
unsigned int cache_misses;
unsigned int cache_adds;
};
#define MAXCACHED 81
#ifdef _WIN32
typedef unsigned short u_int16_t;
#endif
extern struct __res_state ircd_res;
extern int ircd_res_init();
extern u_int ircd_res_randomid();
extern u_int16_t ircd_getshort(const u_char *msgp);
extern u_int32_t ircd_getlong(const u_char *msgp);
extern void ircd__putshort(register u_int16_t s, register u_char *msgp);
extern void ircd__putlong(register u_int32_t l,register u_char *msgp);
extern int ircd_dn_expand(const u_char *msg, const u_char *eom, const u_char *src, char *dst, int dstsiz);
extern int __ircd_dn_skipname(const u_char *ptr, const u_char *eom);
extern int ircd_dn_comp(const char *src, u_char *dst, int dstsiz, u_char **dnptrs, u_char **lastdnptr);
extern int ircd_res_mkquery(int op, const char *dname, int class, int type, const u_char *data,
int datalen, const u_char *newrr_in, u_char *buf, int buflen);
/** Time to keep cache records. */
#define DNSCACHE_TTL 600
/** Size of the hash table (prime!).
* Consumes <this>*4 on ia32 and <this>*4 on 64 bit
* 241 seems a good bet.. which ~1k on ia32 and ~2k on ia64.
*/
#define DNS_HASH_SIZE 241
/** Max # of entries we want in our cache.
* This:
* a) prevents us from using too much memory, and
* b) prevents us from keeping useless cache records
*
* A dnscache item is roughly ~80 bytes in size (slightly more on x86),
* so 241*80=~20k, which seems reasonable ;).
*/
#define DNS_MAX_ENTRIES DNS_HASH_SIZE
extern ares_channel resolver_channel;
extern void init_resolver(void);
struct hostent *unrealdns_doclient(aClient *cptr);
+36 -9
View File
@@ -225,18 +225,27 @@
/* Define if you want IPv6 enabled */
#undef INET6
/* Define if you want modes shown in /list */
#undef LIST_SHOW_MODES
/* Define if you want nick!user@host shown for the topic setter */
#undef TOPIC_NICK_IS_NUHOST
/* Define if you want users to be notified when their shun is removed */
#undef SHUN_NOTICES
/* Define if you want OperOverride disabled */
#undef NO_OPEROVERRIDE
/* Define if you want opers to have to use /invite to join +s/+p channels */
#undef OPEROVERRIDE_VERIFY
/* Define if you want to disable /set* and /chg* */
#undef DISABLE_USERMOD
/* Define if your system prepends an underscore to symbols */
#undef UNDERSCORE
/* Define if you have gethostbyname_r with 3 parameters */
#undef HAVE_GETHOSTBYNAME_R_3
/* Define if you have gethostbyname_r with 5 parameters */
#undef HAVE_GETHOSTBYNAME_R_5
/* Define if you have gethostbyname_r with 6 parameters */
#undef HAVE_GETHOSTBYNAME_R_6
/* Define if rlim_t is long long */
#undef LONG_LONG_RLIM_T
@@ -254,3 +263,21 @@
/* Define if you have strlncat */
#undef HAVE_STRLNCAT
/* Define if you have inet_pton */
#undef HAVE_INET_PTON
/* Define if you have inet_ntop */
#undef HAVE_INET_NTOP
/* Define if you have a compiler with C99 variable length array support */
#undef HAVE_C99_VARLEN_ARRAY
/* Define if you have alloca.h */
#undef HAVE_ALLOCA_H
/* Define if you have alloca */
#undef HAVE_ALLOCA
/* Define to 1 if your system has no in6addr_any. */
#undef NO_IN6ADDR_ANY
+1 -1
View File
@@ -30,7 +30,7 @@ struct SynchList {
aSynchList *next, *prev;
};
aSynchList *SJSynchList = NULL;
MODVAR aSynchList *SJSynchList = NULL;
aSynchList *make_synchlist()
{
-3
View File
@@ -23,9 +23,6 @@
* $Id$
*
* $Log$
* Revision 1.1.1.1.6.1.2.1 2000/07/14 20:22:57 stskeeps
* +- Indentation and more SJ3 fixes
*
* Revision 1.1.1.1.6.1 2000/05/28 08:55:24 cmunk
* Import of Unreal3.1-beta3
*
+191 -63
View File
@@ -37,6 +37,8 @@
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/rand.h>
#include <openssl/md5.h>
#include <openssl/ripemd.h>
#endif
#include "common.h"
#include "sys.h"
@@ -50,6 +52,7 @@
#ifdef STDDEFH
# include <stddef.h>
#endif
#include "md5.h"
#ifdef HAVE_SYSLOG
# include <syslog.h>
@@ -69,8 +72,12 @@
#include "channel.h"
#if defined(_WIN32) && !defined(NOSPOOF)
#error "Compiling win32 without nospoof is VERY insecure and NOT supported"
#endif
extern int sendanyways;
extern MODVAR int sendanyways;
typedef struct aloopStruct LoopStruct;
@@ -98,6 +105,7 @@ typedef struct _configitem_listen ConfigItem_listen;
typedef struct _configitem_allow ConfigItem_allow;
typedef struct _configflag_allow ConfigFlag_allow;
typedef struct _configitem_allow_channel ConfigItem_allow_channel;
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;
@@ -140,6 +148,7 @@ typedef struct _cmdoverride Cmdoverride;
typedef struct SMember Member;
typedef struct SMembership Membership;
typedef struct SMembershipL MembershipL;
typedef struct JFlood aJFlood;
#ifdef ZIP_LINKS
typedef struct Zdata aZdata;
@@ -183,7 +192,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
/* NOTE: this must be down here so the stuff from struct.h IT uses works */
#include "whowas.h"
/* Loggin types */
/* Logging types */
#define LOG_ERROR 0x0001
#define LOG_KILL 0x0002
#define LOG_TKL 0x0004
@@ -194,6 +203,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define LOG_SACMDS 0x0080
#define LOG_CHGCMDS 0x0100
#define LOG_OVERRIDE 0x0200
#define LOG_SPAMFILTER 0x0400
/*
@@ -259,6 +269,8 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define SetClient(x) ((x)->status = STAT_CLIENT)
#define SetLog(x) ((x)->status = STAT_LOG)
#define IsSynched(x) (x->serv->flags.synced)
/* opt.. */
#define OPT_SJOIN 0x0001
#define OPT_NOT_SJOIN 0x0002
@@ -276,13 +288,15 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define OPT_NOT_VHP 0x2000
#define OPT_TKLEXT 0x4000
#define OPT_NOT_TKLEXT 0x8000
#define OPT_NICKIP 0x10000
#define OPT_NOT_NICKIP 0x20000
/* client->flags (32 bits): 28 used, 4 free */
#define FLAGS_PINGSENT 0x0001 /* Unreplied ping sent */
#define FLAGS_DEADSOCKET 0x0002 /* Local socket is dead--Exiting soon */
#define FLAGS_KILLED 0x0004 /* Prevents "QUIT" from being sent for this */
#define FLAGS_BLOCKED 0x0008 /* socket is in a blocked condition */
#define FLAGS_UNOCCUP1 0x0010 /* [FREE] */
#define FLAGS_OUTGOING 0x0010 /* outgoing connection, do not touch cptr->listener->clients */
#define FLAGS_CLOSING 0x0020 /* set when closing to suppress errors */
#define FLAGS_LISTEN 0x0040 /* used to mark clients which we listen() on */
#define FLAGS_CHKACCESS 0x0080 /* ok to check clients access if set */
@@ -305,14 +319,14 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#ifdef ZIP_LINKS
#define FLAGS_ZIP 0x1000000
#endif
#define FLAGS_UNOCCUP2 0x2000000 /* [FREE] */
#define FLAGS_DCCNOTICE 0x2000000 /* Has the user seen a notice on how to use DCCALLOW already? */
#define FLAGS_SHUNNED 0x4000000
#define FLAGS_VIRUS 0x8000000 /* tagged by spamfilter */
#ifdef USE_SSL
#define FLAGS_SSL 0x10000000
#endif
#define FLAGS_UNOCCUP4 0x20000000 /* [FREE] */
#define FLAGS_DCCBLOCK 0x40000000
#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 */
@@ -321,7 +335,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
* -DuffJ
*/
#define SNO_DEFOPER "+kscfvGq"
#define SNO_DEFOPER "+kscfvGqo"
#define SNO_DEFUSER "+ks"
#define SEND_UMODES (SendUmodes)
@@ -343,6 +357,8 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define PROTO_VHP 0x0400 /* Send hostnames in NICKv2 even if not sethosted */
#define PROTO_SJB64 0x0800
#define PROTO_TKLEXT 0x1000 /* TKL extension: 10 parameters instead of 8 (3.2RC2) */
#define PROTO_NICKIP 0x2000 /* Send IP addresses in the NICK command */
/* note: client->proto is currently a 'short' (max is 0x8000) */
/*
@@ -386,6 +402,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define IsDead(x) ((x)->flags & FLAGS_DEADSOCKET)
#define GotProtoctl(x) ((x)->flags & FLAGS_PROTOCTL)
#define IsBlocked(x) ((x)->flags & FLAGS_BLOCKED)
#define IsOutgoing(x) ((x)->flags & FLAGS_OUTGOING)
#define GotNetInfo(x) ((x)->flags & FLAGS_NETINFO)
#define SetNetInfo(x) ((x)->flags |= FLAGS_NETINFO)
@@ -425,6 +442,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#endif
#define GetHost(x) (IsHidden(x) ? (x)->user->virthost : (x)->user->realhost)
#define GetIP(x) ((x->user && x->user->ip_str) ? x->user->ip_str : (MyConnect(x) ? Inet_ia2p(&x->ip) : NULL))
#define SetKillsF(x) ((x)->user->snomask |= SNO_KILLS)
#define SetClientF(x) ((x)->user->snomask |= SNO_CLIENT)
@@ -443,8 +461,11 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define DoingDNS(x) ((x)->flags & FLAGS_DOINGDNS)
#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 DoingAuth(x) ((x)->flags & FLAGS_AUTH)
#define NoNewLine(x) ((x)->flags & FLAGS_NONL)
#define IsDCCNotice(x) ((x)->flags & FLAGS_DCCNOTICE)
#define SetDCCNotice(x) do { x->flags |= FLAGS_DCCNOTICE; } while(0)
#define SetRegNick(x) ((x)->umodes & UMODE_REGNICK)
#define SetHidden(x) ((x)->umodes |= UMODE_HIDE)
#define SetHideOper(x) ((x)->umodes |= UMODE_HIDEOPER)
@@ -478,17 +499,24 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
/*
* ProtoCtl options
*/
#define DontSendQuit(x) ((x)->proto & PROTO_NOQUIT)
#define IsToken(x) ((x)->proto & PROTO_TOKEN)
#define SupportSJOIN(x) ((x)->proto & PROTO_SJOIN)
#define SupportNICKv2(x) ((x)->proto & PROTO_NICKv2)
#define SupportSJOIN2(x) ((x)->proto & PROTO_SJOIN2)
#define SupportUMODE2(x) ((x)->proto & PROTO_UMODE2)
#define SupportNS(x) ((x)->proto & PROTO_NS)
#define SupportVL(x) ((x)->proto & PROTO_VL)
#define SupportSJ3(x) ((x)->proto & PROTO_SJ3)
#define SupportVHP(x) ((x)->proto & PROTO_VHP)
#define SupportTKLEXT(x) ((x)->proto & PROTO_TKLEXT)
#ifndef DEBUGMODE
#define CHECKPROTO(x,y) ((x)->proto & y)
#else
#define CHECKPROTO(x,y) (checkprotoflags(x, y, __FILE__, __LINE__))
#endif
#define DontSendQuit(x) (CHECKPROTO(x, PROTO_NOQUIT))
#define IsToken(x) (CHECKPROTO(x, PROTO_TOKEN))
#define SupportSJOIN(x) (CHECKPROTO(x, PROTO_SJOIN))
#define SupportNICKv2(x) (CHECKPROTO(x, PROTO_NICKv2))
#define SupportNICKIP(x) (CHECKPROTO(x, PROTO_NICKIP))
#define SupportSJOIN2(x) (CHECKPROTO(x, PROTO_SJOIN2))
#define SupportUMODE2(x) (CHECKPROTO(x, PROTO_UMODE2))
#define SupportNS(x) (CHECKPROTO(x, PROTO_NS))
#define SupportVL(x) (CHECKPROTO(x, PROTO_VL))
#define SupportSJ3(x) (CHECKPROTO(x, PROTO_SJ3))
#define SupportVHP(x) (CHECKPROTO(x, PROTO_VHP))
#define SupportTKLEXT(x) (CHECKPROTO(x, PROTO_TKLEXT))
#define SetSJOIN(x) ((x)->proto |= PROTO_SJOIN)
#define SetNoQuit(x) ((x)->proto |= PROTO_NOQUIT)
@@ -532,6 +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 */
#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 */
@@ -544,7 +573,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define OFLAG_UMODEQ 0x80000000 /* can set +q */
#define OFLAG_LOCAL (OFLAG_REHASH|OFLAG_HELPOP|OFLAG_GLOBOP|OFLAG_WALLOP|OFLAG_LOCOP|OFLAG_LROUTE|OFLAG_LKILL|OFLAG_KLINE|OFLAG_UNKLINE|OFLAG_LNOTICE)
#define OFLAG_GLOBAL (OFLAG_LOCAL|OFLAG_GROUTE|OFLAG_GKILL|OFLAG_GNOTICE)
#define OFLAG_ISGLOBAL (OFLAG_GROUTE|OFLAG_GKILL|OFLAG_GNOTICE)
#define OFLAG_ISGLOBAL (OFLAG_GROUTE|OFLAG_GKILL|OFLAG_GNOTICE|OFLAG_TKL|OFLAG_GZL|OFLAG_OVERRIDE)
#define OFLAG_NADMIN (OFLAG_NETADMIN | OFLAG_SADMIN | OFLAG_ADMIN | OFLAG_GLOBAL | OFLAG_UMODEQ | OFLAG_DCCDENY)
#define OFLAG_ADMIN_ (OFLAG_ADMIN | OFLAG_GLOBAL | OFLAG_DCCDENY)
#define OFLAG_COADMIN_ (OFLAG_COADMIN | OFLAG_GLOBAL | OFLAG_DCCDENY)
@@ -555,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)
@@ -633,6 +663,9 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define DEBUG_MALLOC 9 /* malloc/free calls */
#define DEBUG_LIST 10 /* debug list use */
/* blah */
#define IsSkoAdmin(sptr) (IsAdmin(sptr) || IsNetAdmin(sptr) || IsSAdmin(sptr))
/*
* defines for curses in client
*/
@@ -640,6 +673,21 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define CURSES_TERM 1
#define TERMCAP_TERM 2
/* Dcc deny types (see src/s_extra.c) */
#define DCCDENY_HARD 0
#define DCCDENY_SOFT 1
/* Linked list dcc flags */
#define DCC_LINK_ME 1 /* My dcc allow */
#define DCC_LINK_REMOTE 2 /* I need to remove dccallows from these clients when I die */
struct irc_netmask
{
short int type;
struct IN_ADDR mask;
short int bits;
};
struct FloodOpt {
unsigned short nmsg;
TS firstmsg;
@@ -653,7 +701,9 @@ struct MotdItem {
struct aloopStruct {
unsigned do_garbage_collect : 1;
unsigned ircd_booted : 1;
unsigned do_bancheck : 1;
unsigned do_bancheck : 1; /* perform *line bancheck? */
unsigned do_bancheck_spamf_user : 1; /* perform 'user' spamfilter bancheck */
unsigned do_bancheck_spamf_away : 1; /* perform 'away' spamfilter bancheck */
unsigned ircd_rehashing : 1;
unsigned tainted : 1;
aClient *rehash_save_cptr, *rehash_save_sptr;
@@ -684,6 +734,7 @@ struct User {
Membership *channel; /* chain of channel pointer blocks */
Link *invited; /* chain of invite pointer blocks */
Link *silence; /* chain of silence pointer blocks */
Link *dccallow; /* chain of dccallowed entries */
char *away; /* pointer to away message */
u_int32_t servicestamp; /* Services' time stamp variable */
signed char refcnt; /* Number of times this block is referenced */
@@ -699,6 +750,7 @@ struct User {
#ifdef LIST_DEBUG
aClient *bcptr;
#endif
char *ip_str; /* The IP in string form */
char *operlogin; /* Only used if person is/was opered, used for oper::maxlogins */
struct {
time_t nick_t;
@@ -708,6 +760,9 @@ struct User {
unsigned char away_c; /* number of times away has been set */
#endif
} flood;
#ifdef JOINTHROTTLE
aJFlood *jflood;
#endif
};
struct Server {
@@ -735,6 +790,7 @@ struct Server {
#define M_ALIAS 0x0020
#define M_RESETIDLE 0x0040
#define M_VIRUS 0x0080
#define M_ANNOUNCE 0x0100
/* tkl:
@@ -758,6 +814,9 @@ struct Server {
#define SPAMF_PART 0x0010 /* P */
#define SPAMF_QUIT 0x0020 /* q */
#define SPAMF_DCC 0x0040 /* d */
#define SPAMF_USER 0x0080 /* u */
#define SPAMF_AWAY 0x0100 /* a */
#define SPAMF_TOPIC 0x0200 /* t */
struct _spamfilter {
unsigned short action; /* see BAN_ACT* */
@@ -770,7 +829,10 @@ struct t_kline {
aTKline *prev, *next;
int type;
unsigned short subtype; /* subtype (currently spamfilter only), see SPAMF_* */
Spamfilter *spamf;
union {
Spamfilter *spamf;
struct irc_netmask *netmask;
} ptr;
char usermask[USERLEN + 3];
char *hostmask, *reason, *setby;
TS expire_at, set_at;
@@ -794,19 +856,19 @@ typedef struct ircstatsx {
int global_max; /* global max */
} ircstats;
extern ircstats IRCstats;
extern MODVAR ircstats IRCstats;
#include "modules.h"
extern Umode *Usermode_Table;
extern short Usermode_highest;
extern MODVAR Umode *Usermode_Table;
extern MODVAR short Usermode_highest;
extern Snomask *Snomask_Table;
extern short Snomask_highest;
extern MODVAR Snomask *Snomask_Table;
extern MODVAR short Snomask_highest;
#ifdef EXTCMODE
extern Cmode *Channelmode_Table;
extern unsigned short Channelmode_highest;
extern MODVAR Cmode *Channelmode_Table;
extern MODVAR unsigned short Channelmode_highest;
#endif
extern Umode *UmodeAdd(Module *module, char ch, int options, int (*allowed)(aClient *sptr, int what), long *mode);
@@ -820,6 +882,12 @@ extern Cmode *CmodeAdd(Module *reserved, CmodeInfo req, Cmode_t *mode);
extern void CmodeDel(Cmode *cmode);
#endif
typedef struct {
EXTCM_PAR_HEADER
unsigned short num;
unsigned short t;
} aModejEntry;
#define LISTENER_NORMAL 0x000001
#define LISTENER_CLIENTSONLY 0x000002
#define LISTENER_SERVERSONLY 0x000004
@@ -885,9 +953,13 @@ struct Client {
long receiveM; /* Statistics: protocol messages received */
#ifdef ZIP_LINKS
struct Zdata *zip; /* zip data */
#elif defined(_WIN32)
void *zip_NOTUSED; /* (win32 binary compatability) */
#endif
#ifdef USE_SSL
SSL *ssl;
#elif defined(_WIN32)
void *ssl_NOTUSED; /* (win32 binary compatability) */
#endif
#ifndef NO_FDLIST
long lastrecvM; /* to check for activity --Mika */
@@ -1017,11 +1089,17 @@ struct _configitem_admin {
char *line;
};
#define CLASS_OPT_NOFAKELAG 0x1
struct _configitem_class {
ConfigItem *prev, *next;
ConfigFlag flag;
char *name;
int pingfreq, connfreq, maxclients, sendq, recvq, clients;
int xrefcount; /* EXTRA reference count, 'clients' also acts as a reference count but
* link blocks also refer to classes so a 2nd ref. count was needed.
*/
unsigned int options;
};
struct _configflag_allow {
@@ -1039,6 +1117,7 @@ struct _configitem_allow {
unsigned short maxperip;
int port;
ConfigItem_class *class;
struct irc_netmask *netmask;
ConfigFlag_allow flags;
};
@@ -1049,6 +1128,7 @@ struct _configitem_oper {
anAuthStruct *auth;
ConfigItem_class *class;
ConfigItem *from;
unsigned long modes;
long oflags;
int maxlogins;
};
@@ -1076,9 +1156,10 @@ struct _configitem_ulines {
struct _configitem_tld {
ConfigItem *prev, *next;
ConfigFlag_tld flag;
char *mask, *motd_file, *rules_file, *smotd_file, *channel;
char *mask, *motd_file, *rules_file, *smotd_file;
char *botmotd_file, *opermotd_file, *channel;
struct tm motd_tm, smotd_tm;
aMotd *rules, *motd, *smotd;
aMotd *rules, *motd, *smotd, *botmotd, *opermotd;
u_short options;
};
@@ -1112,6 +1193,8 @@ struct _configitem_link {
time_t hold;
#ifdef USE_SSL
char *ciphers;
#elif defined(_WIN32)
void *ciphers_NOTUSED;
#endif
#ifdef ZIP_LINKS
int compression_level;
@@ -1123,15 +1206,14 @@ struct _configitem_except {
ConfigFlag_except flag;
int type;
char *mask;
struct irc_netmask *netmask;
};
struct _configitem_ban {
ConfigItem *prev, *next;
ConfigFlag_ban flag;
char *mask, *reason;
struct IN_ADDR netmask;
int bits;
short masktype;
struct irc_netmask *netmask;
unsigned short action;
};
@@ -1188,6 +1270,12 @@ struct _configitem_allow_channel {
char *channel;
};
struct _configitem_allow_dcc {
ConfigItem *prev, *next;
ConfigFlag_ban flag;
char *filename;
};
struct _configitem_log {
ConfigItem *prev, *next;
ConfigFlag flag;
@@ -1211,24 +1299,24 @@ struct _configitem_unknown_ext {
ConfigEntry *ce_entries;
};
#define ALIAS_SERVICES 1
#define ALIAS_STATS 2
#define ALIAS_NORMAL 3
#define ALIAS_COMMAND 4
typedef enum {
ALIAS_SERVICES=1, ALIAS_STATS, ALIAS_NORMAL, ALIAS_COMMAND, ALIAS_CHANNEL
} AliasType;
struct _configitem_alias {
ConfigItem *prev, *next;
ConfigFlag flag;
ConfigItem_alias_format *format;
char *alias, *nick;
short type;
AliasType type;
};
struct _configitem_alias_format {
ConfigItem *prev, *next;
ConfigFlag flag;
char *nick;
short type;
AliasType type;
char *format, *parameters;
regex_t expr;
};
@@ -1415,6 +1503,10 @@ struct Channel {
Link *invites;
Ban *banlist;
Ban *exlist; /* exceptions */
Ban *invexlist; /* invite list */
#ifdef JOINTHROTTLE
aJFlood *jflood;
#endif
char chname[1];
};
@@ -1479,8 +1571,9 @@ struct liststruct {
#define CHFL_BAN 0x0020 /* ban channel flag */
#define CHFL_CHANOWNER 0x0040 /* channel owner */
#define CHFL_CHANPROT 0x0080 /* chan op protection */
#define CHFL_HALFOP 0x0100 /* halfop */
#define CHFL_EXCEPT 0x0200 /* phase this out ? +e */
#define CHFL_HALFOP 0x0100 /* halfop */
#define CHFL_EXCEPT 0x0200 /* phase this out ? +e */
#define CHFL_INVEX 0x0400 /* invite exception */
#define CHFL_OVERLAP (CHFL_CHANOWNER|CHFL_CHANPROT|CHFL_CHANOP|CHFL_VOICE|CHFL_HALFOP)
@@ -1489,21 +1582,21 @@ struct liststruct {
#define MODE_CHANOP CHFL_CHANOP
#define MODE_VOICE CHFL_VOICE
#define MODE_PRIVATE 0x0004
#define MODE_SECRET 0x0008
#define MODE_SECRET 0x0008
#define MODE_MODERATED 0x0010
#define MODE_TOPICLIMIT 0x0020
#define MODE_CHANOWNER 0x0040
#define MODE_CHANPROT 0x0080
#define MODE_HALFOP 0x0100
#define MODE_EXCEPT 0x0200
#define MODE_BAN 0x0400
#define MODE_HALFOP 0x0100
#define MODE_EXCEPT 0x0200
#define MODE_BAN 0x0400
#define MODE_INVITEONLY 0x0800
#define MODE_NOPRIVMSGS 0x1000
#define MODE_KEY 0x2000
#define MODE_LIMIT 0x4000
#define MODE_RGSTR 0x8000
#define MODE_RGSTRONLY 0x10000
#define MODE_LINK 0x20000
#define MODE_KEY 0x2000
#define MODE_LIMIT 0x4000
#define MODE_RGSTR 0x8000
#define MODE_RGSTRONLY 0x10000
#define MODE_LINK 0x20000
#define MODE_NOCOLOR 0x40000
#define MODE_OPERONLY 0x80000
#define MODE_ADMONLY 0x100000
@@ -1513,9 +1606,7 @@ struct liststruct {
#define MODE_NOINVITE 0x1000000
#define MODE_FLOODLIMIT 0x2000000
#define MODE_MODREG 0x4000000
#ifdef STRIPBADWORDS
#define MODE_STRIPBADWORDS 0x8000000
#endif
#define MODE_INVEX 0x8000000
#define MODE_NOCTCP 0x10000000
#define MODE_AUDITORIUM 0x20000000
#define MODE_ONLYSECURE 0x40000000
@@ -1525,7 +1616,7 @@ struct liststruct {
/*
* mode flags which take another parameter (With PARAmeterS)
*/
#define MODE_WPARAS (MODE_HALFOP|MODE_CHANOP|MODE_VOICE|MODE_CHANOWNER|MODE_CHANPROT|MODE_BAN|MODE_KEY|MODE_LINK|MODE_LIMIT|MODE_EXCEPT)
#define MODE_WPARAS (MODE_HALFOP|MODE_CHANOP|MODE_VOICE|MODE_CHANOWNER|MODE_CHANPROT|MODE_BAN|MODE_KEY|MODE_LINK|MODE_LIMIT|MODE_EXCEPT|MODE_INVEX)
/*
* Undefined here, these are used in conjunction with the above modes in
* the source.
@@ -1553,7 +1644,8 @@ struct liststruct {
#define BadPtr(x) (!(x) || (*(x) == '\0'))
#define isvalid(c) (((c) >= 'A' && (c) <= '~') || isdigit(c) || (c) == '-')
/** Is valid character in nick? [not for external usage, use do_check_nickname instead!] */
#define isvalid(c) (char_atribs[(u_char)(c)]&ALLOWN)
/* remote fds are set to -256, else its a local fd (a local fd
* can get -1 or -2 in case it has been closed). -- Syzop
@@ -1607,14 +1699,17 @@ struct liststruct {
/* misc variable externs */
extern char *version, *infotext[], *dalinfotext[], *unrealcredits[];
extern char *generation, *creation;
extern char *gnulicense[];
extern MODVAR char *version, *infotext[], *dalinfotext[], *unrealcredits[];
extern MODVAR char *generation, *creation;
extern MODVAR char *gnulicense[];
/* misc defines */
#define FLUSH_BUFFER -2
#define COMMA ","
#define PARTFMT ":%s PART %s"
#define PARTFMT2 ":%s PART %s :%s"
#ifdef USE_SSL
#include "ssl.h"
#endif
@@ -1662,12 +1757,48 @@ typedef struct {
unsigned parameters : 1;
} aCtab;
#ifdef JOINTHROTTLE
/** A jointhrottle item, this is a double linked list.
* prev_u Previous entry of user
* next_u Next entry of user
* prev_c Previous entry of channel
* next_c Next entry of channel
* chptr The channel this entry applies to
* cptr The user this entry applies to
* firstjoin Timestamp of "first join" (since last timer reset)
* numjoin Number of joins since that period
* CLARIFICATION:
* Why a double linked list? Well, the following operations need to be performed:
* - if user quits, entry must be removed
* - if channel is destroyed, entry must be removed
* (and of course, more, but these are the most important ones affecting this decision)
* While it would be possible to have a linked list only by user (for example),
* that would mean that upon channel destroy ALL entries would have to be searched
* trough, which might mean for example 800*8=6400 entries in a peak situation
* (such as after a server restart and hundreds of clients connecting&joining).
* For obvious reasons, that would be a very bad idea :).
* So this costs us 2 pointers (8b on ia32) per entry, but in case of channel destroy
* it means we only have for example 20 entries to scan trough rather than 2000.
* Worth the extra memory :). -- Syzop
* Note that in normal situations it won't be that bad since we will try to
* regulary free up some entries.
*/
struct JFlood {
aJFlood *prev_u, *next_u;
aJFlood *prev_c, *next_c;
aChannel *chptr;
aClient *cptr;
time_t firstjoin;
unsigned short numjoins;
};
#endif
void init_throttling_hash();
int hash_throttling(struct IN_ADDR *in);
struct ThrottlingBucket *find_throttling_bucket(struct IN_ADDR *in);
void add_throttling_bucket(struct IN_ADDR *in);
void del_throttling_bucket(struct ThrottlingBucket *bucket);
int throttle_can_connect(struct IN_ADDR *in);
int throttle_can_connect(aClient *, struct IN_ADDR *in);
#endif
@@ -1675,11 +1806,8 @@ int throttle_can_connect(struct IN_ADDR *in);
#define MARK_AS_OFFICIAL_MODULE(modinf) do { if (modinf && modinf->handle) ModuleSetOptions(modinfo->handle, MOD_OPT_OFFICIAL); } while(0)
#ifdef PREFIX_AQ
#define CHANOPPFX "~&@"
#else
#define CHANOPPFX "@"
#endif
/* old.. please don't use anymore */
#define CHANOPPFX "@"
/* used for is_banned type field: */
#define BANCHK_JOIN 0 /* checking if a ban forbids the person from joining */
+24 -3
View File
@@ -21,6 +21,25 @@
#ifndef __sys_include__
#define __sys_include__
/* alloca stuff */
#ifdef _WIN32
# include <malloc.h>
# define alloca _alloca
#else /* _WIN32 */
# ifdef HAVE_ALLOCA
# if defined(_AIX) && !defined(__GNUC__)
#pragma alloca
# endif /* _AIX */
# if defined(HAVE_ALLOCA_H)
# include <alloca.h>
# endif /* HAVE_ALLOCA_H */
# if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && !defined(alloca)
# define alloca __builtin_alloca
# endif /* __GNUC__ */
# endif /* HAVE_ALLOCA */
#endif /* !_WIN32 */
#ifdef ISC202
#include <net/errno.h>
#else
@@ -142,6 +161,9 @@ typedef unsigned short u_int16_t;
* IPv4 or IPv6 structures?
*/
# define MYDUMMY_SIZE 128
#ifdef INET6
# define AND16(x) ((x)[0]&(x)[1]&(x)[2]&(x)[3]&(x)[4]&(x)[5]&(x)[6]&(x)[7]&(x)[8]&(x)[9]&(x)[10]&(x)[11]&(x)[12]&(x)[13]&(x)[14]&(x)[15])
@@ -160,7 +182,6 @@ typedef unsigned short u_int16_t;
//# define uint32_t __u32
// # endif
# define MYDUMMY_SIZE 128
char mydummy[MYDUMMY_SIZE];
char mydummy2[MYDUMMY_SIZE];
@@ -170,7 +191,7 @@ char mydummy2[MYDUMMY_SIZE];
# endif
# endif
# if defined(linux)
# if defined(linux) && defined(NO_IN6ADDR_ANY)
static const struct in6_addr in6addr_any = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0
};
@@ -232,7 +253,7 @@ static const struct in6_addr in6addr_any = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
#define CLOSE_SOCK(fd) closesocket(fd)
#define IOCTL(x, y, z) ioctlsocket((x), (y), (z))
#define ERRNO WSAGetLastError()
#define STRERROR(x) nt_strerror(x)
#define STRERROR(x) sock_strerror(x)
#define SET_ERRNO(x) WSASetLastError(x)
/* Error constant portability */
#define P_EMFILE WSAEMFILE
+17 -1
View File
@@ -1,5 +1,5 @@
/*
* Unreal Internet Relay Chat Daemon, src/url.c
* Unreal Internet Relay Chat Daemon, include/types.h
* (C) 2003 The UnrealIRCd Team
*
* This program is free software; you can redistribute it and/or modify
@@ -24,4 +24,20 @@ typedef void (*vFP)(); /* Void function pointer */
typedef int (*iFP)(); /* Integer function pointer */
typedef char (*cFP)(); /* char * function pointer */
#ifndef MODVAR
#if defined(MODULE_COMPILE) && defined(_WIN32)
#define MODVAR __declspec(dllimport)
#else
#define MODVAR
#endif
#endif
#ifndef MODFUNC
#ifdef _WIN32
#define MODFUNC __declspec(dllexport)
#else
#define MODFUNC
#endif
#endif
#endif
+7 -6
View File
@@ -1,11 +1,12 @@
#ifndef URL_H
#define URL_H
#include "types.h"
int url_is_valid(char *);
char *url_getfilename(char *);
char *download_file(char *, char **);
void download_file_async(char *, time_t, vFP);
void url_do_transfers_async(void);
void url_init(void);
int MODFUNC url_is_valid(char *);
char MODFUNC *url_getfilename(char *);
char MODFUNC *download_file(char *, char **);
void MODFUNC download_file_async(char *, time_t, vFP);
void MODFUNC url_do_transfers_async(void);
void MODFUNC url_init(void);
#endif
+3 -3
View File
@@ -24,12 +24,12 @@
/**/
#define COMPILEINFO DEBUGMODESET DEBUGSET
/*
* Version Unreal3.2
* Version Unreal3.2.2
*/
#define UnrealProtocol 2303
#define UnrealProtocol 2306
#define PATCH1 "3"
#define PATCH2 ".2"
#define PATCH3 ""
#define PATCH3 ".3"
#define PATCH4 ""
#define PATCH5 ""
#define PATCH6 ""
+93 -34
View File
@@ -1,7 +1,7 @@
/*
regex.h - POSIX.2 compatible regexp interface and TRE extensions
Copyright (C) 2001-2003 Ville Laurikari <vl@iki.fi>.
Copyright (C) 2001-2004 Ville Laurikari <vl@iki.fi>.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 (June
@@ -27,6 +27,10 @@
#include <sys/types.h>
#endif /* HAVE_SYS_TYPES_H */
#ifdef HAVE_LIBUTF8_H
#include <libutf8.h>
#endif /* HAVE_LIBUTF8_H */
#ifdef TRE_USE_SYSTEM_REGEX_H
/* Include the system regex.h to make TRE ABI compatible with the
system regex. */
@@ -47,6 +51,17 @@ extern "C" {
typedef int reg_errcode_t;
#endif /* !HAVE_REG_ERRCODE_T */
#if !defined(REG_NOSPEC) && !defined(REG_LITERAL)
#define REG_LITERAL 0x1000
#endif
/* Extra regcomp() flags. */
#define REG_RIGHT_ASSOC (REG_LITERAL << 1)
/* Extra regexec() flags. */
#define REG_APPROX_MATCHER 0x1000
#define REG_BACKTRACKING_MATCHER (REG_APPROX_MATCHER << 1)
#else /* !TRE_USE_SYSTEM_REGEX_H */
/* If the we're not using system regex.h, we need to define the
@@ -55,7 +70,7 @@ typedef int reg_errcode_t;
typedef int regoff_t;
typedef struct {
size_t re_nsub; /* Number of parenthesized subexpressions. */
void *value; /* For internal use only. */
void *value; /* For internal use only. */
} regex_t;
typedef struct {
@@ -65,45 +80,50 @@ typedef struct {
typedef enum {
REG_OK = 0, /* No error. */
REG_OK = 0, /* No error. */
/* POSIX regcomp() return error codes. (In the order listed in the
standard.) */
REG_NOMATCH, /* No match. */
REG_BADPAT, /* Invalid regexp. */
REG_ECOLLATE, /* Unknown collating element. */
REG_ECTYPE, /* Unknown character class name. */
REG_EESCAPE, /* Trailing backslash. */
REG_ESUBREG, /* Invalid back reference. */
REG_EBRACK, /* "[]" imbalance */
REG_EPAREN, /* "\(\)" or "()" imbalance */
REG_EBRACE, /* "\{\}" or "{}" imbalance */
REG_BADBR, /* Invalid content of {} */
REG_ERANGE, /* Invalid use of range operator */
REG_ESPACE, /* Out of memory. */
standard.) */
REG_NOMATCH, /* No match. */
REG_BADPAT, /* Invalid regexp. */
REG_ECOLLATE, /* Unknown collating element. */
REG_ECTYPE, /* Unknown character class name. */
REG_EESCAPE, /* Trailing backslash. */
REG_ESUBREG, /* Invalid back reference. */
REG_EBRACK, /* "[]" imbalance */
REG_EPAREN, /* "\(\)" or "()" imbalance */
REG_EBRACE, /* "\{\}" or "{}" imbalance */
REG_BADBR, /* Invalid content of {} */
REG_ERANGE, /* Invalid use of range operator */
REG_ESPACE, /* Out of memory. */
REG_BADRPT
} reg_errcode_t;
/* POSIX regcomp() flags. */
#define REG_EXTENDED 1
#define REG_ICASE (REG_EXTENDED << 1)
#define REG_NEWLINE (REG_ICASE << 1)
#define REG_NOSUB (REG_NEWLINE << 1)
#define REG_EXTENDED 1
#define REG_ICASE (REG_EXTENDED << 1)
#define REG_NEWLINE (REG_ICASE << 1)
#define REG_NOSUB (REG_NEWLINE << 1)
/* Extra regcomp() flags. */
#define REG_BASIC 0
#define REG_LITERAL (REG_NOSUB << 1)
#define REG_BASIC 0
#define REG_LITERAL (REG_NOSUB << 1)
#define REG_RIGHT_ASSOC (REG_LITERAL << 1)
/* POSIX regexec() flags. */
#define REG_NOTBOL 1
#define REG_NOTEOL (REG_NOTBOL << 1)
/* Extra regexec() flags. */
#define REG_APPROX_MATCHER (REG_NOTEOL << 1)
#define REG_BACKTRACKING_MATCHER (REG_APPROX_MATCHER << 1)
#endif /* !TRE_USE_SYSTEM_REGEX_H */
/* REG_NOSPEC and REG_LITERAL mean the same thing. */
#if defined(REG_LITERAL)
#define REG_NOSPEC REG_LITERAL
#ifdef REG_LITERAL
#define REG_NOSPEC REG_LITERAL
#elif defined(REG_NOSPEC)
#define REG_LITERAL REG_NOSPEC
#define REG_LITERAL REG_NOSPEC
#endif /* defined(REG_NOSPEC) */
/* The maximum number of iterations in a bound expression. */
@@ -144,24 +164,24 @@ int regwnexec(const regex_t *preg, const wchar_t *string, size_t len,
/* Approximate matching parameter struct. */
typedef struct {
int cost_ins; /* Default cost of an inserted character. */
int cost_del; /* Default cost of a deleted character. */
int cost_ins; /* Default cost of an inserted character. */
int cost_del; /* Default cost of a deleted character. */
int cost_subst; /* Default cost of a substituted character. */
int max_cost; /* Maximum allowed cost of a match. */
int max_cost; /* Maximum allowed cost of a match. */
int max_ins; /* Maximum allowed number of inserts. */
int max_del; /* Maximum allowed number of deletes. */
int max_ins; /* Maximum allowed number of inserts. */
int max_del; /* Maximum allowed number of deletes. */
int max_subst; /* Maximum allowed number of substitutes. */
int max_err; /* Maximum allowed number of errors total. */
int max_err; /* Maximum allowed number of errors total. */
} regaparams_t;
/* Approximate matching result struct. */
typedef struct {
size_t nmatch; /* Length of pmatch[] array. */
regmatch_t *pmatch; /* Submatch data. */
int cost; /* Cost of the match. */
int num_ins; /* Number of inserts in the match. */
int num_del; /* Number of deletes in the match. */
int cost; /* Cost of the match. */
int num_ins; /* Number of inserts in the match. */
int num_del; /* Number of deletes in the match. */
int num_subst; /* Number of substitutes in the match. */
} regamatch_t;
@@ -183,6 +203,45 @@ int regawnexec(const regex_t *preg, const wchar_t *string, size_t len,
void regaparams_default(regaparams_t *params);
#endif /* TRE_APPROX */
#ifdef TRE_WCHAR
typedef wchar_t tre_char_t;
#else /* !TRE_WCHAR */
typedef unsigned char tre_char_t;
#endif /* !TRE_WCHAR */
typedef struct {
int (*get_next_char)(tre_char_t *c, unsigned int *pos_add, void *context);
void (*rewind)(size_t pos, void *context);
int (*compare)(size_t pos1, size_t pos2, size_t len, void *context);
void *context;
} tre_str_source;
int reguexec(const regex_t *preg, const tre_str_source *string,
size_t nmatch, regmatch_t pmatch[], int eflags);
/* Returns the version string. The returned string is static. */
char *tre_version(void);
/* Returns the value for a config parameter. The type to which `result'
must point to depends of the value of `query', see documentation for
more details. */
int tre_config(int query, void *result);
enum {
TRE_CONFIG_APPROX,
TRE_CONFIG_WCHAR,
TRE_CONFIG_MULTIBYTE,
TRE_CONFIG_SYSTEM_ABI,
TRE_CONFIG_VERSION
};
/* Returns 1 if the compiled pattern has back references, 0 if not. */
int tre_have_backrefs(const regex_t *preg);
/* Returns 1 if the compiled pattern uses approximate matching features,
0 if not. */
int tre_have_approx(const regex_t *preg);
#ifdef __cplusplus
}
#endif
+2 -1
View File
@@ -30,7 +30,6 @@
#undef SYSSYSLOGH
#define NOINDEX
#define NOBCOPY
#define NEED_STRERROR
#define NEED_STRTOKEN
#undef NEED_STRTOK
#undef NEED_INET_ADDR
@@ -43,10 +42,12 @@
#undef POSIX_SIGNALS
#undef TIMES_2
#undef GETRUSAGE_2
#define HAVE_ALLOCA
#define SPATH "."
#define DPATH "."
#define DOMAINNAME "irc.net"
#define NO_U_TYPES
#define NEED_U_INT32_T
#define PREFIX_AQ
#define LIST_SHOW_MODES
#endif
+29 -3
View File
@@ -1,5 +1,15 @@
/* tre-config.h. This file defines all compile time definitions
that are needed in `regex.h' for Win32. */
#ifndef HAVE_ALLOCA
/* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1
#endif
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
#define HAVE_ALLOCA_H 1
/* Define to 1 if you have the <libutf8.h> header file. */
/* #undef HAVE_LIBUTF8_H */
/* Define to 1 if the system has the type `reg_errcode_t'. */
/* #undef HAVE_REG_ERRCODE_T */
@@ -16,11 +26,27 @@
/* Define to enable multibyte character set support. */
#undef TRE_MULTIBYTE
/* Define to include the system regex.h from TRE regex.h */
/* #undef TRE_USE_SYSTEM_REGEX_H */
/* Define to the absolute path to the system regex.h */
/* #undef TRE_SYSTEM_REGEX_H_PATH */
/* Define if you want TRE to use alloca() instead of malloc() when allocating
memory needed for regexec operations. */
#define TRE_USE_ALLOCA 1
/* Define to include the system regex.h from TRE regex.h */
/* #undef TRE_USE_SYSTEM_REGEX_H */
/* Define to enable wide character (wchar_t) support. */
#undef TRE_WCHAR
/* TRE version string. */
#define TRE_VERSION "0.7.2"
/* TRE version level 1. */
#define TRE_VERSION_1 0
/* TRE version level 2. */
#define TRE_VERSION_2 7
/* TRE version level 3. */
#define TRE_VERSION_3 2
+4 -4
View File
@@ -54,7 +54,7 @@ struct Zdata {
#endif /* ZIP_LINKS */
extern int zip_init(struct Client *, int);
extern void zip_free(struct Client *);
extern char *unzip_packet(struct Client *, char *, int *);
extern char *zip_buffer(struct Client *, char *, int *, int);
extern MODFUNC int zip_init(struct Client *, int);
extern MODFUNC void zip_free(struct Client *);
extern MODFUNC char *unzip_packet(struct Client *, char *, int *);
extern MODFUNC char *zip_buffer(struct Client *, char *, int *, int);
+3 -8
View File
@@ -1,6 +1,6 @@
/*
* IRC - Internet Relay Chat, src/modules/%FILE%
* (C) 2004 The UnrealIRCd Team
* (C) 2005 The UnrealIRCd Team
*
* See file AUTHORS in IRC package for additional names of
* the programmers.
@@ -44,7 +44,7 @@
#include "version.h"
#endif
DLLFUNC int m_%COMMAND%(aClient *cptr, aClient *sptr, int parc, char *parv[]);
DLLFUNC CMD_FUNC(m_%COMMAND%);
#define MSG_%UCOMMAND% "%UCOMMAND%"
#define TOK_%UCOMMAND% "%TOKEN%"
@@ -60,7 +60,7 @@ ModuleHeader MOD_HEADER(m_%COMMAND%)
DLLFUNC int MOD_INIT(m_%COMMAND%)(ModuleInfo *modinfo)
{
add_Command(MSG_%UCOMMAND%, TOK_%UCOMMAND%, m_%COMMAND%, %MAXPARA%);
CommandAdd(modinfo->handle, MSG_%UCOMMAND%, TOK_%UCOMMAND%, m_%COMMAND%, %MAXPARA%, M_USER|M_SERVER);
MARK_AS_OFFICIAL_MODULE(modinfo);
return MOD_SUCCESS;
}
@@ -72,11 +72,6 @@ DLLFUNC int MOD_LOAD(m_%COMMAND%)(int module_load)
DLLFUNC int MOD_UNLOAD(m_%COMMAND%)(int module_unload)
{
if (del_Command(MSG_%UCOMMAND%, TOK_%UCOMMAND%, m_%COMMAND%) < 0)
{
sendto_realops("Failed to delete commands when unloading %s",
MOD_HEADER(m_%COMMAND%).name);
}
return MOD_SUCCESS;
}
+451 -321
View File
@@ -101,70 +101,133 @@ OPENSSL_LIB=/LIBPATH:"$(OPENSSL_LIB_DIR)"
!ENDIF
!IFDEF DEBUG
DBGCFLAG=/MTd /Zi
DBGCFLAG=/MD /Zi
DBGLFLAG=/debug /debugtype:BOTH
MODDBGCFLAG=/LDd /MD /Zi
!ELSE
DBGCFLAG=/MT /O2 /G5
DBGCFLAG=/MD /O2 /G5
MODDBGCFLAG=/LD /MD
!ENDIF
FD_SETSIZE=/D FD_SETSIZE=16384
CFLAGS=$(DBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /I ./INCLUDE /Fosrc/ /nologo \
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D STATIC_LINKING \
/D NOSPOOF=1 /c
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
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \
dbghelp.lib oldnames.lib libcmt.lib comctl32.lib comdlg32.lib $(ZLIB_LIB) $(ZIPLIB) \
$(OPENSSL_LIB) $(SSLLIBS) $(LIBCURL_LIB) $(CURLLIB) /nodefaultlib /nologo $(DBGLFLAG) \
/out:WIRCD.EXE
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
MODLFLAGS=/link /def:src/modules/module.def wircd.lib $(OPENSSL_LIB) $(SSLLIBS) \
$(ZLIB_LIB) $(ZIPLIB) $(LIBCURL_LIB) $(CURLLIB)
INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
./include/common.h ./include/version.h ./include/h.h ./include/numeric.h \
./include/msg.h ./include/setup.h ./include/dynconf.h
OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \
EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \
SRC/S_CONF.OBJ SRC/FDLIST.OBJ SRC/DBUF.OBJ \
SRC/CLOAK.OBJ SRC/HASH.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ \
SRC/S_NUMERIC.OBJ SRC/WHOWAS.OBJ SRC/S_AUTH.OBJ \
SRC/HELP.OBJ SRC/S_MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.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/WIN32GUI.OBJ \
SRC/VERSION.OBJ SRC/RES_INIT.OBJ SRC/RES_COMP.OBJ SRC/RES_MKQUERY.OBJ SRC/RES_SKIPNAME.OBJ \
SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \
SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/CHARSYS.OBJ \
SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \
SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/BADWORDS.OBJ SRC/WEBTV.OBJ SRC/RES.OBJ SRC/MODULES.OBJ \
SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/CIDR.OBJ SRC/SSL.OBJ \
SRC/SERVICE.OBJ SRC/DEBUG.OBJ SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ \
SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ \
SRC/EXTBANS.OBJ $(ZIPOBJ) $(CURLOBJ)
MOD_FILES=SRC/L_COMMANDS.OBJ SRC/M_CHGHOST.OBJ SRC/M_SDESC.OBJ SRC/M_SETIDENT.OBJ \
SRC/M_SETNAME.OBJ SRC/M_SETHOST.OBJ SRC/M_CHGIDENT.OBJ SRC/M_SVSMOTD.OBJ \
SRC/M_SVSNLINE.OBJ SRC/M_WHO.OBJ SRC/M_SWHOIS.OBJ SRC/M_SVSMODE.OBJ \
SRC/M_AWAY.OBJ SRC/M_SVSNOOP.OBJ SRC/M_MKPASSWD.OBJ SRC/M_SVSO.OBJ SRC/M_SVSNICK.OBJ \
SRC/M_ADMINCHAT.OBJ SRC/M_AKILL.OBJ SRC/M_CHGNAME.OBJ SRC/M_GUEST.OBJ SRC/M_HTM.OBJ \
SRC/M_LAG.OBJ SRC/M_MESSAGE.OBJ SRC/M_NACHAT.OBJ SRC/M_OPER.OBJ \
SRC/M_PINGPONG.OBJ SRC/M_QUIT.OBJ SRC/M_RAKILL.OBJ SRC/M_RPING.OBJ SRC/M_SENDUMODE.OBJ \
SRC/M_SQLINE.OBJ SRC/M_KILL.OBJ SRC/M_TSCTL.OBJ SRC/M_UNKLINE.OBJ \
SRC/M_UNSQLINE.OBJ SRC/M_UNZLINE.OBJ SRC/M_WHOIS.OBJ \
SRC/M_TKL.OBJ SRC/M_VHOST.OBJ \
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ \
SRC/M_SVSWATCH.OBJ SRC/M_SVSSILENCE.OBJ SRC/M_SENDSNO.OBJ SRC/M_SVSSNO.OBJ \
SRC/M_SAJOIN.OBJ SRC/M_SAPART.OBJ SRC/M_SAMODE.OBJ SRC/M_KICK.OBJ SRC/M_TOPIC.OBJ \
SRC/M_INVITE.OBJ SRC/M_LIST.OBJ SRC/M_TIME.OBJ SRC/M_SVSKILL.OBJ SRC/M_KNOCK.OBJ \
SRC/M_UMODE2.OBJ SRC/M_SQUIT.OBJ SRC/M_PROTOCTL.OBJ SRC/M_SJOIN.OBJ SRC/M_PASS.OBJ \
SRC/M_USERHOST.OBJ SRC/M_ISON.OBJ SRC/M_SILENCE.OBJ SRC/M_ADDLINE.OBJ SRC/M_ADDMOTD.OBJ \
SRC/M_ADDOMOTD.OBJ SRC/M_WALLOPS.OBJ SRC/M_GLOBOPS.OBJ SRC/M_LOCOPS.OBJ SRC/M_CHATOPS.OBJ \
SRC/M_ADMIN.OBJ SRC/M_TRACE.OBJ SRC/M_NETINFO.OBJ SRC/M_LINKS.OBJ SRC/M_HELP.OBJ \
SRC/M_RULES.OBJ SRC/M_CLOSE.OBJ SRC/M_MAP.OBJ SRC/M_EOS.OBJ SRC/M_SERVER.OBJ \
SRC/M_STATS.OBJ SRC/M_SVSFLINE.OBJ SRC/M_DCCDENY.OBJ SRC/M_UNDCCDENY.OBJ \
SRC/M_WHOWAS.OBJ SRC/M_CONNECT.OBJ
OBJ_FILES=$(EXP_OBJ_FILES) SRC/GUI.OBJ SRC/SERVICE.OBJ SRC/DEBUG.OBJ SRC/RTF.OBJ \
SRC/EDITOR.OBJ SRC/WIN32.OBJ
ALL: CONF UNREAL.EXE WIRCD.EXE
MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C \
SRC/MODULES/M_SETIDENT.C SRC/MODULES/M_SETNAME.C SRC/MODULES/M_SETHOST.C \
SRC/MODULES/M_CHGIDENT.C SRC/MODULES/M_SVSMOTD.C SRC/MODULES/M_SVSNLINE.C \
SRC/MODULES/M_WHO.C SRC/MODULES/M_SWHOIS.C SRC/MODULES/M_SVSMODE.C SRC/MODULES/M_AWAY.C \
SRC/MODULES/M_SVSNOOP.C SRC/MODULES/M_MKPASSWD.C SRC/MODULES/M_SVSO.C \
SRC/MODULES/M_SVSNICK.C SRC/MODULES/M_ADMINCHAT.C SRC/MODULES/M_AKILL.C \
SRC/MODULES/M_CHGNAME.C SRC/MODULES/M_GUEST.C SRC/MODULES/M_HTM.C SRC/MODULES/M_LAG.C \
SRC/MODULES/M_MESSAGE.C SRC/MODULES/M_NACHAT.C SRC/MODULES/M_OPER.C \
SRC/MODULES/M_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 \
SRC/MODULES/M_UNZLINE.C SRC/MODULES/M_WHOIS.C SRC/MODULES/M_TKL.C SRC/MODULES/M_VHOST.C \
SRC/MODULES/M_CYCLE.C SRC/MODULES/M_SVSJOIN.C SRC/MODULES/M_SVSPART.C \
SRC/MODULES/M_SVSLUSERS.C SRC/MODULES/M_SVSWATCH.C SRC/MODULES/M_SVSSILENCE.C \
SRC/MODULES/M_SENDSNO.C SRC/MODULES/M_SVSSNO.C SRC/MODULES/M_SAJOIN.C \
SRC/MODULES/M_SAPART.C SRC/MODULES/M_SAMODE.C SRC/MODULES/M_KICK.C SRC/MODULES/M_TOPIC.C \
SRC/MODULES/M_INVITE.C SRC/MODULES/M_LIST.C SRC/MODULES/M_TIME.C SRC/MODULES/M_SVSKILL.C \
SRC/MODULES/M_KNOCK.C SRC/MODULES/M_UMODE2.C SRC/MODULES/M_SQUIT.C \
SRC/MODULES/M_PROTOCTL.C SRC/MODULES/M_SJOIN.C SRC/MODULES/M_PASS.C \
SRC/MODULES/M_USERHOST.C SRC/MODULES/M_ISON.C SRC/MODULES/M_SILENCE.C \
SRC/MODULES/M_ADDLINE.C SRC/MODULES/M_ADDMOTD.C SRC/MODULES/M_ADDOMOTD.C \
SRC/MODULES/M_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 \
SRC/MODULES/M_RULES.C SRC/MODULES/M_CLOSE.C SRC/MODULES/M_MAP.C SRC/MODULES/M_EOS.C \
SRC/MODULES/M_SERVER.C SRC/MODULES/M_STATS.C SRC/MODULES/M_SVSFLINE.C \
SRC/MODULES/M_DCCDENY.C SRC/MODULES/M_UNDCCDENY.C SRC/MODULES/M_WHOWAS.C \
SRC/MODULES/M_CONNECT.C SRC/MODULES/M_DCCALLOW.C SRC/MODULES/M_USERIP.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
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 \
SRC/MODULES/M_SVSMOTD.DLL SRC/MODULES/M_SVSNLINE.DLL SRC/MODULES/M_WHO.DLL \
SRC/MODULES/M_SWHOIS.DLL SRC/MODULES/M_SVSMODE.DLL SRC/MODULES/M_AWAY.DLL \
SRC/MODULES/M_SVSNOOP.DLL SRC/MODULES/M_MKPASSWD.DLL SRC/MODULES/M_SVSO.DLL \
SRC/MODULES/M_SVSNICK.DLL SRC/MODULES/M_ADMINCHAT.DLL SRC/MODULES/M_AKILL.DLL \
SRC/MODULES/M_CHGNAME.DLL SRC/MODULES/M_GUEST.DLL SRC/MODULES/M_HTM.DLL \
SRC/MODULES/M_LAG.DLL SRC/MODULES/M_MESSAGE.DLL SRC/MODULES/M_NACHAT.DLL \
SRC/MODULES/M_OPER.DLL SRC/MODULES/M_PINGPONG.DLL SRC/MODULES/M_QUIT.DLL \
SRC/MODULES/M_RAKILL.DLL SRC/MODULES/M_RPING.DLL SRC/MODULES/M_SENDUMODE.DLL \
SRC/MODULES/M_SQLINE.DLL SRC/MODULES/M_KILL.DLL SRC/MODULES/M_TSCTL.DLL \
SRC/MODULES/M_UNKLINE.DLL SRC/MODULES/M_UNSQLINE.DLL SRC/MODULES/M_UNZLINE.DLL \
SRC/MODULES/M_WHOIS.DLL SRC/MODULES/M_TKL.DLL SRC/MODULES/M_VHOST.DLL \
SRC/MODULES/M_CYCLE.DLL SRC/MODULES/M_SVSJOIN.DLL SRC/MODULES/M_SVSPART.DLL \
SRC/MODULES/M_SVSLUSERS.DLL SRC/MODULES/M_SVSWATCH.DLL SRC/MODULES/M_SVSSILENCE.DLL \
SRC/MODULES/M_SENDSNO.DLL SRC/MODULES/M_SVSSNO.DLL SRC/MODULES/M_SAJOIN.DLL \
SRC/MODULES/M_SAPART.DLL SRC/MODULES/M_SAMODE.DLL SRC/MODULES/M_KICK.DLL \
SRC/MODULES/M_TOPIC.DLL SRC/MODULES/M_INVITE.DLL SRC/MODULES/M_LIST.DLL \
SRC/MODULES/M_TIME.DLL SRC/MODULES/M_SVSKILL.DLL SRC/MODULES/M_KNOCK.DLL \
SRC/MODULES/M_UMODE2.DLL SRC/MODULES/M_SQUIT.DLL SRC/MODULES/M_PROTOCTL.DLL \
SRC/MODULES/M_SJOIN.DLL SRC/MODULES/M_PASS.DLL SRC/MODULES/M_USERHOST.DLL \
SRC/MODULES/M_ISON.DLL SRC/MODULES/M_SILENCE.DLL SRC/MODULES/M_ADDLINE.DLL \
SRC/MODULES/M_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 \
SRC/MODULES/M_LINKS.DLL SRC/MODULES/M_HELP.DLL SRC/MODULES/M_RULES.DLL \
SRC/MODULES/M_CLOSE.DLL SRC/MODULES/M_MAP.DLL SRC/MODULES/M_EOS.DLL \
SRC/MODULES/M_SERVER.DLL SRC/MODULES/M_STATS.DLL SRC/MODULES/M_SVSFLINE.DLL \
SRC/MODULES/M_DCCDENY.DLL SRC/MODULES/M_UNDCCDENY.DLL SRC/MODULES/M_WHOWAS.DLL \
SRC/MODULES/M_CONNECT.DLL SRC/MODULES/M_DCCALLOW.DLL SRC/MODULES/M_USERIP.DLL \
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/CLOAK.DLL
ALL: CONF UNREAL.EXE WIRCD.EXE src/modules/commands.dll MODULES
CLEAN:
-@erase src\*.obj >NUL
-@erase src\win32.res >NUL
-@erase src\version.c >NUL
-@erase src\win32\*.obj >NUL
-@erase src\modules\*.obj >NUL
-@erase src\modules\*.dll >NUL
-@erase .\*.exe >NUL
-@erase wircd.lib >NUL
-@erase src\modules\*.exp >NUL
-@erase src\modules\*.lib >NUL
-@erase src\modules\*.pdb >NUL
-@erase src\modules\*.ilk >NUL
./UNREAL.EXE: SRC/UNREAL.OBJ SRC/WIN32/UNREAL.RES
$(LINK) advapi32.lib src/unreal.obj src/win32/unreal.res
@@ -176,8 +239,8 @@ CONF:
./WIRCD.EXE: $(OBJ_FILES) $(MOD_FILES) SRC/win32/WIN32.RES
$(LINK) $(LFLAGS) $(OBJ_FILES) $(MOD_FILES) SRC/win32/WIN32.RES SRC/WIN32/TRE.LIB /MAPINFO:LINES /MAP
./WIRCD.EXE: $(OBJ_FILES) SRC/win32/WIN32.RES
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES SRC/WIN32/TRE.LIB SRC/WIN32/ARESLIB.LIB /MAPINFO:LINES /MAP
-@erase src\win32\win32.res
!IFNDEF DEBUG
@echo Non Debug version built
@@ -185,6 +248,8 @@ CONF:
@echo Debug version built ...
!ENDIF
#Source files
src/version.obj: src/version.c
$(CC) $(CFLAGS) src/version.c
@@ -246,12 +311,6 @@ src/list.obj: src/list.c $(INCLUDES)
src/res.obj: src/res.c $(INCLUDES)
$(CC) $(CFLAGS) src/res.c
src/res_mkquery.obj: src/res_mkquery.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_mkquery.c
src/res_skipname.obj: src/res_skipname.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_skipname.c
src/s_bsd.obj: src/s_bsd.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_bsd.c
@@ -286,6 +345,10 @@ src/s_user.obj: src/s_user.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_user.c
src/charsys.obj: src/charsys.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/charsys.c
src/s_extra.obj: src/s_extra.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_extra.c
@@ -305,32 +368,35 @@ src/hash.obj: src/hash.c $(INCLUDES) ./include/hash.h
src/crule.obj: src/crule.c $(INCLUDES)
$(CC) $(CFLAGS) src/crule.c
src/win32gui.obj: src/win32/win32gui.c $(INCLUDES) ./include/resource.h
$(CC) $(CFLAGS) src/win32/win32gui.c
src/gui.obj: src/win32/gui.c $(INCLUDES) ./include/resource.h
$(CC) $(CFLAGS) src/win32/gui.c
src/rtf.obj: src/win32/rtf.c $(INCLUDES) ./src/win32/win32.h
$(CC) $(CFLAGS) src/win32/rtf.c
src/editor.obj: src/win32/editor.c $(INCLUDES) ./include/resource.h ./src/win32/win32.h
$(CC) $(CFLAGS) src/win32/editor.c
src/service.obj: src/win32/service.c $(INCLUDES)
$(CC) $(CFLAGS) src/win32/service.c
src/unreal.obj: src/win32/unreal.c $(INCLUDES)
$(CC) $(CFLAGS) src/win32/unreal.c
src/debug.obj: src/win32/debug.c $(INCLUDES)
$(CC) $(CFLAGS) src/win32/debug.c
src/res_comp.obj: src/res_comp.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_comp.c
src/win32.obj: src/win32/win32.c $(INCLUDES)
$(CC) $(CFLAGS) src/win32/win32.c
src/res_init.obj: src/res_init.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_init.c
src/unreal.obj: src/win32/unreal.c $(INCLUDES)
$(CC) $(CFLAGS) src/win32/unreal.c
src/help.obj: src/help.c $(INCLUDES)
$(CC) $(CFLAGS) src/help.c
src/modules.obj: src/modules.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules.c
$(CC) $(CFLAGS) src/modules.c
src/events.obj: src/events.c $(INCLUDES)
$(CC) $(CFLAGS) src/events.c
$(CC) $(CFLAGS) src/events.c
src/umodes.obj: src/umodes.c $(INCLUDES)
$(CC) $(CFLAGS) src/umodes.c
@@ -347,285 +413,27 @@ src/random.obj: src/random.c $(INCLUDES)
src/extcmodes.obj: src/extcmodes.c $(INCLUDES)
$(CC) $(CFLAGS) src/extcmodes.c
src/md5.obj: src/md5.c $(INCLUDES)
$(CC) $(CFLAGS) src/md5.c
src/url.obj: src/url.c $(INCLUDES) ./include/url.h
$(CC) $(CFLAGS) src/url.c
src/extbans.obj: src/extbans.c $(INCLUDES)
$(CC) $(CFLAGS) src/extbans.c
src/api-isupport.obj: src/api-isupport.c $(INCLUDES)
$(CC) $(CFLAGS) src/api-isupport.c
src/api-command.obj: src/api-command.c $(INCLUDES)
$(CC) $(CFLAGS) src/api-command.c
src/zip.obj: src/zip.c $(INCLUDES)
$(CC) $(CFLAGS) src/zip.c
src/ssl.obj: src/ssl.c $(INCLUDES)
$(CC) $(CFLAGS) src/ssl.c
src/l_commands.obj: src/modules/l_commands.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/l_commands.c
src/m_chghost.obj: src/modules/m_chghost.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_chghost.c
src/m_chgident.obj: src/modules/m_chgident.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_chgident.c
src/m_sdesc.obj: src/modules/m_sdesc.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_sdesc.c
src/m_sethost.obj: src/modules/m_sethost.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_sethost.c
src/m_setident.obj: src/modules/m_setident.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_setident.c
src/m_setname.obj: src/modules/m_setname.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_setname.c
src/m_svsmotd.obj: src/modules/m_svsmotd.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svsmotd.c
src/m_svsmode.obj: src/modules/m_svsmode.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svsmode.c
src/m_tkl.obj: src/modules/m_tkl.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_tkl.c
src/m_swhois.obj: src/modules/m_swhois.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_swhois.c
src/m_svsnline.obj: src/modules/m_svsnline.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svsnline.c
src/m_who.obj: src/modules/m_who.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_who.c
src/m_away.obj: src/modules/m_away.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_away.c
src/m_mkpasswd.obj: src/modules/m_mkpasswd.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_mkpasswd.c
src/m_svsnoop.obj: src/modules/m_svsnoop.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svsnoop.c
src/m_svso.obj: src/modules/m_svso.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svso.c
src/m_svsnick.obj: src/modules/m_svsnick.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svsnick.c
src/m_adminchat.obj: src/modules/m_adminchat.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_adminchat.c
src/m_akill.obj: src/modules/m_akill.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_akill.c
src/m_chgname.obj: src/modules/m_chgname.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_chgname.c
src/m_guest.obj: src/modules/m_guest.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_guest.c
src/m_htm.obj: src/modules/m_htm.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_htm.c
src/m_kill.obj: src/modules/m_kill.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_kill.c
src/m_lag.obj: src/modules/m_lag.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_lag.c
src/m_message.obj: src/modules/m_message.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_message.c
src/m_nachat.obj: src/modules/m_nachat.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_nachat.c
src/m_oper.obj: src/modules/m_oper.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_oper.c
src/m_pingpong.obj: src/modules/m_pingpong.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_pingpong.c
src/m_quit.obj: src/modules/m_quit.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_quit.c
src/m_rakill.obj: src/modules/m_rakill.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_rakill.c
src/m_rping.obj: src/modules/m_rping.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_rping.c
src/m_sendumode.obj: src/modules/m_sendumode.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_sendumode.c
src/m_sqline.obj: src/modules/m_sqline.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_sqline.c
src/m_tsctl.obj: src/modules/m_tsctl.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_tsctl.c
src/m_unkline.obj: src/modules/m_unkline.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_unkline.c
src/m_unsqline.obj: src/modules/m_unsqline.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_unsqline.c
src/m_unzline.obj: src/modules/m_unzline.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_unzline.c
src/m_whois.obj: src/modules/m_whois.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_whois.c
src/m_vhost.obj: src/modules/m_vhost.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_vhost.c
src/m_cycle.obj: src/modules/m_cycle.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_cycle.c
src/m_svsjoin.obj: src/modules/m_svsjoin.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svsjoin.c
src/m_svspart.obj: src/modules/m_svspart.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svspart.c
src/m_svslusers.obj: src/modules/m_svslusers.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svslusers.c
src/m_svswatch.obj: src/modules/m_svswatch.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svswatch.c
src/m_svssilence.obj: src/modules/m_svssilence.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svssilence.c
src/m_sendsno.obj: src/modules/m_sendsno.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_sendsno.c
src/m_svssno.obj: src/modules/m_svssno.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svssno.c
src/m_sajoin.obj: src/modules/m_sajoin.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_sajoin.c
src/m_sapart.obj: src/modules/m_sapart.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_sapart.c
src/m_samode.obj: src/modules/m_samode.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_samode.c
src/m_kick.obj: src/modules/m_kick.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_kick.c
src/m_topic.obj: src/modules/m_topic.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_topic.c
src/m_invite.obj: src/modules/m_invite.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_invite.c
src/m_list.obj: src/modules/m_list.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_list.c
src/m_time.obj: src/modules/m_time.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_time.c
src/m_svskill.obj: src/modules/m_svskill.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svskill.c
src/m_sjoin.obj: src/modules/m_sjoin.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_sjoin.c
src/m_pass.obj: src/modules/m_pass.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_pass.c
src/m_userhost.obj: src/modules/m_userhost.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_userhost.c
src/m_ison.obj: src/modules/m_ison.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_ison.c
src/m_silence.obj: src/modules/m_silence.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_silence.c
src/m_knock.obj: src/modules/m_knock.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_knock.c
src/m_umode2.obj: src/modules/m_umode2.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_umode2.c
src/m_squit.obj: src/modules/m_squit.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_squit.c
src/m_protoctl.obj: src/modules/m_protoctl.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_protoctl.c
src/m_addline.obj: src/modules/m_addline.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_addline.c
src/m_addmotd.obj: src/modules/m_addmotd.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_addmotd.c
src/m_addomotd.obj: src/modules/m_addomotd.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_addomotd.c
src/m_wallops.obj: src/modules/m_wallops.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_wallops.c
src/m_admin.obj: src/modules/m_admin.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_admin.c
src/m_globops.obj: src/modules/m_globops.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_globops.c
src/m_locops.obj: src/modules/m_locops.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_locops.c
src/m_chatops.obj: src/modules/m_chatops.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_chatops.c
src/m_trace.obj: src/modules/m_trace.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_trace.c
src/m_netinfo.obj: src/modules/m_netinfo.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_netinfo.c
src/m_links.obj: src/modules/m_links.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_links.c
src/m_help.obj: src/modules/m_help.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_help.c
src/m_rules.obj: src/modules/m_rules.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_rules.c
src/m_close.obj: src/modules/m_close.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_close.c
src/m_map.obj: src/modules/m_map.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_map.c
src/m_eos.obj: src/modules/m_eos.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_eos.c
src/m_server.obj: src/modules/m_server.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_server.c
src/m_stats.obj: src/modules/m_stats.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_stats.c
src/m_svsfline.obj: src/modules/m_svsfline.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svsfline.c
src/m_dccdeny.obj: src/modules/m_dccdeny.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_dccdeny.c
src/m_undccdeny.obj: src/modules/m_undccdeny.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_undccdeny.c
src/m_whowas.obj: src/modules/m_whowas.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_whowas.c
src/m_connect.obj: src/modules/m_connect.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_connect.c
src/win32/win32.res: src/win32/win32gui.rc
$(RC) /l 0x409 /fosrc/win32/win32.res /i ./include /i ./src \
/d NDEBUG src/win32/win32gui.rc
@@ -634,6 +442,328 @@ src/win32/unreal.res: src/win32/unreal.rc
$(RC) /l 0x409 /fosrc/win32/unreal.res /i ./include /i ./src \
/d NDEBUG src/win32/unreal.rc
################# Modules #################
CUSTOMMODULE: src/modules/$(MODULEFILE).c
$(CC) $(MODCFLAGS) src/modules/$(MODULEFILE).c $(MODLFLAGS) \
/OUT:src/modules/$(MODULEFILE).dll $(EXLIBS)
SYMBOLFILE:
$(CC) src/win32/def-clean.c
dlltool --output-def wircd.def.in --export-all-symbols $(EXP_OBJ_FILES)
def-clean wircd.def.in wircd.def
MODULES: $(DLL_FILES)
src/modules/commands.dll: $(MOD_FILES) $(INCLUDES)
$(CC) $(MODDBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /nologo \
$(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /Fosrc/modules/ \
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE $(MOD_FILES) \
$(MODLFLAGS) src/win32/tre.lib /OUT:src/modules/commands.dll
src/modules/m_chghost.dll: src/modules/m_chghost.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_chghost.c $(MODLFLAGS)
src/modules/m_chgident.dll: src/modules/m_chgident.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_chgident.c $(MODLFLAGS)
src/modules/m_sdesc.dll: src/modules/m_sdesc.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_sdesc.c $(MODLFLAGS)
src/modules/m_sethost.dll: src/modules/m_sethost.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_sethost.c $(MODLFLAGS)
src/modules/m_setident.dll: src/modules/m_setident.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_setident.c $(MODLFLAGS)
src/modules/m_setname.dll: src/modules/m_setname.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_setname.c $(MODLFLAGS)
src/modules/m_svsmotd.dll: src/modules/m_svsmotd.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svsmotd.c $(MODLFLAGS)
src/modules/m_svsmode.dll: src/modules/m_svsmode.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svsmode.c $(MODLFLAGS)
src/modules/m_tkl.dll: src/modules/m_tkl.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_tkl.c $(MODLFLAGS) src/win32/tre.lib
src/modules/m_swhois.dll: src/modules/m_swhois.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_swhois.c $(MODLFLAGS)
src/modules/m_svsnline.dll: src/modules/m_svsnline.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svsnline.c $(MODLFLAGS)
src/modules/m_who.dll: src/modules/m_who.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_who.c $(MODLFLAGS)
src/modules/m_away.dll: src/modules/m_away.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_away.c $(MODLFLAGS)
src/modules/m_mkpasswd.dll: src/modules/m_mkpasswd.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_mkpasswd.c $(MODLFLAGS)
src/modules/m_svsnoop.dll: src/modules/m_svsnoop.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svsnoop.c $(MODLFLAGS)
src/modules/m_svso.dll: src/modules/m_svso.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svso.c $(MODLFLAGS)
src/modules/m_svsnick.dll: src/modules/m_svsnick.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svsnick.c $(MODLFLAGS)
src/modules/m_adminchat.dll: src/modules/m_adminchat.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_adminchat.c $(MODLFLAGS)
src/modules/m_akill.dll: src/modules/m_akill.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_akill.c $(MODLFLAGS)
src/modules/m_chgname.dll: src/modules/m_chgname.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_chgname.c $(MODLFLAGS)
src/modules/m_guest.dll: src/modules/m_guest.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_guest.c $(MODLFLAGS)
src/modules/m_htm.dll: src/modules/m_htm.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_htm.c $(MODLFLAGS)
src/modules/m_kill.dll: src/modules/m_kill.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_kill.c $(MODLFLAGS)
src/modules/m_lag.dll: src/modules/m_lag.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_lag.c $(MODLFLAGS)
src/modules/m_message.dll: src/modules/m_message.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_message.c $(MODLFLAGS)
src/modules/m_nachat.dll: src/modules/m_nachat.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_nachat.c $(MODLFLAGS)
src/modules/m_oper.dll: src/modules/m_oper.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_oper.c $(MODLFLAGS)
src/modules/m_pingpong.dll: src/modules/m_pingpong.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_pingpong.c $(MODLFLAGS)
src/modules/m_quit.dll: src/modules/m_quit.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_quit.c $(MODLFLAGS)
src/modules/m_rakill.dll: src/modules/m_rakill.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_rakill.c $(MODLFLAGS)
src/modules/m_rping.dll: src/modules/m_rping.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_rping.c $(MODLFLAGS)
src/modules/m_sendumode.dll: src/modules/m_sendumode.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_sendumode.c $(MODLFLAGS)
src/modules/m_sqline.dll: src/modules/m_sqline.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_sqline.c $(MODLFLAGS)
src/modules/m_tsctl.dll: src/modules/m_tsctl.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_tsctl.c $(MODLFLAGS)
src/modules/m_unkline.dll: src/modules/m_unkline.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_unkline.c $(MODLFLAGS)
src/modules/m_unsqline.dll: src/modules/m_unsqline.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_unsqline.c $(MODLFLAGS)
src/modules/m_unzline.dll: src/modules/m_unzline.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_unzline.c $(MODLFLAGS)
src/modules/m_whois.dll: src/modules/m_whois.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_whois.c $(MODLFLAGS)
src/modules/m_vhost.dll: src/modules/m_vhost.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_vhost.c $(MODLFLAGS)
src/modules/m_cycle.dll: src/modules/m_cycle.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_cycle.c $(MODLFLAGS)
src/modules/m_svsjoin.dll: src/modules/m_svsjoin.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svsjoin.c $(MODLFLAGS)
src/modules/m_svspart.dll: src/modules/m_svspart.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svspart.c $(MODLFLAGS)
src/modules/m_svslusers.dll: src/modules/m_svslusers.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svslusers.c $(MODLFLAGS)
src/modules/m_svswatch.dll: src/modules/m_svswatch.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svswatch.c $(MODLFLAGS)
src/modules/m_svssilence.dll: src/modules/m_svssilence.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svssilence.c $(MODLFLAGS)
src/modules/m_sendsno.dll: src/modules/m_sendsno.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_sendsno.c $(MODLFLAGS)
src/modules/m_svssno.dll: src/modules/m_svssno.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svssno.c $(MODLFLAGS)
src/modules/m_sajoin.dll: src/modules/m_sajoin.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_sajoin.c $(MODLFLAGS)
src/modules/m_sapart.dll: src/modules/m_sapart.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_sapart.c $(MODLFLAGS)
src/modules/m_samode.dll: src/modules/m_samode.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_samode.c $(MODLFLAGS)
src/modules/m_kick.dll: src/modules/m_kick.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_kick.c $(MODLFLAGS)
src/modules/m_topic.dll: src/modules/m_topic.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_topic.c $(MODLFLAGS)
src/modules/m_invite.dll: src/modules/m_invite.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_invite.c $(MODLFLAGS)
src/modules/m_list.dll: src/modules/m_list.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_list.c $(MODLFLAGS)
src/modules/m_time.dll: src/modules/m_time.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_time.c $(MODLFLAGS)
src/modules/m_svskill.dll: src/modules/m_svskill.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svskill.c $(MODLFLAGS)
src/modules/m_sjoin.dll: src/modules/m_sjoin.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_sjoin.c $(MODLFLAGS)
src/modules/m_pass.dll: src/modules/m_pass.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_pass.c $(MODLFLAGS)
src/modules/m_userhost.dll: src/modules/m_userhost.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_userhost.c $(MODLFLAGS)
src/modules/m_ison.dll: src/modules/m_ison.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_ison.c $(MODLFLAGS)
src/modules/m_silence.dll: src/modules/m_silence.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_silence.c $(MODLFLAGS)
src/modules/m_knock.dll: src/modules/m_knock.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_knock.c $(MODLFLAGS)
src/modules/m_umode2.dll: src/modules/m_umode2.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_umode2.c $(MODLFLAGS)
src/modules/m_squit.dll: src/modules/m_squit.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_squit.c $(MODLFLAGS)
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)
src/modules/m_addomotd.dll: src/modules/m_addomotd.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_addomotd.c $(MODLFLAGS)
src/modules/m_wallops.dll: src/modules/m_wallops.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_wallops.c $(MODLFLAGS)
src/modules/m_admin.dll: src/modules/m_admin.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_admin.c $(MODLFLAGS)
src/modules/m_globops.dll: src/modules/m_globops.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_globops.c $(MODLFLAGS)
src/modules/m_locops.dll: src/modules/m_locops.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_locops.c $(MODLFLAGS)
src/modules/m_chatops.dll: src/modules/m_chatops.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_chatops.c $(MODLFLAGS)
src/modules/m_trace.dll: src/modules/m_trace.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_trace.c $(MODLFLAGS)
src/modules/m_netinfo.dll: src/modules/m_netinfo.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_netinfo.c $(MODLFLAGS)
src/modules/m_links.dll: src/modules/m_links.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_links.c $(MODLFLAGS)
src/modules/m_help.dll: src/modules/m_help.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_help.c $(MODLFLAGS)
src/modules/m_rules.dll: src/modules/m_rules.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_rules.c $(MODLFLAGS)
src/modules/m_close.dll: src/modules/m_close.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_close.c $(MODLFLAGS)
src/modules/m_map.dll: src/modules/m_map.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_map.c $(MODLFLAGS)
src/modules/m_eos.dll: src/modules/m_eos.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_eos.c $(MODLFLAGS)
src/modules/m_server.dll: src/modules/m_server.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_server.c $(MODLFLAGS)
src/modules/m_stats.dll: src/modules/m_stats.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_stats.c $(MODLFLAGS)
src/modules/m_svsfline.dll: src/modules/m_svsfline.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_svsfline.c $(MODLFLAGS)
src/modules/m_dccdeny.dll: src/modules/m_dccdeny.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_dccdeny.c $(MODLFLAGS)
src/modules/m_undccdeny.dll: src/modules/m_undccdeny.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_undccdeny.c $(MODLFLAGS)
src/modules/m_whowas.dll: src/modules/m_whowas.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_whowas.c $(MODLFLAGS)
src/modules/m_connect.dll: src/modules/m_connect.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_connect.c $(MODLFLAGS)
src/modules/m_dccallow.dll: src/modules/m_dccallow.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_dccallow.c $(MODLFLAGS)
src/modules/m_userip.dll: src/modules/m_userip.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_userip.c $(MODLFLAGS)
src/modules/m_nick.dll: src/modules/m_nick.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_nick.c $(MODLFLAGS)
src/modules/m_user.dll: src/modules/m_user.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_user.c $(MODLFLAGS)
src/modules/m_mode.dll: src/modules/m_mode.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_mode.c $(MODLFLAGS)
src/modules/m_watch.dll: src/modules/m_watch.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_watch.c $(MODLFLAGS)
src/modules/m_part.dll: src/modules/m_part.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_part.c $(MODLFLAGS)
src/modules/m_join.dll: src/modules/m_join.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_join.c $(MODLFLAGS)
src/modules/m_motd.dll: src/modules/m_motd.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_motd.c $(MODLFLAGS)
src/modules/m_opermotd.dll: src/modules/m_opermotd.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_opermotd.c $(MODLFLAGS)
src/modules/m_botmotd.dll: src/modules/m_botmotd.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_botmotd.c $(MODLFLAGS)
src/modules/m_lusers.dll: src/modules/m_lusers.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/m_lusers.c $(MODLFLAGS)
src/modules/cloak.dll: src/modules/cloak.c $(INCLUDES)
$(CC) $(MODCFLAGS) src/modules/cloak.c $(MODLFLAGS)
dummy:
+39 -9
View File
@@ -14,17 +14,17 @@
*/
spamfilter {
regex "(.+ ){20}";
target dcc;
regex "\x01DCC (SEND|RESUME)[ ]+\"(.+ ){20}";
target { private; channel; };
reason "mIRC 6.0-6.11 exploit attempt";
action kill;
};
spamfilter {
regex ".{225}";
target dcc;
reason "mIRC 6.12 exploit attempt";
action block;
regex "\x01DCC (SEND|RESUME).{225}";
target { private; channel; };
reason "Possible mIRC 6.12 exploit attempt";
action kill;
};
spamfilter {
@@ -149,20 +149,20 @@ spamfilter {
spamfilter {
regex ".*(http://jokes\.clubdepeche\.com|http://horny\.69sexy\.net|http://private\.a123sdsdssddddgfg\.com).*";
target private;
action block;
action gline;
reason "Infected by LOI trojan"; /* Name is still unsure */
};
/* This is a 'general sig' which might have a tad more false positives, hence just 'block' is used */
spamfilter {
regex "C:\\WINNT\\system32\\[][0-9a-z_-{|}`]+\.zip";
regex "C:\\\\WINNT\\\\system32\\\\[][0-9a-z_-{|}`]+\.zip";
target dcc;
action block;
reason "Infected by Gaggle worm?";
};
spamfilter {
regex "C:\\WINNT\\system32\\(notes|videos|xxx|ManualSeduccion|postal|hechizos|images|sex|avril)\.zip";
regex "C:\\\\WINNT\\\\system32\\\\(notes|videos|xxx|ManualSeduccion|postal|hechizos|images|sex|avril)\.zip";
target dcc;
action dccblock;
reason "Infected by Gaggle worm";
@@ -174,3 +174,33 @@ spamfilter {
action block;
reason "Infected by Gaggle worm";
};
spamfilter {
regex "^Free porn pic.? and movies (www\.sexymovies\.da\.ru|www\.girlporn\.org)";
target private;
reason "Unknown virus. Site causes Backdoor.Delf.lq infection";
action block;
};
spamfilter {
regex "^LOL! //echo -a \$\(\$decode\(.+,m\),[0-9]\)$";
target channel;
reason "$decode exploit";
action block;
};
/*
spamfilter {
regex "//write \$decode\(.+\|.+load -rs";
target { private; channel; };
reason "Generic $decode exploit";
action block;
};
*/
spamfilter {
regex "^Want To Be An IRCOp\? Try This New Bug Type: //write \$decode\(.+=.?,m\) \| \.load -rs \$decode\(.+=.?,m\)$";
target private;
action block;
reason "Spamming users with an mIRC trojan. Type '/unload -rs newb' to remove the trojan.";
};
+52 -38
View File
@@ -21,15 +21,14 @@
CC = danger will robinson
OBJS=auth.o aln.o badwords.o channel.o cloak.o crule.o dbuf.o \
OBJS=res.o s_bsd.o auth.o aln.o badwords.o channel.o cloak.o crule.o dbuf.o \
events.o fdlist.o hash.o help.o ircd.o ircsprintf.o list.o lusers.o \
match.o modules.o packet.o parse.o res.o \
res_init.o res_comp.o res_mkquery.o res_skipname.o s_auth.o \
s_bsd.o s_conf.o s_debug.o s_err.o s_extra.o s_kline.o \
match.o modules.o packet.o parse.o s_auth.o \
s_conf.o s_debug.o s_err.o s_extra.o s_kline.o \
s_misc.o s_numeric.o s_serv.o s_svs.o $(STRTOUL) socket.o \
ssl.o s_user.o scache.o send.o support.o umodes.o \
ssl.o s_user.o charsys.o scache.o send.o support.o umodes.o \
version.o webtv.o whowas.o zip.o cidr.o random.o extcmodes.o \
extbans.o $(URL)
extbans.o md5.o api-isupport.o api-command.o $(URL)
SRC=$(OBJS:%.o=%.c)
@@ -44,10 +43,17 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
MAKE = make $(MAKEARGS)
INCLUDES = ../include/struct.h ../include/config.h \
../include/sys.h ../include/common.h ../include/version.h \
../include/h.h ../include/numeric.h ../include/msg.h \
../include/dynconf.h ../include/modules.h ../include/setup.h
INCLUDES = ../include/auth.h ../include/badwords.h ../include/channel.h \
../include/class.h ../include/common.h ../include/config.h ../include/dbuf.h \
../include/dynconf.h ../include/events.h ../include/fdlist.h ../include/h.h \
../include/hash.h ../include/inet.h ../include/ircsprintf.h \
../include/license.h ../include/macros.h ../include/md5.h \
../include/modules.h ../include/modversion.h ../include/msg.h ../include/nameser.h \
../include/numeric.h ../include/proto.h \
../include/resource.h ../include/setup.h ../include/sjoin.h \
../include/sock.h ../include/ssl.h ../include/struct.h ../include/sys.h \
../include/threads.h ../include/types.h ../include/url.h \
../include/version.h ../include/whowas.h ../include/zip.h
all: build
@@ -93,7 +99,7 @@ socket.o: socket.c $(INCLUDES)
dbuf.o: dbuf.c $(INCLUDES) ../include/dbuf.h
dbuf.o: dbuf.c $(INCLUDES)
$(CC) $(CFLAGS) -c dbuf.c
packet.o: packet.c $(INCLUDES)
@@ -162,74 +168,73 @@ cleandir: clean
depend:
makedepend -I${INCLUDEDIR} ${SRC}
channel.o: channel.c $(INCLUDES) ../include/channel.h
channel.o: channel.c $(INCLUDES)
$(CC) $(CFLAGS) -c channel.c
ircd.o: ircd.c ../include/dbuf.h $(INCLUDES)
ircd.o: ircd.c $(INCLUDES)
$(CC) $(CFLAGS) -c ircd.c
list.o: list.c ../include/dbuf.h $(INCLUDES)
list.o: list.c $(INCLUDES)
$(CC) $(CFLAGS) -c list.c
lusers.o: lusers.c ../include/dbuf.h $(INCLUDES)
lusers.o: lusers.c $(INCLUDES)
$(CC) $(CFLAGS) -c lusers.c
res.o: res.c ../include/res.h $(INCLUDES)
res.o: res.c $(INCLUDES) ../include/res.h
$(CC) $(CFLAGS) -c res.c
cloak.o: cloak.c ../include/res.h $(INCLUDES)
cloak.o: cloak.c $(INCLUDES)
$(CC) $(CFLAGS) -c cloak.c
fdlist.o: fdlist.c ../include/fdlist.h $(INCLUDES)
fdlist.o: fdlist.c $(INCLUDES)
$(CC) $(CFLAGS) -c fdlist.c
s_bsd.o: s_bsd.c ../include/dbuf.h $(INCLUDES)
s_bsd.o: s_bsd.c $(INCLUDES) ../include/res.h
$(CC) $(CFLAGS) -c s_bsd.c
s_auth.o: s_auth.c ../include/dbuf.h $(INCLUDES)
s_auth.o: s_auth.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_auth.c
s_conf.o: s_conf.c ../include/dbuf.h $(INCLUDES)
s_conf.o: s_conf.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_conf.c
s_debug.o: ../include/sys.h s_debug.c $(INCLUDES)
s_debug.o: s_debug.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_debug.c
s_err.o: ../include/msg.h s_err.c $(INCLUDES)
s_err.o: s_err.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_err.c
s_misc.o: s_misc.c ../include/dbuf.h $(INCLUDES)
s_misc.o: s_misc.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_misc.c
scache.o: scache.c ../include/dbuf.h $(INCLUDES)
scache.o: scache.c $(INCLUDES)
$(CC) $(CFLAGS) -c scache.c
ircsprintf.o: ircsprintf.c ../include/dbuf.h $(INCLUDES)
ircsprintf.o: ircsprintf.c $(INCLUDES)
$(CC) $(CFLAGS) -c ircsprintf.c
s_user.o: s_user.c $(INCLUDES) \
../include/dbuf.h ../include/channel.h ../include/whowas.h
s_user.o: s_user.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_user.c
s_extra.o: s_extra.c $(INCLUDES) \
s_numeric.c ../include/dbuf.h ../include/channel.h ../include/whowas.h
charsys.o: charsys.c $(INCLUDES)
$(CC) $(CFLAGS) -c charsys.c
s_extra.o: s_extra.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_extra.c
s_kline.o: s_kline.c $(INCLUDES) \
s_numeric.c ../include/dbuf.h ../include/channel.h ../include/whowas.h
s_kline.o: s_kline.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_kline.c
s_serv.o: s_serv.c $(INCLUDES) \
../include/dbuf.h ../include/whowas.h
s_serv.o: s_serv.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_serv.c
s_numeric.o: s_numeric.c ../include/dbuf.h $(INCLUDES)
s_numeric.o: s_numeric.c $(INCLUDES)
$(CC) $(CFLAGS) -c s_numeric.c
whowas.o: whowas.c ../include/dbuf.h ../include/whowas.h $(INCLUDES)
whowas.o: whowas.c $(INCLUDES)
$(CC) $(CFLAGS) -c whowas.c
hash.o: hash.c ../include/hash.h $(INCLUDES)
hash.o: hash.c $(INCLUDES)
$(CC) $(CFLAGS) -c hash.c
crule.o: crule.c $(INCLUDES)
@@ -247,7 +252,16 @@ extcmodes.o: extcmodes.c $(INCLUDES)
extbans.o: extbans.c $(INCLUDES)
$(CC) $(CFLAGS) -c extbans.c
url.o: url.c $(INCLUDES) ../include/url.h
md5.o: md5.c $(INCLUDES)
$(CC) $(CFLAGS) -c md5.c
api-command.o: api-command.c $(INCLUDES)
$(CC) $(CFLAGS) -c api-command.c
api-isupport.o: api-isupport.c $(INCLUDES)
$(CC) $(CFLAGS) -c api-isupport.c
url.o: url.c $(INCLUDES)
$(CC) $(CFLAGS) -c url.c
# DO NOT DELETE THIS LINE -- make depend depends on it.
+7 -6
View File
@@ -232,13 +232,14 @@ static inline char *int_to_base64(long val)
base64buf[i] = '\0';
/* Temporary debugging code.. remove before 2038 ;p */
if (val > 2147483646)
/* Temporary debugging code.. remove before 2038 ;p.
* This might happen in case of 64bit longs (opteron/ia64),
* if the value is then too large it can easily lead to
* a buffer underflow and thus to a crash. -- Syzop
*/
if (val > 2147483647L)
{
snprintf(trouble_info, sizeof(trouble_info),
"[BUG] int_to_base64() called for insane value %ld. Please report!", val);
ircd_log(LOG_ERROR, "%s", trouble_info);
val = 2147483647L; /* prevent buffer overflow */
abort();
}
do
+149
View File
@@ -0,0 +1,149 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, src/api-command.c
* Copyright (C) 2004 Dominick Meglio and The UnrealIRCd Team
*
* 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.
*/
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "msg.h"
#include "h.h"
#include <string.h>
char *cmdstr = NULL;
int CommandExists(char *name)
{
aCommand *p;
for (p = CommandHash[toupper(*name)]; p; p = p->next)
{
if (!stricmp(p->cmd, name))
return 1;
}
for (p = TokenHash[*name]; p; p = p->next)
{
if (!strcmp(p->cmd, name))
return 1;
}
return 0;
}
Command *CommandAdd(Module *module, char *cmd, char *tok, int (*func)(), unsigned char params, int flags) {
Command *command;
if (find_Command_simple(cmd) || (tok && find_Command_simple(tok)))
{
if (module)
module->errorcode = MODERR_EXISTS;
return NULL;
}
command = MyMallocEx(sizeof(Command));
command->cmd = add_Command_backend(cmd,func,params, 0, flags);
command->tok = NULL;
command->cmd->owner = module;
if (tok) {
command->tok = add_Command_backend(tok,func,params,1,flags);
command->cmd->friend = command->tok;
command->tok->friend = command->cmd;
command->tok->owner = module;
}
else
command->cmd->friend = NULL;
if (module) {
ModuleObject *cmdobj = (ModuleObject *)MyMallocEx(sizeof(ModuleObject));
cmdobj->object.command = command;
cmdobj->type = MOBJ_COMMAND;
AddListItem(cmdobj, module->objects);
module->errorcode = MODERR_NOERROR;
}
if (flags & M_ANNOUNCE)
{
char *tmp;
if (cmdstr)
tmp = MyMallocEx(strlen(cmdstr)+strlen(cmd)+2);
else
tmp = MyMallocEx(strlen(cmd)+2);
if (cmdstr)
{
strcpy(tmp, cmdstr);
strcat(tmp, ",");
}
strcat(tmp, cmd);
if (cmdstr)
{
IsupportSetValue(IsupportFind("CMDS"), tmp);
free(cmdstr);
}
else
IsupportAdd(NULL, "CMDS", tmp);
cmdstr = tmp;
}
return command;
}
void CommandDel(Command *command) {
Cmdoverride *ovr, *ovrnext;
if (command->cmd->flags & M_ANNOUNCE)
{
char *tmp = MyMallocEx(strlen(cmdstr)+1);
char *tok;
for (tok = strtok(cmdstr, ","); tok; tok = strtok(NULL, ","))
{
if (!stricmp(tok, command->cmd->cmd))
continue;
if (tmp)
strcat(tmp, ",");
strcat(tmp, tok);
}
free(cmdstr);
if (!*tmp)
{
IsupportDel(IsupportFind("CMDS"));
cmdstr = NULL;
}
else
cmdstr = tmp;
}
DelListItem(command->cmd, CommandHash[toupper(*command->cmd->cmd)]);
if (command->tok)
DelListItem(command->tok, TokenHash[*command->tok->cmd]);
if (command->cmd->owner) {
ModuleObject *cmdobj;
for (cmdobj = command->cmd->owner->objects; cmdobj; cmdobj = (ModuleObject *)cmdobj->next) {
if (cmdobj->type == MOBJ_COMMAND && cmdobj->object.command == command) {
DelListItem(cmdobj,command->cmd->owner->objects);
MyFree(cmdobj);
break;
}
}
}
for (ovr = command->cmd->overriders; ovr; ovr = ovrnext)
{
ovrnext = ovr->next;
CmdoverrideDel(ovr);
}
MyFree(command->cmd->cmd);
MyFree(command->cmd);
if (command->tok) {
MyFree(command->tok->cmd);
MyFree(command->tok);
}
MyFree(command);
}
+272
View File
@@ -0,0 +1,272 @@
/************************************************************************
* UnrealIRCd - Unreal Internet Relay Chat Daemon - src/api-isupport.c
* (c) 2004 Dominick Meglio and the UnrealIRCd Team
*
* See file AUTHORS in IRC package for additional names of
* the programmers.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* 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$
*/
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include "version.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <fcntl.h>
#include "h.h"
#include "proto.h"
Isupport *Isupports; /* List of ISUPPORT (005) tokens */
MODVAR char *IsupportStrings[5] = {0,0,0,0,0}; /* If we get more than 5 strings, God help us! */
extern char *cmdstr;
/**
* Builds isupport token strings.
* Respects both the 13 token limit and the 512 buffer limit.
*/
void make_isupportstrings(void)
{
int i;
int bufsize = BUFSIZE-HOSTLEN-NICKLEN-39;
int tokcnt = 0, len = 0;
Isupport *isupport;
/* Clear out the old junk */
for (i = 0; IsupportStrings[i]; i++)
{
free(IsupportStrings[i]);
IsupportStrings[i] = NULL;
}
i = 0;
IsupportStrings[i] = MyMallocEx(bufsize);
for (isupport = Isupports; isupport; isupport = isupport->next)
{
int toklen;
/* Just a token */
if (!isupport->value)
{
toklen = strlen(isupport->token);
if (tokcnt == 13 || bufsize < len+toklen+1)
{
tokcnt = 0;
len = 0;
IsupportStrings[++i] = MyMallocEx(bufsize);
}
if (IsupportStrings[i][0])
{
strcat(IsupportStrings[i], " ");
toklen++;
}
strcat(IsupportStrings[i], isupport->token);
len += toklen;
tokcnt++;
}
else
{
toklen = strlen(isupport->token)+strlen(isupport->value)+1;
if (tokcnt == 13 || bufsize < len+toklen+1)
{
tokcnt = 0;
len = 0;
IsupportStrings[++i] = MyMallocEx(bufsize);
}
if (IsupportStrings[i][0])
{
strcat(IsupportStrings[i], " ");
toklen++;
}
strcat(IsupportStrings[i], isupport->token);
strcat(IsupportStrings[i], "=");
strcat(IsupportStrings[i], isupport->value);
len += toklen;
tokcnt++;
}
}
}
/**
* Initializes the builtin isupport tokens.
*/
void isupport_init(void)
{
char tmpbuf[512];
IsupportAdd(NULL, "INVEX", NULL);
IsupportAdd(NULL, "EXCEPTS", NULL);
#ifdef PREFIX_AQ
IsupportAdd(NULL, "STATUSMSG", "~&@%+");
#else
IsupportAdd(NULL, "STATUSMSG", "@%+");
#endif
IsupportAdd(NULL, "ELIST", "MNUCT");
ircsprintf(tmpbuf, "~,%s", extbanstr);
IsupportAdd(NULL, "EXTBAN", tmpbuf);
IsupportAdd(NULL, "CASEMAPPING", "ascii");
IsupportAdd(NULL, "NETWORK", ircnet005);
ircsprintf(tmpbuf, CHPAR1 "%s," CHPAR2 "%s," CHPAR3 "%s," CHPAR4 "%s",
EXPAR1, EXPAR2, EXPAR3, EXPAR4);
IsupportAdd(NULL, "CHANMODES", tmpbuf);
IsupportAdd(NULL, "PREFIX", CHPFIX);
IsupportAdd(NULL, "CHANTYPES", "#");
IsupportAdd(NULL, "MODES", my_itoa(MAXMODEPARAMS));
IsupportAdd(NULL, "SILENCE", my_itoa(SILENCE_LIMIT));
IsupportAdd(NULL, "WATCH", my_itoa(MAXWATCH));
IsupportAdd(NULL, "WALLCHOPS", NULL);
IsupportAdd(NULL, "MAXTARGETS", my_itoa(MAXTARGETS));
IsupportAdd(NULL, "AWAYLEN", my_itoa(TOPICLEN));
IsupportAdd(NULL, "KICKLEN", my_itoa(TOPICLEN));
IsupportAdd(NULL, "TOPICLEN", my_itoa(TOPICLEN));
IsupportAdd(NULL, "CHANNELLEN", my_itoa(CHANNELLEN));
IsupportAdd(NULL, "NICKLEN", my_itoa(NICKLEN));
ircsprintf(tmpbuf, "b:%d,e:%d,I:%d", MAXBANS, MAXBANS, MAXBANS);
IsupportAdd(NULL, "MAXLIST", tmpbuf);
ircsprintf(tmpbuf, "#:%d", MAXCHANNELSPERUSER);
IsupportAdd(NULL, "CHANLIMIT", tmpbuf);
IsupportAdd(NULL, "MAXCHANNELS", my_itoa(MAXCHANNELSPERUSER));
IsupportAdd(NULL, "HCN", NULL);
IsupportAdd(NULL, "SAFELIST", NULL);
if (cmdstr)
IsupportAdd(NULL, "CMDS", cmdstr);
}
/**
* Sets or changes the value of an existing isupport token.
*
* @param isupport The pointer to the isupport handle.
* @param value The new value of the token (NULL indicates no value).
*/
void IsupportSetValue(Isupport *isupport, const char *value)
{
if (isupport->value)
free(isupport->value);
if (value)
isupport->value = strdup(value);
else
isupport->value = NULL;
make_isupportstrings();
}
/**
* Returns an isupport handle based on the given token name.
*
* @param token The isupport token to search for.
* @return Returns the handle to the isupport token if it was found,
* otherwise NULL is returned.
*/
Isupport *IsupportFind(const char *token)
{
Isupport *isupport;
for (isupport = Isupports; isupport; isupport = isupport->next)
{
if (!stricmp(token, isupport->token))
return isupport;
}
return NULL;
}
/**
* Adds a new isupport token.
*
* @param module The module which owns this token.
* @param token The name of the token to create.
* @param value The value of the token (NULL indicates no value).
* @return Returns the handle to the new token if successful, otherwise NULL.
* The module's error code contains specific information about the
* error.
*/
Isupport *IsupportAdd(Module *module, const char *token, const char *value)
{
Isupport *isupport;
char *c;
if (IsupportFind(token))
{
if (module)
module->errorcode = MODERR_EXISTS;
return NULL;
}
/* draft-brocklesby-irc-isupport:
* token = a-zA-Z0-9 and 20 or less characters
* value = ASCII 0x21 - 0x7E
*/
for (c = (char *)token; c && *c; c++)
{
if (!isalnum(*c))
{
if (module)
module->errorcode = MODERR_INVALID;
return NULL;
}
}
if (!token || !*token || c-token > 20)
{
if (module)
module->errorcode = MODERR_INVALID;
return NULL;
}
for (c = (char *)value; c && *c; c++)
{
if (*c < '!' || *c > '~')
{
if (module)
module->errorcode = MODERR_INVALID;
return NULL;
}
}
isupport = MyMallocEx(sizeof(Isupport));
isupport->owner = module;
isupport->token = strdup(token);
if (value)
isupport->value = strdup(value);
AddListItem(isupport, Isupports);
make_isupportstrings();
if (module)
{
ModuleObject *isupportobj = MyMallocEx(sizeof(ModuleObject));
isupportobj->object.isupport = isupport;
isupportobj->type = MOBJ_ISUPPORT;
AddListItem(isupportobj, module->objects);
module->errorcode = MODERR_NOERROR;
}
return isupport;
}
/**
* Removes the specified isupport token.
*
* @param isupport The token to remove.
*/
void IsupportDel(Isupport *isupport)
{
DelListItem(isupport, Isupports);
free(isupport->token);
if (isupport->value)
free(isupport->value);
free(isupport);
make_isupportstrings();
}
+459 -186
View File
@@ -39,16 +39,14 @@
#include <fcntl.h>
#include "h.h"
anAuthStruct AuthTypes[] = {
anAuthStruct MODVAR AuthTypes[] = {
{"plain", AUTHTYPE_PLAINTEXT},
{"plaintext", AUTHTYPE_PLAINTEXT},
#ifdef AUTHENABLE_UNIXCRYPT
{"crypt", AUTHTYPE_UNIXCRYPT},
{"unixcrypt", AUTHTYPE_UNIXCRYPT},
#endif
#ifdef AUTHENABLE_MD5
{"md5", AUTHTYPE_MD5},
#endif
#ifdef AUTHENABLE_SHA1
{"sha1", AUTHTYPE_SHA1},
#endif
@@ -174,6 +172,269 @@ void Auth_DeleteAuthStruct(anAuthStruct *as)
MyFree(as);
}
/* Both values are pretty insane as of 2004, but... just in case. */
#define MAXSALTLEN 127
#define MAXHASHLEN 255
/* RAW salt length (before b64_encode) to use in /MKPASSWD
* and REAL salt length (after b64_encode, including terminating nul),
* used for reserving memory.
*/
#define RAWSALTLEN 6
#define REALSALTLEN 12
/** Parses a password.
* This routine can parse a pass that has a salt (new as of unreal 3.2.1)
* and will set the 'salt' pointer and 'hash' accordingly.
* RETURN VALUES:
* 1 If succeeded, salt and hash can be used.
* 0 If it's a password without a salt ('old'), salt and hash are not touched.
*/
static int parsepass(char *str, char **salt, char **hash)
{
static char saltbuf[MAXSALTLEN+1], hashbuf[MAXHASHLEN+1];
char *p;
int max;
/* Syntax: $<salt>$<hash> */
if (*str != '$')
return 0;
p = strchr(str+1, '$');
if (!p || (p == str+1) || !p[1])
return 0;
max = p - str;
if (max > sizeof(saltbuf))
max = sizeof(saltbuf);
strlcpy(saltbuf, str+1, max);
strlcpy(hashbuf, p+1, sizeof(hashbuf));
*salt = saltbuf;
*hash = hashbuf;
return 1;
}
static int authcheck_md5(aClient *cptr, anAuthStruct *as, char *para)
{
static char buf[512];
int i, r;
char *saltstr, *hashstr;
if (!para)
return -1;
r = parsepass(as->data, &saltstr, &hashstr);
if (r == 0) /* Old method without salt: b64(MD5(<pass>)) */
{
char result[16];
DoMD5(result, para, strlen(para));
if ((i = b64_encode(result, sizeof(result), buf, sizeof(buf))))
{
if (!strcmp(buf, as->data))
return 2;
else
return -1;
} else
return -1;
} else {
/* New method with salt: b64(MD5(MD5(<pass>)+salt)) */
char result1[MAXSALTLEN+16+1];
char result2[16];
char rsalt[MAXSALTLEN+1];
int rsaltlen;
/* First, decode the salt to something real... */
rsaltlen = b64_decode(saltstr, rsalt, sizeof(rsalt));
if (rsaltlen <= 0)
return -1;
/* Then hash the password (1st round)... */
DoMD5(result1, para, strlen(para));
/* Add salt to result */
memcpy(result1+16, rsalt, rsaltlen); /* b64_decode already made sure bounds are ok */
/* Then hash it all together again (2nd round)... */
DoMD5(result2, result1, rsaltlen+16);
/* Then base64 encode it all and we are done... */
if ((i = b64_encode(result2, sizeof(result2), buf, sizeof(buf))))
{
if (!strcmp(buf, hashstr))
return 2;
else
return -1;
} else
return -1;
}
return -1; /* NOTREACHED */
}
#ifdef AUTHENABLE_SHA1
static int authcheck_sha1(aClient *cptr, anAuthStruct *as, char *para)
{
char buf[512];
int i, r;
char *saltstr, *hashstr;
if (!para)
return -1;
r = parsepass(as->data, &saltstr, &hashstr);
if (r)
{
/* New method with salt: b64(SHA1(SHA1(<pass>)+salt)) */
char result1[MAXSALTLEN+20+1];
char result2[20];
char rsalt[MAXSALTLEN+1];
int rsaltlen;
#ifndef _WIN32
SHA_CTX hash;
#else
HCRYPTPROV hProv;
HCRYPTHASH hHash;
DWORD size = 20;
#endif
/* First, decode the salt to something real... */
rsaltlen = b64_decode(saltstr, rsalt, sizeof(rsalt));
if (rsaltlen <= 0)
return -1;
#ifdef _WIN32
if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
return -1;
#endif
/* Then hash the password (1st round)... */
#ifndef _WIN32
SHA1_Init(&hash);
SHA1_Update(&hash, para, strlen(para));
SHA1_Final(result1, &hash);
#else
if (!CryptCreateHash(hProv, CALG_SHA1, 0, 0, &hHash)) return NULL;
if (!CryptHashData(hHash, para, strlen(para), 0)) return NULL;
if (!CryptGetHashParam(hHash, HP_HASHVAL, result1, &size, 0)) return NULL;
CryptDestroyHash(hHash);
#endif
/* Add salt to result */
memcpy(result1+20, rsalt, rsaltlen); /* b64_decode already made sure bounds are ok */
/* Then hash it all together again (2nd round)... */
#ifndef _WIN32
SHA1_Init(&hash);
SHA1_Update(&hash, result1, rsaltlen+20);
SHA1_Final(result2, &hash);
#else
if (!CryptCreateHash(hProv, CALG_SHA1, 0, 0, &hHash)) return NULL;
if (!CryptHashData(hHash, result1, 20+rsaltlen, 0)) return NULL;
if (!CryptGetHashParam(hHash, HP_HASHVAL, result2, &size, 0)) return NULL;
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
#endif
/* Then base64 encode it all and we are done... */
if ((i = b64_encode(result2, sizeof(result2), buf, sizeof(buf))))
{
if (!strcmp(buf, hashstr))
return 2;
else
return -1;
} else
return -1;
} else {
/* OLD auth */
#ifndef _WIN32
if ((i = b64_encode(SHA1(para, strlen(para), NULL), 20, buf, sizeof(buf))))
{
if (!strcmp(buf, as->data))
return 2;
else
return -1;
} else
return -1;
#else
HCRYPTPROV hProv;
HCRYPTHASH hHash;
char buf2[512];
DWORD size = 512;
if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT))
return -1;
if (!CryptCreateHash(hProv, CALG_SHA1, 0, 0, &hHash))
return -1;
if (!CryptHashData(hHash, para, strlen(para), 0))
return -1;
if (!CryptGetHashParam(hHash, HP_HASHVAL, buf, &size, 0))
return -1;
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
b64_encode(buf, 20, buf2, sizeof(buf2));
if (!strcmp(buf2, as->data))
return 2;
else
return -1;
#endif
}
}
#endif /* AUTHENABLE_SHA1 */
#ifdef AUTHENABLE_RIPEMD160
static int authcheck_ripemd160(aClient *cptr, anAuthStruct *as, char *para)
{
char buf[512];
int i, r;
char *saltstr, *hashstr;
if (!para)
return -1;
r = parsepass(as->data, &saltstr, &hashstr);
if (r)
{
/* New method with salt: b64(RIPEMD160(RIPEMD160(<pass>)+salt)) */
char result1[MAXSALTLEN+20+1];
char result2[20];
char rsalt[MAXSALTLEN+1];
int rsaltlen;
RIPEMD160_CTX hash;
/* First, decode the salt to something real... */
rsaltlen = b64_decode(saltstr, rsalt, sizeof(rsalt));
if (rsaltlen <= 0)
return -1;
/* Then hash the password (1st round)... */
RIPEMD160_Init(&hash);
RIPEMD160_Update(&hash, para, strlen(para));
RIPEMD160_Final(result1, &hash);
/* Add salt to result */
memcpy(result1+20, rsalt, rsaltlen); /* b64_decode already made sure bounds are ok */
/* Then hash it all together again (2nd round)... */
RIPEMD160_Init(&hash);
RIPEMD160_Update(&hash, result1, rsaltlen+20);
RIPEMD160_Final(result2, &hash);
/* Then base64 encode it all and we are done... */
if ((i = b64_encode(result2, sizeof(result2), buf, sizeof(buf))))
{
if (!strcmp(buf, hashstr))
return 2;
else
return -1;
} else
return -1;
} else {
/* OLD auth */
if ((i = b64_encode(RIPEMD160(para, strlen(para), NULL), 20, buf, sizeof(buf))))
{
if (!strcmp(buf, as->data))
return 2;
else
return -1;
} else
return -1;
}
}
#endif /* AUTHENABLE_RIPEMD160 */
/*
* cptr MUST be a local client
* as is what it will be compared with
@@ -192,16 +453,13 @@ int Auth_Check(aClient *cptr, anAuthStruct *as, char *para)
#ifdef AUTHENABLE_UNIXCRYPT
extern char *crypt();
#endif
#if defined(AUTHENABLE_MD5) || defined(AUTHENABLE_SHA1) || defined(AUTHENABLE_RIPEMD160)
static char buf[512];
int i;
#endif
#ifdef AUTHENABLE_SSL_CLIENTCERT
X509 *x509_clientcert = NULL;
X509 *x509_filecert = NULL;
FILE *x509_f = NULL;
#endif
if (!as)
return 1;
@@ -229,108 +487,17 @@ int Auth_Check(aClient *cptr, anAuthStruct *as, char *para)
return -1;
break;
#endif
#ifdef AUTHENABLE_MD5
case AUTHTYPE_MD5:
if (!para)
return -1;
#ifndef _WIN32
if ((i = b64_encode(MD5(para, strlen(para), NULL),
MD5_DIGEST_LENGTH, buf, sizeof(buf))))
{
if (!strcmp(buf, as->data))
return 2;
else
return -1;
}
else
return -1;
break;
#else
{
HCRYPTPROV hProv;
HCRYPTHASH hHash;
char buf2[512];
DWORD size = 512;
if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT))
return -1;
if (!CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
return -1;
if (!CryptHashData(hHash, para, strlen(para), 0))
return -1;
if (!CryptGetHashParam(hHash, HP_HASHVAL, buf, &size, 0))
return -1;
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
b64_encode(buf, 16, buf2, sizeof(buf2));
if (!strcmp(buf2, as->data))
return 2;
else
return -1;
}
return authcheck_md5(cptr, as, para);
break;
#endif
#endif
#ifdef AUTHENABLE_SHA1
case AUTHTYPE_SHA1:
if (!para)
return -1;
#ifndef _WIN32
if ((i = b64_encode(SHA1(para, strlen(para), NULL),
SHA_DIGEST_LENGTH, buf, sizeof(buf))))
{
if (!strcmp(buf, as->data))
return 2;
else
return -1;
}
else
return -1;
break;
#else
{
HCRYPTPROV hProv;
HCRYPTHASH hHash;
char buf2[512];
DWORD size = 512;
if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT))
return -1;
if (!CryptCreateHash(hProv, CALG_SHA1, 0, 0, &hHash))
return -1;
if (!CryptHashData(hHash, para, strlen(para), 0))
return -1;
if (!CryptGetHashParam(hHash, HP_HASHVAL, buf, &size, 0))
return -1;
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
b64_encode(buf, 20, buf2, sizeof(buf2));
if (!strcmp(buf2, as->data))
return 2;
else
return -1;
}
return authcheck_sha1(cptr, as, para);
break;
#endif
#endif
#ifdef AUTHENABLE_RIPEMD160
case AUTHTYPE_RIPEMD160:
if (!para)
return -1;
if ((i = b64_encode(RIPEMD160(para, strlen(para), NULL),
RIPEMD160_DIGEST_LENGTH, buf, sizeof(buf))))
{
if (!strcmp(buf, as->data))
return 2;
else
return -1;
}
else
return -1;
break;
return authcheck_ripemd160(cptr, as, para);
#endif
#ifdef AUTHENABLE_SSL_CLIENTCERT
case AUTHTYPE_SSL_CLIENTCERT:
@@ -367,19 +534,197 @@ int Auth_Check(aClient *cptr, anAuthStruct *as, char *para)
return -1;
}
static char *mkpass_md5(char *para)
{
static char buf[128];
char result1[16+REALSALTLEN];
char result2[16];
char saltstr[REALSALTLEN]; /* b64 encoded printable string*/
char saltraw[RAWSALTLEN]; /* raw binary */
char xresult[64];
int i;
if (!para) return NULL;
/* generate a random salt... */
for (i=0; i < RAWSALTLEN; i++)
saltraw[i] = getrandom8();
i = b64_encode(saltraw, RAWSALTLEN, saltstr, REALSALTLEN);
if (!i) return NULL;
/* b64(MD5(MD5(<pass>)+salt))
* ^^^^^^^^^^^
* step 1
* ^^^^^^^^^^^^^^^^^^^^^
* step 2
* ^^^^^^^^^^^^^^^^^^^^^^^^^^
* step 3
*/
/* STEP 1 */
DoMD5(result1, para, strlen(para));
/* STEP 2 */
/* add salt to result */
memcpy(result1+16, saltraw, RAWSALTLEN);
/* Then hash it all together */
DoMD5(result2, result1, RAWSALTLEN+16);
/* STEP 3 */
/* Then base64 encode it all together.. */
i = b64_encode(result2, sizeof(result2), xresult, sizeof(xresult));
if (!i) return NULL;
/* Good.. now create the whole string:
* $<saltb64d>$<totalhashb64d>
*/
ircsprintf(buf, "$%s$%s", saltstr, xresult);
return buf;
}
#ifdef AUTHENABLE_SHA1
static char *mkpass_sha1(char *para)
{
static char buf[128];
char result1[20+REALSALTLEN];
char result2[20];
char saltstr[REALSALTLEN]; /* b64 encoded printable string*/
char saltraw[RAWSALTLEN]; /* raw binary */
char xresult[64];
#ifndef _WIN32
SHA_CTX hash;
#else
HCRYPTPROV hProv;
HCRYPTHASH hHash;
DWORD size = 20;
#endif
int i;
if (!para) return NULL;
/* generate a random salt... */
for (i=0; i < RAWSALTLEN; i++)
saltraw[i] = getrandom8();
i = b64_encode(saltraw, RAWSALTLEN, saltstr, REALSALTLEN);
if (!i) return NULL;
#ifdef _WIN32
if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
return NULL;
#endif
/* b64(SHA1(SHA1(<pass>)+salt))
* ^^^^^^^^^^^
* step 1
* ^^^^^^^^^^^^^^^^^^^^^
* step 2
* ^^^^^^^^^^^^^^^^^^^^^^^^^^
* step 3
*/
/* STEP 1 */
#ifndef _WIN32
SHA1_Init(&hash);
SHA1_Update(&hash, para, strlen(para));
SHA1_Final(result1, &hash);
#else
if (!CryptCreateHash(hProv, CALG_SHA1, 0, 0, &hHash)) return NULL;
if (!CryptHashData(hHash, para, strlen(para), 0)) return NULL;
if (!CryptGetHashParam(hHash, HP_HASHVAL, result1, &size, 0)) return NULL;
CryptDestroyHash(hHash);
#endif
/* STEP 2 */
/* add salt to result */
memcpy(result1+20, saltraw, RAWSALTLEN);
/* Then hash it all together */
#ifndef _WIN32
SHA1_Init(&hash);
SHA1_Update(&hash, result1, RAWSALTLEN+20);
SHA1_Final(result2, &hash);
#else
if (!CryptCreateHash(hProv, CALG_SHA1, 0, 0, &hHash)) return NULL;
if (!CryptHashData(hHash, result1, RAWSALTLEN+20, 0)) return NULL;
if (!CryptGetHashParam(hHash, HP_HASHVAL, result2, &size, 0)) return NULL;
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
#endif
/* STEP 3 */
/* Then base64 encode it all together.. */
i = b64_encode(result2, sizeof(result2), xresult, sizeof(xresult));
if (!i) return NULL;
/* Good.. now create the whole string:
* $<saltb64d>$<totalhashb64d>
*/
ircsprintf(buf, "$%s$%s", saltstr, xresult);
return buf;
}
#endif /* AUTHENABLE_SHA1 */
#ifdef AUTHENABLE_RIPEMD160
static char *mkpass_ripemd160(char *para)
{
static char buf[128];
char result1[20+REALSALTLEN];
char result2[20];
char saltstr[REALSALTLEN]; /* b64 encoded printable string*/
char saltraw[RAWSALTLEN]; /* raw binary */
char xresult[64];
RIPEMD160_CTX hash;
int i;
if (!para) return NULL;
/* generate a random salt... */
for (i=0; i < RAWSALTLEN; i++)
saltraw[i] = getrandom8();
i = b64_encode(saltraw, RAWSALTLEN, saltstr, REALSALTLEN);
if (!i) return NULL;
/* b64(RIPEMD160(RIPEMD160(<pass>)+salt))
* ^^^^^^^^^^^
* step 1
* ^^^^^^^^^^^^^^^^^^^^^
* step 2
* ^^^^^^^^^^^^^^^^^^^^^^^^^^
* step 3
*/
/* STEP 1 */
RIPEMD160_Init(&hash);
RIPEMD160_Update(&hash, para, strlen(para));
RIPEMD160_Final(result1, &hash);
/* STEP 2 */
/* add salt to result */
memcpy(result1+20, saltraw, RAWSALTLEN);
/* Then hash it all together */
RIPEMD160_Init(&hash);
RIPEMD160_Update(&hash, result1, RAWSALTLEN+20);
RIPEMD160_Final(result2, &hash);
/* STEP 3 */
/* Then base64 encode it all together.. */
i = b64_encode(result2, sizeof(result2), xresult, sizeof(xresult));
if (!i) return NULL;
/* Good.. now create the whole string:
* $<saltb64d>$<totalhashb64d>
*/
ircsprintf(buf, "$%s$%s", saltstr, xresult);
return buf;
}
#endif /* AUTHENABLE_RIPEMD160 */
char *Auth_Make(short type, char *para)
{
#ifdef AUTHENABLE_UNIXCRYPT
char salt[3];
extern char *crypt();
#endif
#if defined(AUTHENABLE_MD5) || defined(AUTHENABLE_SHA1) || defined(AUTHENABLE_RIPEMD160)
static char buf[512];
int i;
#endif
#ifdef _WIN32
static char buf2[512];
#endif
switch (type)
{
@@ -397,92 +742,20 @@ char *Auth_Make(short type, char *para)
return(crypt(para, salt));
break;
#endif
#ifdef AUTHENABLE_MD5
case AUTHTYPE_MD5:
if (!para)
return NULL;
#ifndef _WIN32
if ((i = b64_encode(MD5(para, strlen(para), NULL),
MD5_DIGEST_LENGTH, buf, sizeof(buf))))
{
return (buf);
}
else
return NULL;
break;
#else
{
HCRYPTPROV hProv;
HCRYPTHASH hHash;
DWORD size = 512;
if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT))
return NULL;
if (!CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
return NULL;
if (!CryptHashData(hHash, para, strlen(para), 0))
return NULL;
if (!CryptGetHashParam(hHash, HP_HASHVAL, buf, &size, 0))
return NULL;
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
b64_encode(buf, 16, buf2, sizeof(buf2));
return (buf2);
}
break;
#endif
#endif
return mkpass_md5(para);
#ifdef AUTHENABLE_SHA1
case AUTHTYPE_SHA1:
if (!para)
return NULL;
#ifndef _WIN32
if ((i = b64_encode(SHA1(para, strlen(para), NULL),
SHA_DIGEST_LENGTH, buf, sizeof(buf))))
{
return (buf);
}
else
return NULL;
break;
#else
{
HCRYPTPROV hProv;
HCRYPTHASH hHash;
DWORD size = 512;
if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT))
return NULL;
if (!CryptCreateHash(hProv, CALG_SHA1, 0, 0, &hHash))
return NULL;
if (!CryptHashData(hHash, para, strlen(para), 0))
return NULL;
if (!CryptGetHashParam(hHash, HP_HASHVAL, buf, &size, 0))
return NULL;
CryptDestroyHash(hHash);
CryptReleaseContext(hProv, 0);
b64_encode(buf, 20, buf2, sizeof(buf2));
return (buf2);
}
break;
return mkpass_sha1(para);
#endif
#endif
#ifdef AUTHENABLE_RIPEMD160
case AUTHTYPE_RIPEMD160:
if (!para)
return NULL;
if ((i = b64_encode(RIPEMD160(para, strlen(para), NULL),
RIPEMD160_DIGEST_LENGTH, buf, sizeof(buf))))
{
return (buf);
}
else
return NULL;
break;
return mkpass_ripemd160(para);
#endif
default:
return (NULL);
}
+12 -8
View File
@@ -62,12 +62,12 @@ inline int fast_badword_match(ConfigItem_badword *badword, char *line)
{
if (!(badword->type & BADW_TYPE_FAST_L))
{
if ((p != line) && isalnum(*(p - 1))) /* aaBLA but no *BLA */
if ((p != line) && !iswseperator(*(p - 1))) /* aaBLA but no *BLA */
goto next;
}
if (!(badword->type & BADW_TYPE_FAST_R))
{
if (isalnum(*(p + bwlen))) /* BLAaa but no BLA* */
if (!iswseperator(*(p + bwlen))) /* BLAaa but no BLA* */
goto next;
}
/* Looks like it matched */
@@ -102,15 +102,14 @@ int cleaned = 0;
pold = our_strcasestr(pold, badword->word);
if (!pold)
break;
cleaned = 1;
if (replacen == -1)
replacen = strlen(replacew);
if (searchn == -1)
searchn = strlen(badword->word);
/* Hunt for start of word */
if (pold > line) {
for (startw = pold; (isalnum(*startw) && (startw != line)); startw--);
if (!isalnum(*startw))
for (startw = pold; (!iswseperator(*startw) && (startw != line)); startw--);
if (iswseperator(*startw))
startw++; /* Don't point at the space/seperator but at the word! */
} else {
startw = pold;
@@ -123,7 +122,7 @@ int cleaned = 0;
}
/* Hunt for end of word */
for (endw = pold; ((*endw != '\0') && (isalnum(*endw))); endw++);
for (endw = pold; ((*endw != '\0') && (!iswseperator(*endw))); endw++);
if (!(badword->type & BADW_TYPE_FAST_R) && (pold+searchn != endw)) {
/* not matched */
@@ -131,6 +130,8 @@ int cleaned = 0;
continue;
}
cleaned = 1; /* still too soon? Syzop/20050227 */
/* Do we have any not-copied-yet data? */
if (poldx != startw) {
int tmp_n = startw - poldx;
@@ -185,7 +186,7 @@ char *stripbadwords(char *str, ConfigItem_badword *start_bw, int *blocked)
static char cleanstr[4096];
char buf[4096];
char *ptr;
int matchlen, stringlen, cleaned;
int matchlen, m, stringlen, cleaned;
ConfigItem_badword *this_word;
*blocked = 0;
@@ -244,8 +245,11 @@ char *stripbadwords(char *str, ConfigItem_badword *start_bw, int *blocked)
{
if (pmatch[0].rm_so == -1)
break;
m = pmatch[0].rm_eo - pmatch[0].rm_so;
if (m == 0)
break; /* anti-loop */
cleaned = 1;
matchlen += pmatch[0].rm_eo - pmatch[0].rm_so;
matchlen += m;
strlncat(buf, ptr, sizeof buf, pmatch[0].rm_so);
if (this_word->replace)
strlcat(buf, this_word->replace, sizeof buf);
+229 -2751
View File
File diff suppressed because it is too large Load Diff
+656
View File
@@ -0,0 +1,656 @@
/*
* Unreal Internet Relay Chat Daemon, src/charsys.c
* (C) Copyright 2005 Bram Matthys and The UnrealIRCd Team.
*
* Character system: This subsystem deals with finding out wheter a
* character should be allowed or not in nicks (nicks only for now).
*
* 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.
*/
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "macros.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
/* NOTE: it is guaranteed that char is unsigned by compiling options
* (-funsigned-char @ gcc, /J @ MSVC)
* NOTE2: Original credit for supplying the correct chinese
* coderanges goes to: RexHsu, Mr.WebBar and Xuefer
*/
/** Our multibyte structure */
typedef struct _mblist MBList;
struct _mblist
{
MBList *next;
char s1, e1, s2, e2;
};
MBList *mblist = NULL, *mblist_tail = NULL;
/* Use this to prevent mixing of certain combinations
* (such as GBK & high-ascii, etc)
*/
static int langav;
char langsinuse[4096];
/* bitmasks: */
#define LANGAV_ASCII 0x0001 /* 8 bit ascii */
#define LANGAV_LATIN1 0x0002 /* latin1 (western europe) */
#define LANGAV_LATIN2 0x0004 /* latin2 (eastern europe, eg: polish) */
#define LANGAV_ISO8859_7 0x0008 /* greek */
#define LANGAV_ISO8859_8I 0x0010 /* hebrew */
#define LANGAV_ISO8859_9 0x0020 /* turkish */
#define LANGAV_W1250 0x0040 /* windows-1250 (eg: polish-w1250) */
#define LANGAV_W1251 0x0080 /* windows-1251 (eg: russian) */
#define LANGAV_LATIN2W1250 0x0100 /* Compatible with both latin2 AND windows-1250 (eg: hungarian) */
#define LANGAV_GBK 0x1000 /* (Chinese) GBK encoding */
typedef struct _langlist LangList;
struct _langlist
{
char *directive;
char *code;
int setflags;
};
/* MUST be alphabetized (first column) */
static LangList langlist[] = {
{ "catalan", "cat", LANGAV_ASCII|LANGAV_LATIN1 },
{ "chinese", "chi-s,chi-t,chi-j", LANGAV_GBK },
{ "chinese-simp", "chi-s", LANGAV_GBK },
{ "chinese-trad", "chi-t", LANGAV_GBK },
{ "chinese-ja", "chi-j", LANGAV_GBK },
{ "czech", "cze-m", LANGAV_ASCII|LANGAV_W1250 },
{ "danish", "dan", LANGAV_ASCII|LANGAV_LATIN1 },
{ "dutch", "dut", LANGAV_ASCII|LANGAV_LATIN1 },
{ "french", "fre", LANGAV_ASCII|LANGAV_LATIN1 },
{ "gbk", "chi-s,chi-t,chi-j", LANGAV_GBK },
{ "german", "ger", LANGAV_ASCII|LANGAV_LATIN1 },
{ "greek", "gre", LANGAV_ASCII|LANGAV_ISO8859_7 },
{ "hebrew", "heb", LANGAV_ASCII|LANGAV_ISO8859_8I },
{ "hungarian", "hun", LANGAV_ASCII|LANGAV_LATIN2W1250 },
{ "icelandic", "ice", LANGAV_ASCII|LANGAV_LATIN1 },
{ "italian", "ita", LANGAV_ASCII|LANGAV_LATIN1 },
{ "latin1", "cat,dan,dut,fre,ger,ita,spa,swe", LANGAV_ASCII|LANGAV_LATIN1 },
{ "latin2", "hun,pol,rum", LANGAV_ASCII|LANGAV_LATIN2 },
{ "polish", "pol", LANGAV_ASCII|LANGAV_LATIN2 },
{ "polish-w1250", "pol-m", LANGAV_ASCII|LANGAV_W1250 },
{ "romanian", "rum", LANGAV_ASCII|LANGAV_LATIN2W1250 },
{ "russian-w1251","rus", LANGAV_ASCII|LANGAV_W1251 },
{ "slovak", "slo-m", LANGAV_ASCII|LANGAV_W1250 },
{ "spanish", "spa", LANGAV_ASCII|LANGAV_LATIN1 },
{ "swedish", "swe", LANGAV_ASCII|LANGAV_LATIN1 },
{ "swiss-german", "swg", LANGAV_ASCII|LANGAV_LATIN1 },
{ "turkish", "tur", LANGAV_ASCII|LANGAV_ISO8859_9 },
{ "windows-1250", "cze-m,pol-m,rum,slo-m,hun", LANGAV_ASCII|LANGAV_W1250 },
{ NULL, NULL, 0 }
};
/* For temporary use during config_run */
typedef struct _ilanglist ILangList;
struct _ilanglist
{
ILangList *prev, *next;
char *name;
};
ILangList *ilanglist = NULL;
static int do_nick_name_multibyte(char *nick);
static int do_nick_name_standard(char *nick);
/* These characters are ALWAYS disallowed... from remote, in
* multibyte, etc.. even though this might mean a certain
* (legit) character cannot be used (eg: in chinese GBK).
* - no breaking space
* - ! (nick!user seperator)
* - prefix chars: +, %, @, &, ~
* - channel chars: #
* - scary chars: $, :, ', ", ?, *, ',', '.'
* NOTE: the caller should also check for ascii <= 32.
* [CHANGING THIS WILL CAUSE SECURITY/SYNCH PROBLEMS AND WILL
* VIOLATE YOUR ""RIGHT"" ON SUPPORT IMMEDIATELY]
*/
const char *illegalnickchars = "\xA0!+%@&~#$:'\"?*,.";
/** Called on boot and just before config run */
void charsys_reset(void)
{
int i;
MBList *m, *m_next;
/* First, reset everything */
for (i=0; i < 256; i++)
char_atribs[i] &= ~ALLOWN;
for (m=mblist; m; m=m_next)
{
m_next = m->next;
MyFree(m);
}
mblist=mblist_tail=NULL;
/* Then add the default which will always be allowed */
charsys_addallowed("0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyzy{|}");
langav = 0;
langsinuse[0] = '\0';
#ifdef DEBUGMODE
if (ilanglist)
abort();
#endif
}
void charsys_reset_pretest(void)
{
langav = 0;
}
static inline void ilang_swap(ILangList *one, ILangList *two)
{
char *tmp = one->name;
one->name = two->name;
two->name = tmp;
}
static void ilang_sort(void)
{
ILangList *outer, *inner;
char *tmp;
/* Selection sort -- perhaps optimize to qsort/whatever if
* possible? ;)
*/
for (outer=ilanglist; outer; outer=outer->next)
{
for (inner=outer->next; inner; inner=inner->next)
{
if (strcmp(outer->name, inner->name) > 0)
ilang_swap(outer, inner);
}
}
}
void charsys_finish(void)
{
ILangList *e, *e_next;
/* Sort alphabetically */
ilang_sort();
/* [note: this can be optimized] */
langsinuse[0] = '\0';
for (e=ilanglist; e; e=e->next)
{
strlcat(langsinuse, e->name, sizeof(langsinuse));
if (e->next)
strlcat(langsinuse, ",", sizeof(langsinuse));
}
/* Free everything */
for (e=ilanglist; e; e=e_next)
{
e_next=e->next;
MyFree(e->name);
MyFree(e);
}
ilanglist = NULL;
#ifdef DEBUGMODE
ircd_log(LOG_ERROR, "[Debug] langsinuse: '%s'", langsinuse);
if (strlen(langsinuse) > 490)
abort();
#endif
}
/** Add a character range to the multibyte list.
* @param s1 Start of highest byte
* @param e1 End of highest byte
* @param s2 Start of lowest byte
* @param e2 End of lowest byte
* @example charsys_addmultibyterange(0xaa, 0xbb, 0x00, 0xff) for 0xaa00-0xbbff
*/
void charsys_addmultibyterange(char s1, char e1, char s2, char e2)
{
MBList *m = MyMallocEx(sizeof(m));
m->s1 = s1;
m->e1 = e1;
m->s2 = s2;
m->e2 = e2;
if (mblist_tail)
mblist_tail->next = m;
else
mblist = m;
mblist_tail = m;
}
/** Adds all characters in the specified string to the allowed list. */
void charsys_addallowed(char *s)
{
for (; *s; s++)
{
if ((*s <= 32) || strchr(illegalnickchars, *s))
{
config_error("INTERNAL ERROR: charsys_addallowed() called for illegal characters: %s", s);
#ifdef DEBUGMODE
abort();
#endif
}
char_atribs[(unsigned int)*s] |= ALLOWN;
}
}
int do_nick_name(char *nick)
{
if (mblist)
return do_nick_name_multibyte(nick);
else
return do_nick_name_standard(nick);
}
static int do_nick_name_standard(char *nick)
{
int len;
char *ch;
if ((*nick == '-') || isdigit(*nick))
return 0;
for (ch=nick,len=0; *ch && len <= NICKLEN; ch++, len++)
if (!isvalid(*ch))
return 0; /* reject the full nick */
*ch = '\0';
return len;
}
static int isvalidmbyte(unsigned char c1, unsigned char c2)
{
MBList *m;
for (m=mblist; m; m=m->next)
{
if ((c1 >= m->s1) && (c1 <= m->e1) &&
(c2 >= m->s2) && (c2 <= m->e2))
return 1;
}
return 0;
}
/* hmmm.. there must be some problems with multibyte &
* other high ascii characters I think (such as german etc).
* Not sure if this can be solved? I don't think so... -- Syzop.
*/
static int do_nick_name_multibyte(char *nick)
{
int len;
char *ch;
MBList *m;
int firstmbchar = 0;
if ((*nick == '-') || isdigit(*nick))
return 0;
for (ch=nick,len=0; *ch && len <= NICKLEN; ch++, len++)
{
/* Some characters are ALWAYS illegal, so they have to be disallowed here */
if ((*ch <= 32) || strchr(illegalnickchars, *ch))
return 0;
if (firstmbchar)
{
if (!isvalidmbyte(ch[-1], *ch))
return 0;
firstmbchar = 0;
} else if ((*ch) & 0x80)
firstmbchar = 1;
else if (!isvalid(*ch))
return 0;
}
if (firstmbchar)
ch--;
*ch = '\0';
return len;
}
/** Does some very basic checking on remote nickname.
* It's only purpose is not to cause the whole network
* to fall down in pieces, that's all. Display problems
* are not really handled here. They are assumed to have been
* checked by PROTOCTL NICKCHARS= -- Syzop.
*/
int do_remote_nick_name(char *nick)
{
char *c;
for (c=nick; *c; c++)
if ((*c <= 32) || strchr(illegalnickchars, *c))
return 0;
return (c - nick);
}
/** Check if the specified charsets during the TESTING phase can be
* premitted without getting into problems.
* RETURNS: -1 in case of failure, 1 if ok
*/
int charsys_postconftest(void)
{
int x=0;
if ((langav & LANGAV_ASCII) && (langav & LANGAV_GBK))
{
config_error("ERROR: set::accept-language specifies incorrect combination "
"of languages: high-ascii languages (such as german, french, etc) "
"cannot be mixed with chinese/..");
return -1;
}
if (langav & LANGAV_LATIN1)
x++;
if (langav & LANGAV_LATIN2)
x++;
if (langav & LANGAV_ISO8859_7)
x++;
if (langav & LANGAV_ISO8859_9)
x++;
if (langav & LANGAV_W1250)
x++;
if (langav & LANGAV_W1251)
x++;
if ((langav & LANGAV_LATIN2W1250) && !(langav & LANGAV_LATIN2) && !(langav & LANGAV_W1250))
x++;
if (x > 1)
{
config_status("WARNING: set::accept-language: "
"Mixing of charsets (eg: latin1+latin2) can cause display problems");
}
return 1;
}
static LangList *charsys_find_language(char *name)
{
int start = 0;
int stop = ARRAY_SIZEOF(langlist)-1;
int mid;
while (start <= stop)
{
mid = (start+stop)/2;
if (smycmp(name, langlist[mid].directive) < 0)
stop = mid-1;
else if (strcmp(name, langlist[mid].directive) == 0)
return &langlist[mid];
else
start = mid+1;
}
return NULL;
}
/** Check if language is available. */
int charsys_test_language(char *name)
{
LangList *l = charsys_find_language(name);
if (l)
{
langav |= l->setflags;
return 1;
}
if (!strcmp(name, "euro-west"))
{
config_error("set::accept-language: ERROR: 'euro-west' got renamed to 'latin1'");
return 0;
}
return 0;
}
static void charsys_doadd_language(char *name)
{
LangList *l;
ILangList *li;
int found;
char tmp[512], *lang, *p;
l = charsys_find_language(name);
if (!l)
{
#ifdef DEBUGMODE
abort();
#endif
return;
}
strlcpy(tmp, l->code, sizeof(tmp));
for (lang = strtoken(&p, tmp, ","); lang; lang = strtoken(&p, NULL, ","))
{
/* Check if present... */
found=0;
for (li=ilanglist; li; li=li->next)
if (!strcmp(li->name, lang))
{
found = 1;
break;
}
if (!found)
{
/* Add... */
li = MyMallocEx(sizeof(ILangList));
li->name = strdup(lang);
AddListItem(li, ilanglist);
}
}
}
void charsys_add_language(char *name)
{
char latin1=0, latin2=0, w1250=0, chinese=0;
/** Note: there could well be some characters missing in the lists below.
* While I've seen other altnernatives that just allow pretty much
* every accent that exists even for dutch (where we rarely use
* accents except for like 3 types), I rather prefer to use a bit more
* reasonable aproach ;). That said, anyone is welcome to make
* suggestions about characters that should be added (or removed)
* of course. -- Syzop
*/
/* Add our language to our list */
charsys_doadd_language(name);
/* GROUPS */
if (!strcmp(name, "latin1"))
latin1 = 1;
else if (!strcmp(name, "latin2"))
latin2 = 1;
else if (!strcmp(name, "windows-1250"))
w1250 = 1;
else if (!strcmp(name, "chinese") || !strcmp(name, "gbk"))
chinese = 1;
/* INDIVIDUAL CHARSETS */
/* [LATIN1] */
if (latin1 || !strcmp(name, "german"))
{
/* a", A", o", O", u", U" and es-zett */
charsys_addallowed("äÄöÖüÜß");
}
if (latin1 || !strcmp(name, "swiss-german"))
{
/* a", A", o", O", u", U" */
charsys_addallowed("äÄöÖüÜ");
}
if (latin1 || !strcmp(name, "dutch"))
{
/* Ok, even though I'm Dutch myself, I've trouble getting
* a proper list of this ;). I think I got them all now, but
* I did not include "borrow-words" like words we use in Dutch
* that are literal French. So if you really want to use them all,
* I suggest you to use just latin1 :P.
*/
/* e', e", o", i", u", e`. */
charsys_addallowed("éëöïüè");
}
if (latin1 || !strcmp(name, "danish"))
{
/* supplied by klaus:
* <ae>, <AE>, ao, Ao, o/, O/ */
charsys_addallowed("æÆåÅøØ");
}
if (latin1 || !strcmp(name, "french"))
{
/* A`, A^, a`, a^, weird-C, weird-c, E`, E', E^, E", e`, e', e^, e",
* I^, I", i^, i", O^, o^, U`, U^, U", u`, u", u`, y" [not in that order, sry]
* Hmm.. there might be more, but I'm not sure how common they are
* and I don't think they are always displayed correctly (?).
*/
charsys_addallowed("ÀÂàâÇçÈÉÊËèéêëÎÏîïÔôÙÛÜùûüÿ");
}
if (latin1 || !strcmp(name, "spanish"))
{
/* a', A', e', E', i', I', o', O', u', U', u", U", n~, N~ */
charsys_addallowed("áÁéÉíÍóÓúÚüÜñÑ");
}
if (latin1 || !strcmp(name, "italian"))
{
/* A`, E`, E', I`, I', O`, O', U`, U', a`, e`, e', i`, i', o`, o', u`, u' */
charsys_addallowed("ÀÈÉÌÍÒÓÙÚàèéìíòóùú");
}
if (latin1 || !strcmp(name, "catalan"))
{
/* supplied by Trocotronic */
/* a`, A`, e`, E`, e', E', i', I', o`, O`, o', O', u', U', i", I", u", U" */
charsys_addallowed("àÀèÈéÉíÍòÒóÓúÚïÏüÜ");
}
if (latin1 || !strcmp(name, "swedish"))
{
/* supplied by Tank */
/* ao, Ao, a", A", o", O" */
charsys_addallowed("åÅäÄöÖ");
}
if (latin1 || !strcmp(name, "icelandic"))
{
/* supplied by Saevar */
charsys_addallowed("ÆæÖöÁáÍíÐðÚúÓóÝýÞþ");
}
/* [LATIN2] */
/* actually hungarian is a special case, include it in both w1250 and latin2 ;p */
if (latin2 || w1250 || !strcmp(name, "hungarian"))
{
/* supplied by AngryWolf */
/* a', e', i', o', o", o~, u', u", u~, A', E', I', O', O", O~, U', U", U~ */
charsys_addallowed("áéíóöõúüûÁÉÍÓÖÕÚÜÛ");
}
/* same is true for romanian: latin2 & w1250 compatible */
if (latin2 || w1250 || !strcmp(name, "romanian"))
{
/* With some help from crazytoon */
/* 'S,' 's,' 'A^' 'A<' 'I^' 'T,' 'a^' 'a<' 'i^' 't,' */
charsys_addallowed("ªºÂÃÎÞâãîþ");
}
if (latin2 || !strcmp(name, "polish"))
{
/* supplied by k4be */
charsys_addallowed("±æê³ñó¶¿¼¡ÆÊ£ÑÓ¦¯¬");
}
/* [windows 1250] */
if (w1250 || !strcmp(name, "polish-w1250"))
{
/* supplied by k4be */
charsys_addallowed("¹æê³ñ󜿟¥ÆÊ£ÑÓŒ¯");
}
if (w1250 || !strcmp(name, "czech-w1250"))
{
/* Syzop [probably incomplete] */
charsys_addallowed("ŠŽšžÁÈÉÌÍÏÒÓØÙÚÝáèéìíïòóøùúý");
}
if (w1250 || !strcmp(name, "slovak-w1250"))
{
/* Syzop [probably incomplete] */
charsys_addallowed("ŠŽšž¼¾ÀÁÄÅÈÉÍÏàáäåèéíïòóôúý");
}
/* [windows 1251] */
if (!strcmp(name, "russian-w1251"))
{
/* supplied by Roman Parkin:
* 128-159 and 223-254
*/
charsys_addallowed("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¨¸");
}
/* [GREEK] */
if (!strcmp(name, "greek"))
{
/* supplied by GSF */
/* ranges from rfc1947 / iso 8859-7 */
charsys_addallowed("¶¸¹º¼¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóô");
}
/* [TURKISH] */
if (!strcmp(name, "turkish"))
{
/* Supplied by Ayberk Yancatoral */
charsys_addallowed("öÖçÇþÞüÜðÐý");
}
/* [HEBREW] */
if (!strcmp(name, "hebrew"))
{
/* Supplied by PHANTOm. */
/* 0xE0 - 0xFE */
charsys_addallowed("àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ");
}
/* [CHINESE] */
if (chinese || !strcmp(name, "chinese-ja"))
{
charsys_addmultibyterange(0xa4, 0xa4, 0xa1, 0xf3); /* JIS_PIN */
charsys_addmultibyterange(0xa5, 0xa5, 0xa1, 0xf6); /* JIS_PIN */
}
if (chinese || !strcmp(name, "chinese-simp"))
{
charsys_addmultibyterange(0xb0, 0xd6, 0xa1, 0xfe); /* GBK/2 BC with GB2312 */
charsys_addmultibyterange(0xd7, 0xd7, 0xa1, 0xf9); /* GBK/2 BC with GB2312 */
charsys_addmultibyterange(0xd8, 0xf7, 0xa1, 0xfe); /* GBK/2 BC with GB2312 */
}
if (chinese || !strcmp(name, "chinese-trad"))
{
charsys_addmultibyterange(0x81, 0xa0, 0x40, 0x7e); /* GBK/3 - lower half */
charsys_addmultibyterange(0x81, 0xa0, 0x80, 0xfe); /* GBK/3 - upper half */
charsys_addmultibyterange(0xaa, 0xfe, 0x40, 0x7e); /* GBK/4 - lower half */
charsys_addmultibyterange(0xaa, 0xfe, 0x80, 0xa0); /* GBK/4 - upper half */
}
}
+298 -265
View File
@@ -18,342 +18,375 @@
* $Id$
*/
#include <stdlib.h>
#include <string.h>
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "h.h"
/* The following functions have been taken from Hybrid7-beta8 simply because
#include "msg.h"
#include <stdarg.h>
#include <stdio.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <string.h>
/* The following functions have been taken from Hybrid-7.0.1 simply because
* I didn't feel like writing my own when they had ones that work just fine :)
* However, several bugs were found and some stuff was moved around to work
* better.
*/
#ifdef INET6
static int parse_v6_netmask(const char *, struct IN_ADDR *, int *);
static int parse_v6_netmask(const char *, struct IN_ADDR *addr, short int *b);
#endif
static int parse_v4_netmask(const char *, struct IN_ADDR *, int *);
static int parse_v4_netmask(const char *, struct IN_ADDR *addr, short int *b);
#define DigitParse(ch) if (ch >= '0' && ch <= '9') \
#define DigitParse(ch) do { \
if (ch >= '0' && ch <= '9') \
ch = ch - '0'; \
else if (ch >= 'A' && ch <= 'F') \
ch = ch - 'A' + '0'; \
ch = ch - 'A' + 10; \
else if (ch >= 'a' && ch <= 'f') \
ch = ch - 'a' + '0';
ch = ch - 'a' + 10; \
} while(0);
/* The mask parser/type determination code... */
/* int parse_v6_netmask(const char *, struct IN_ADDR*, int *);
/* int parse_v6_netmask(const char *, struct IN_ADDR*, short int *);
* Input: An possible IPV6 address as a string.
* Output: An integer describing whether it is an IPV6 or hostmask,
* an address(if it is IPV6), a bitlength(if it is IPV6).
* Side effects: None
* Comments: Called from parse_netmask
*/
/* Fixed so ::/0 (any IPv6 address) is valid
Also a bug in DigitParse above.
-Gozem 2002-07-19 gozem@linux.nu
*/
#ifdef INET6
static int
parse_v6_netmask(const char *text, struct IN_ADDR *addr, int *b)
static int parse_v6_netmask(const char *text, struct IN_ADDR *addr, short int *b)
{
const char *p;
char c;
int d[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }, dp = 0, nyble = 4, finsert =
-1, bits = 0, deficit = 0;
short dc[8];
const char *p;
char c;
int d[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
int dp = 0;
int nyble = 4;
int finsert = -1;
short int bits = 128;
int deficit = 0;
unsigned short dc[8];
for (p = text; (c = *p); p++)
if (isxdigit(c))
{
if (nyble == 0)
return HM_HOST;
DigitParse(c);
d[dp] |= c << (4 * --nyble);
}
else if (c == ':')
{
if (p > text && *(p - 1) == ':')
{
if (finsert >= 0)
return HM_HOST;
finsert = dp;
}
else
{
/* If there were less than 4 hex digits, e.g. :ABC: shift right
* so we don't interpret it as ABC0 -A1kmm */
d[dp] = d[dp] >> 4 * nyble;
nyble = 4;
if (++dp >= 8)
return HM_HOST;
}
}
else if (c == '*')
{
/* * must be last, and * is ambiguous if there is a ::... -A1kmm */
if (finsert >= 0 || *(p + 1) || dp == 0 || *(p - 1) != ':')
return HM_HOST;
bits = dp * 16;
}
else if (c == '/')
{
char *after;
for (p = text; (c = *p); p++)
/* Parse a digit */
if (isxdigit(c))
{
if (nyble == 0)
return HM_HOST;
DigitParse(c);
d[dp] |= c << (4 * --nyble);
}
else if (c == ':')
{
/* It's a :: */
if (p > text && *(p - 1) == ':')
{
if (finsert >= 0) /* Error: already has a :: */
return HM_HOST;
finsert = dp;
}
/* Just a regular : */
else
{
/* If there were less than 4 hex digits, e.g. :ABC: shift right
* so we don't interpret it as ABC0 -A1kmm */
d[dp] = d[dp] >> 4 * nyble;
nyble = 4;
if (++dp >= 8) /* Error: more than 8 segments */
return HM_HOST;
}
}
/* Wildcard */
else if (c == '*')
{
/* Error: there was a ::, or it is not the last segment */
if (finsert >= 0 || *(p + 1) || dp == 0 || *(p - 1) != ':')
return HM_HOST;
bits = dp * 16;
}
/* Bit section */
else if (c == '/')
{
char *after;
d[dp] = d[dp] >> 4 * nyble;
dp++;
if (p > text && *(p - 1) == ':')
return HM_HOST;
bits = strtoul(p + 1, &after, 10);
if (bits == 0 || *after)
return HM_HOST;
if (bits > dp * 4 && !(finsert >= 0 && bits <= 128))
return HM_HOST;
break;
}
else
return HM_HOST;
d[dp] = d[dp] >> 4 * nyble;
dp++;
bits = strtoul(p + 1, &after, 10);
if (bits < 0 || *after) /* Error: bits is invalid or not the end */
return HM_HOST;
/* Error: Bits is greater than the number of bits given
* and there is no :: */
if (bits > dp * 16 && !(finsert >= 0 && bits <= 128))
return HM_HOST;
break;
}
else /* Error: Illegal character */
return HM_HOST;
d[dp] = d[dp] >> 4 * nyble;
if (c == 0)
dp++;
if (finsert < 0 && bits == 0)
bits = dp * 16;
else if (bits == 0)
bits = 128;
/* How many words are missing? -A1kmm */
deficit = bits / 16 + ((bits % 16) ? 1 : 0) - dp;
/* Now fill in the gaps(from ::) in the copied table... -A1kmm */
for (dp = 0, nyble = 0; dp < 8; dp++)
{
if (nyble == finsert && deficit)
{
dc[dp] = 0;
deficit--;
}
else
dc[dp] = d[nyble++];
}
/* Set unused bits to 0... -A1kmm */
if (bits < 128 && (bits % 16 != 0))
dc[bits / 16] &= ~((1 << (15 - bits % 16)) - 1);
for (dp = bits / 16 + (bits % 16 ? 1 : 0); dp < 8; dp++)
dc[dp] = 0;
/* And assign... -A1kmm */
if (addr)
for (dp = 0; dp < 8; dp++)
/* The cast is a kludge to make netbsd work. */
((unsigned short *)&addr->s6_addr)[dp] = htons(dc[dp]);
if (b)
*b = bits;
return HM_IPV6;
/* This is handled above if it was a / */
if (c != '/')
d[dp] = d[dp] >> 4 * nyble;
if (c == 0)
dp++;
/* If there was no bit section, set the number of bits */
if (finsert < 0 && bits == 0)
bits = dp * 16;
/* How many words are missing? -A1kmm */
/* The original check was wrong -- codemastr */
deficit = 8 - dp;
/* Now fill in the gaps(from ::) in the copied table... -A1kmm */
for (dp = 0, nyble = 0; dp < 8; dp++)
{
if (nyble == finsert && deficit)
{
dc[dp] = 0;
deficit--;
}
else
dc[dp] = d[nyble++];
}
/* Set unused bits to 0... -A1kmm */
/* This check was wrong as well -- codemastr */
if (bits < 128 && (bits % 16 != 0))
dc[bits / 16] &= ~((1 << (16 - bits % 16)) - 1);
for (dp = bits / 16 + (bits % 16 ? 1 : 0); dp < 8; dp++)
dc[dp] = 0;
/* And assign... -A1kmm */
if (addr)
for (dp = 0; dp < 8; dp++)
/* The cast is a kludge to make netbsd work. */
((unsigned short *)&addr->s6_addr)[dp] = htons(dc[dp]);
if (b != NULL)
*b = bits;
return HM_IPV6;
}
#endif
/* int parse_v4_netmask(const char *, struct IN_ADDR *, int *);
* Input: An possible IPV4 address as a string.
/* int parse_v4_netmask(const char *, struct IN_ADDR *, short int *);
* Input: A possible IPV4 address as a string.
* Output: An integer describing whether it is an IPV4 or hostmask,
* an address(if it is IPV4), a bitlength(if it is IPV4).
* Side effects: None
* Comments: Called from parse_netmask
*/
static int
parse_v4_netmask(const char *text, struct IN_ADDR *addr, int *b)
static int parse_v4_netmask(const char *text, struct IN_ADDR *addr, short int *b)
{
const char *p;
const char *digits[4];
unsigned char addb[4];
int n = 0, bits = 0;
char c;
digits[n++] = text;
for (p = text; (c = *p); p++)
if (c >= '0' && c <= '9') /* empty */
;
else if (c == '.')
{
if (n >= 4) /* Error: More than four sections */
return HM_HOST;
digits[n++] = p + 1;
}
else if (c == '*')
{
if (*(p + 1) || n == 0 || *(p - 1) != '.') /* Error: * is not at the end
* or not its own section */
return HM_HOST;
bits = (n - 1) * 8;
break;
}
else if (c == '/')
{
char *after;
bits = strtoul(p + 1, &after, 10);
if (!bits || *after) /* Error: Invalid number or not end */
return HM_HOST;
if (bits > n * 8) /* Error: More than the bits given */
return HM_HOST;
break;
}
else /* Error: Illegal character */
return HM_HOST;
if (n < 4 && bits == 0)
bits = n * 8;
if (bits)
while (n < 4)
digits[n++] = "0";
for (n = 0; n < 4; n++)
addb[n] = strtoul(digits[n], NULL, 10);
if (bits == 0)
bits = 32;
/* Set unused bits to 0... -A1kmm */
if (bits < 32 && bits % 8)
addb[bits / 8] &= ~((1 << (8 - bits % 8)) - 1);
for (n = bits / 8 + (bits % 8 ? 1 : 0); n < 4; n++)
addb[n] = 0;
if (addr)
{
#ifndef INET6
const char *p;
const char *digits[4];
unsigned char addb[8]; /* will only use 4, but space for overflow [?]. -- Syzop*/
int n = 0, bits = 0;
char c;
digits[n++] = text;
for (p = text; (c = *p); p++)
if (c >= '0' && c <= '9') /* empty */
;
else if (c == '.')
{
if (n >= 4)
return HM_HOST;
digits[n++] = p + 1;
}
else if (c == '*')
{
if (*(p + 1) || n == 0 || *(p - 1) != '.')
return HM_HOST;
bits = (n - 1) * 8;
break;
}
else if (c == '/')
{
char *after;
bits = strtoul(p + 1, &after, 10);
if (!bits || *after)
return HM_HOST;
if (bits > n * 8)
return HM_HOST;
break;
}
else
return HM_HOST;
if (n < 4 && bits == 0)
bits = n * 8;
if (bits)
while (n < 4)
digits[n++] = "0";
for (n = 0; n < 4; n++)
addb[n] = strtoul(digits[n], NULL, 10);
if (bits == 0)
bits = 32;
/* Set unused bits to 0... -A1kmm */
if (bits < 32 && bits % 8)
addb[bits / 8] &= ~((1 << (8 - bits % 8)) - 1);
for (n = bits / 8 + (bits % 8 ? 1 : 0); n < 8; n++)
addb[n] = 0;
if (addr)
addr->S_ADDR =
htonl(addb[0] << 24 | addb[1] << 16 | addb[2] << 8 | addb[3]);
if (b)
*b = bits;
return HM_IPV4;
addr->s_addr = htonl(addb[0] << 24 | addb[1] << 16 | addb[2] << 8 | addb[3]);
#else
u_char *cp;
const char *p;
const char *digits[4];
unsigned char addb[4];
int n = 0, bits = 0;
char c;
digits[n++] = text;
for (p = text; (c = *p); p++)
if (c >= '0' && c <= '9') /* empty */
;
else if (c == '.')
{
if (n >= 4)
return HM_HOST;
digits[n++] = p + 1;
}
else if (c == '*')
{
if (*(p + 1) || n == 0 || *(p - 1) != '.')
return HM_HOST;
bits = (n - 1) * 8;
break;
}
else if (c == '/')
{
char *after;
bits = strtoul(p + 1, &after, 10);
if (!bits || *after)
return HM_HOST;
if (bits > n * 8)
return HM_HOST;
break;
}
else
return HM_HOST;
if (n < 4 && bits == 0)
bits = n * 8;
if (bits)
while (n < 4)
digits[n++] = "0";
for (n = 0; n < 4; n++)
addb[n] = strtoul(digits[n], NULL, 10);
if (bits == 0)
bits = 32;
/* Set unused bits to 0... -A1kmm */
if (bits < 32 && bits % 8)
addb[bits / 8] &= ~((1 << (8 - bits % 8)) - 1);
for (n = bits / 8 + (bits % 8 ? 1 : 0); n < 8; n++)
addb[n] = 0;
if (addr)
{
cp = (u_char *)addr->s6_addr;
for (n = 0; n <= 9; n++)
cp[n] = 0;
cp[10] = 0xff;
cp[11] = 0xff;
cp[12] = addb[0];
cp[13] = addb[1];
cp[14] = addb[2];
cp[15] = addb[3];
}
if (b)
*b = bits;
return HM_IPV4;
for (n = 0; n <= 9; n++)
addr->s6_addr[n] = 0;
addr->s6_addr[10] = 0xff;
addr->s6_addr[11] = 0xff;
addr->s6_addr[12] = addb[0];
addr->s6_addr[13] = addb[1];
addr->s6_addr[14] = addb[2];
addr->s6_addr[15] = addb[3];
#endif
}
if (b)
*b = bits;
return HM_IPV4;
}
/* int parse_netmask(const char *, struct IN_ADDR *, int *);
/* int parse_netmask(const char *, struct irc_netmask *);
* Input: A hostmask, or an IPV4/6 address.
* Output: An integer describing whether it is an IPV4, IPV6 address or a
* hostmask, an address(if it is an IP mask),
* a bitlength(if it is IP mask).
* Side effects: None
*/
int
parse_netmask(const char *text, struct IN_ADDR *addr, int *b)
int parse_netmask(const char *text, struct irc_netmask *netmask)
{
char *c;
const char *host;
/* So a user@ip can be specified -- codemastr */
if ((c = strchr(text, '@')) && *(c+1))
host = c+1;
else
host = text;
#ifdef INET6
if (strchr(text, ':'))
return parse_v6_netmask(text, addr, b);
if (strchr(host, ':'))
return parse_v6_netmask(host, &netmask->mask, &netmask->bits);
else
#endif
if (strchr(text, '.'))
return parse_v4_netmask(text, addr, b);
return HM_HOST;
if (strchr(host, '.'))
return parse_v4_netmask(host, &netmask->mask, &netmask->bits);
else
{
/* Well, lets just try and see?
* This is here because ffff/10, for example,
* is valid for our purposes */
if (parse_v4_netmask(host, &netmask->mask, &netmask->bits) == HM_IPV4)
return HM_IPV4;
#ifdef INET6
return parse_v6_netmask(host, &netmask->mask, &netmask->bits);
#endif
}
return HM_HOST;
}
/* The address matching stuff... */
/* int match_ipv6(struct IN_ADDR *, struct IN_ADDR *, int)
* Input: An IP address, an IP mask, the number of bits in the mask.
* Output: if match, 0 else 1
* Output: if match, 1 else 0
* Side effects: None
*/
#ifdef INET6
int
match_ipv6(struct IN_ADDR *addr, struct IN_ADDR *mask, int bits)
int match_ipv6(struct IN_ADDR *addr, struct IN_ADDR *mask, int bits)
{
int i, m, n = bits / 8;
int i, m, n = bits / 8;
for (i = 0; i < n; i++)
if (addr->S_ADDR[i] != mask->S_ADDR[i])
return 1;
if ((m = bits % 8) == 0)
return 0;
if ((addr->S_ADDR[n] & ~((1 << (8 - m)) - 1)) ==
mask->S_ADDR[n])
return 0;
return 1;
for (i = 0; i < n; i++)
if (addr->s6_addr[i] != mask->s6_addr[i])
return 0;
if ((m = bits % 8) == 0)
return 1;
if ((addr->s6_addr[n] & ~((1 << (8 - m)) - 1)) == mask->s6_addr[n])
return 1;
return 0;
}
#endif
/* int match_ipv4(struct IN_ADDR *, struct IN_ADDR *, int)
* Input: An IP address, an IP mask, the number of bits in the mask.
* Output: if match, 0 else 1
* Output: if match, 1 else 0
* Side Effects: None
*/
int
match_ipv4(struct IN_ADDR *addr, struct IN_ADDR *mask, int bits)
int match_ipv4(struct IN_ADDR *addr, struct IN_ADDR *mask, int bits)
{
#ifndef INET6
if ((ntohl(addr->S_ADDR) & ~((1 << (32 - bits)) - 1)) !=
ntohl(mask->S_ADDR))
return 1;
return 0;
if ((ntohl(addr->s_addr) & ~((1 << (32 - bits)) - 1)) == ntohl(mask->s_addr))
return 1;
return 0;
#else
struct in_addr ipv4addr, ipv4mask;
ipv4addr.s_addr = inet_addr((char *)Inet_ia2p(addr));
ipv4mask.s_addr = inet_addr((char *)Inet_ia2p(mask));
if ((ntohl(ipv4addr.s_addr) & ~((1 << (32 - bits)) - 1)) !=
ntohl(ipv4mask.s_addr))
struct in_addr ipv4addr, ipv4mask;
u_char *cp;
cp = (u_char *)((struct IN_ADDR *)addr)->s6_addr;
return 1;
return 0;
/* Make sure the address is IPv4 */
if (cp[0] == 0 && cp[1] == 0 && cp[2] == 0 && cp[3] == 0 && cp[4] == 0
&& cp[5] == 0 && cp[6] == 0 && cp[7] == 0 && cp[8] == 0
&& cp[9] == 0 && cp[10] == 0xff && cp[11] == 0xff)
{
/* Convert the v6 representation to v4 */
bcopy(&addr->s6_addr[12], &ipv4addr, sizeof(struct in_addr));
bcopy(&mask->s6_addr[12], &ipv4mask, sizeof(struct in_addr));
if ((ntohl(ipv4addr.s_addr) & ~((1 << (32 - bits)) - 1)) ==
ntohl(ipv4mask.s_addr))
return 1;
}
return 0;
#endif
}
/* int match_ip(struct IN_ADDR addr, char *uhost, char *mask, struct irc_netmask *netmask)
* Input: an IP, a userhost, string mask, and a netmask struct
* Output: if match, 1 else 0
* Side Effects: None
*/
int match_ip(struct IN_ADDR addr, char *uhost, char *mask, struct irc_netmask *netmask)
{
char *end;
if (!netmask)
return (!match(mask, uhost));
/* If it is an IP mask, we need to extract the user portion of both
* and run a match.
*/
if (mask && (end = strchr(mask, '@')))
{
char username[USERLEN+1], usermask[USERLEN+1];
strlcpy(usermask, mask, end-mask+1 > USERLEN+1 ? USERLEN+1 : end-mask+1);
if ((end = strchr(uhost, '@')))
{
strlcpy(username, uhost, end-uhost+1 > USERLEN+1 ? USERLEN+1 : end-uhost+1);
if (match(usermask, username))
return 0;
}
}
switch (netmask->type)
{
case HM_HOST:
return (!match(mask, uhost));
case HM_IPV4:
return match_ipv4(&addr, &netmask->mask, netmask->bits);
#ifdef INET6
case HM_IPV6:
return match_ipv6(&addr, &netmask->mask, netmask->bits);
#endif
default:
return 0;
}
}
+12 -136
View File
@@ -33,18 +33,6 @@ static char sccxid[] = "@(#)cloak.c 9.00 7/12/99 UnrealIRCd";
#include <string.h>
#include "h.h"
#undef KEY
#undef KEY2
#undef KEY3
#define KEY CLOAK_KEY1
#define KEY2 CLOAK_KEY2
#define KEY3 CLOAK_KEY3
#define POW_8 256L
#define POW_16 65536L
#define POW_32 4294967296L
/* The implementation here was originally done by Gary S. Brown. I have
borrowed the tables directly, and made some minor changes to the
crc32-function (including changing the interface). //ylo */
@@ -161,134 +149,22 @@ unsigned long our_crc32(const unsigned char *s, unsigned int len)
return crc32val;
}
char *hidehost(char *rhost)
{
static char cloaked[512];
static char h1[512];
static char h2[4][4];
static char h3[300];
char *host;
unsigned long l[8];
int i;
char *p, *q;
host = MyMalloc(strlen(rhost)+1);
q = host;
for (p = rhost; *p; p++, q++) {
*q = tolower(*p);
}
*q = '\0';
/* Find out what kind of host we're dealing with here */
/* IPv6 ? */
if (strchr(host, ':'))
{
/* Do IPv6 cloaking here */
/* FIXME: what the hell to do with :FFFF:192.168.1.5?
*/
/*
* a:b:c:d:e:f:g:h
*
* crc(a.b.c.d)
* crc(a.b.c.d.e.f.g)
* crc(a.b.c.d.e.f.g.h)
*/
sscanf(host, "%lx:%lx:%lx:%lx:%lx:%lx:%lx:%lx",
&l[0], &l[1], &l[2], &l[3],
&l[4], &l[5], &l[6], &l[7]);
ircsprintf(h3, "%lx:%lx:%lx:%lx",
l[0], l[1], l[2], l[3]);
l[0] = our_crc32(h3, strlen(h3));
ircsprintf(h3, "%lx:%lx:%lx:%lx:%lx:%lx:%lx",
l[0], l[1], l[2], l[3],
l[4], l[5], l[6]);
l[1] = our_crc32(h3, strlen(h3));
l[2] = our_crc32(host, strlen(host));
for (i = 0; i <= 2; i++)
{
l[i] = ((l[i] + KEY2) ^ KEY) + KEY3;
l[i] &= 0x3FFFFFFF;
}
ircsprintf(cloaked, "%lx:%lx:%lx:IP",
l[2], l[1], l[0]);
free(host);
return cloaked;
}
/* Is this a IPv4 IP? */
for (p = host; *p; p++)
{
if (!isdigit(*p) && !(*p == '.'))
{
break;
}
}
if (!(*p))
{
/* Do IPv4 cloaking here */
strlcpy(h1, host, sizeof h1);
i = 0;
for (i = 0, p = strtok(h1, "."); p && (i <= 3); p = strtok(NULL, "."), i++)
{
strncpy(h2[i], p, 4);
}
ircsprintf(h3, "%s.%s", h2[0], h2[1]);
l[0] = ((our_crc32(h3, strlen(h3)) + KEY) ^ KEY2) + KEY3;
ircsprintf(h3, "%s.%s.%s", h2[0], h2[1], h2[2]);
l[1] = ((KEY2 ^ our_crc32(h3, strlen(h3))) + KEY3) ^ KEY;
l[4] = our_crc32(host, strlen(host));
l[2] = ((l[4] + KEY3) ^ KEY) + KEY2;
l[2] &= 0x3FFFFFFF;
l[0] &= 0x7FFFFFFF;
l[1] &= 0xFFFFFFFF;
snprintf(cloaked, sizeof cloaked, "%lX.%lX.%lX.IP", l[2], l[1], l[0]);
free(host);
return cloaked;
}
else
{
/* Normal host cloaking here
*
* Find first .<alpha>
*/
for (p = rhost; *p; p++)
{
if (*p == '.')
{
if (isalpha(*(p + 1)))
break;
}
}
l[0] = ((our_crc32(host, strlen(host)) ^ KEY2) + KEY) ^ KEY3;
l[0] &= 0x3FFFFFFF;
if (*p) {
int len;
p++;
snprintf(cloaked, sizeof cloaked, "%s-%lX.", hidden_host, l[0]);
len = strlen(cloaked) + strlen(p);
if (len <= HOSTLEN)
strcat(cloaked, p);
else
strcat(cloaked, p + (len - HOSTLEN));
}
else
snprintf(cloaked, sizeof cloaked, "%s-%lX", hidden_host, l[0]);
free(host);
return cloaked;
}
/* Couldn't cloak, -WTF? */
free(host);
return NULL;
}
/* Regular user host */
/* mode = 0, just use strncpyzt, 1 = Realloc new and return new pointer */
char *make_virthost(char *curr, char *new, int mode)
{
char *mask;
char *x;
if (curr == NULL)
return (char *)NULL;
char host[256], *mask, *x, *p, *q;
if (!curr)
return NULL;
/* Convert host to lowercase and cut off at 255 bytes just to be sure */
for (p = curr, q = host; *p && (q < host+sizeof(host)-1); p++, q++)
*q = tolower(*p);
*q = '\0';
/* Call the cloaking layer */
mask = RCallbacks[CALLBACKTYPE_CLOAK]->func.pcharfunc(host);
mask = hidehost(curr);
if (mode == 0)
{
strncpyzt(new, mask, HOSTLEN); /* */
+10 -7
View File
@@ -1,4 +1,3 @@
/*
* SmartRoute phase 1
* connection rule patch
@@ -295,12 +294,12 @@ int crule_gettoken(int *next_tokp, char **ruleptr)
(*ruleptr)--;
*next_tokp = CR_END;
break;
case ':':
*next_tokp = CR_END;
break;
/* Both - and : can appear in hostnames so they must not be
* treated as separators -- codemastr */
default:
if ((isalpha(*(--(*ruleptr)))) || (**ruleptr == '*')
|| (**ruleptr == '?') || (**ruleptr == '.'))
|| (**ruleptr == '?') || (**ruleptr == '.')
|| (**ruleptr == '-') || (**ruleptr == ':'))
*next_tokp = CR_WORD;
else
return (CR_UNKNWTOK);
@@ -314,8 +313,12 @@ void crule_getword(char *word, int *wordlenp, int maxlen, char **ruleptr)
char *word_ptr;
word_ptr = word;
/* Both - and : can appear in hostnames so they must not be
* treated as separators -- codemastr */
while ((isalnum(**ruleptr)) || (**ruleptr == '*') ||
(**ruleptr == '?') || (**ruleptr == '.'))
(**ruleptr == '?') || (**ruleptr == '.') || (**ruleptr == '-') ||
(**ruleptr == ':'))
*word_ptr++ = *(*ruleptr)++;
*word_ptr = '\0';
*wordlenp = word_ptr - word;
@@ -324,7 +327,7 @@ void crule_getword(char *word, int *wordlenp, int maxlen, char **ruleptr)
/*
* Grammar
* rule:
* orexpr END END is end of input or :
* orexpr END END is end of input
* orexpr:
* andexpr
* andexpr || orexpr
+14 -3
View File
@@ -43,7 +43,12 @@
ID_Copyright("(C) Carsten Munk 2001");
Event *events = NULL;
MODVAR Event *events = NULL;
#ifdef JOINTHROTTLE
extern EVENT(cmodej_cleanup_structs);
#endif
extern EVENT(unrealdns_removeoldrecords);
void LockEventSystem(void)
{
@@ -58,7 +63,6 @@ Event *EventAddEx(Module *module, char *name, long every, long howmany,
vFP event, void *data)
{
Event *newevent;
if (!name || (every < 0) || (howmany < 0) || !event)
{
if (module)
@@ -152,7 +156,11 @@ int EventMod(Event *event, EventInfo *mods) {
return 0;
}
#ifndef _WIN32
inline void DoEvents(void)
#else
void DoEvents(void)
#endif
{
Event *eventptr;
Event temp;
@@ -204,12 +212,15 @@ void SetupEvents(void)
LockEventSystem();
/* Start events */
EventAddEx(NULL, "tklexpire", 5, 0, tkl_check_expire, NULL);
EventAddEx(NULL, "tunefile", 300, 0, save_tunefile, NULL);
EventAddEx(NULL, "garbage", GARBAGE_COLLECT_EVERY, 0, garbage_collect, NULL);
EventAddEx(NULL, "loop", 0, 0, loop_event, NULL);
#ifndef NO_FDLIST
EventAddEx(NULL, "fdlistcheck", 1, 0, e_check_fdlists, NULL);
#endif
#ifdef JOINTHROTTLE
EventAddEx(NULL, "cmodej_cleanup_structs", 60, 0, cmodej_cleanup_structs, NULL);
#endif
EventAddEx(NULL, "unrealdns_removeoldrecords", 15, 0, unrealdns_removeoldrecords, NULL);
UnlockEventSystem();
}
+104 -10
View File
@@ -42,10 +42,10 @@
#include <fcntl.h>
#include "h.h"
Extban ExtBan_Table[EXTBANTABLESZ]; /* this should be fastest */
unsigned short ExtBan_highest = 0;
Extban MODVAR ExtBan_Table[EXTBANTABLESZ]; /* this should be fastest */
unsigned MODVAR short ExtBan_highest = 0;
char extbanstr[EXTBANTABLESZ+1];
char MODVAR extbanstr[EXTBANTABLESZ+1];
void make_extbanstr(void)
{
@@ -74,8 +74,8 @@ int i;
Extban *ExtbanAdd(Module *module, ExtbanInfo req)
{
Extban *tmp;
int slot;
char tmpbuf[512];
if (findmod_by_bantype(req.flag))
{
@@ -99,6 +99,7 @@ int slot;
ExtBan_Table[slot].conv_param = req.conv_param;
ExtBan_Table[slot].is_banned = req.is_banned;
ExtBan_Table[slot].owner = module;
ExtBan_Table[slot].options = req.options;
if (module)
{
ModuleObject *banobj = MyMallocEx(sizeof(ModuleObject));
@@ -108,12 +109,18 @@ int slot;
module->errorcode = MODERR_NOERROR;
}
ExtBan_highest = slot;
make_extbanstr();
if (loop.ircd_booted)
{
make_extbanstr();
ircsprintf(tmpbuf, "~,%s", extbanstr);
IsupportSetValue(IsupportFind("EXTBAN"), tmpbuf);
}
return &ExtBan_Table[slot];
}
void ExtbanDel(Extban *eb)
{
char tmpbuf[512];
/* Just zero it all away.. */
if (eb->owner)
@@ -131,6 +138,8 @@ void ExtbanDel(Extban *eb)
}
memset(eb, 0, sizeof(Extban));
make_extbanstr();
ircsprintf(tmpbuf, "~,%s", extbanstr);
IsupportSetValue(IsupportFind("EXTBAN"), tmpbuf);
/* Hmm do we want to go trough all chans and remove the bans?
* I would say 'no' because perhaps we are just reloading,
* and else.. well... screw them?
@@ -146,12 +155,18 @@ void ExtbanDel(Extban *eb)
char *extban_modec_conv_param(char *para)
{
static char retbuf[CHANNELLEN+6];
char *chan, *p;
char *chan, *p, symbol='\0';
strncpyzt(retbuf, para, sizeof(retbuf));
chan = retbuf+3;
if (*chan != '#')
if ((*chan == '+') || (*chan == '%') || (*chan == '%') ||
(*chan == '@') || (*chan == '&') || (*chan == '~'))
chan++;
if ((*chan != '#') && (*chan != '*') && (*chan != '?'))
return NULL;
if (strlen(chan) > CHANNELLEN)
chan[CHANNELLEN] = '\0';
clean_channelname(chan);
@@ -161,15 +176,70 @@ char *chan, *p;
/* on a sidenote '#' is allowed because it's a valid channel (atm) */
return retbuf;
}
/* The only purpose of this function is a temporary workaround to prevent a desynch.. pfff */
int extban_modec_is_ok(aClient *sptr, aChannel *chptr, char *para, int checkt, int what, int what2)
{
char *p;
if ((checkt == EXBCHK_PARAM) && MyClient(sptr) && (what == MODE_ADD) && (strlen(para) > 3))
{
p = para + 3;
if ((*p == '+') || (*p == '%') || (*p == '%') ||
(*p == '@') || (*p == '&') || (*p == '~'))
p++;
if (*p != '#')
{
sendnotice(sptr, "Please use a # in the channelname (eg: ~c:#*blah*)");
return 0;
}
}
return 1;
}
static int extban_modec_compareflags(char symbol, int flags)
{
int require=0;
if (symbol == '+')
require = CHFL_VOICE|CHFL_HALFOP|CHFL_CHANOP|CHFL_CHANPROT|CHFL_CHANOWNER;
else if (symbol == '%')
require = CHFL_HALFOP|CHFL_CHANOP|CHFL_CHANPROT|CHFL_CHANOWNER;
else if (symbol == '@')
require = CHFL_CHANOP|CHFL_CHANPROT|CHFL_CHANOWNER;
else if (symbol == '&')
require = CHFL_CHANPROT|CHFL_CHANOWNER;
else if (symbol == '~')
require = CHFL_CHANOWNER;
if (flags & require)
return 1;
return 0;
}
int extban_modec_is_banned(aClient *sptr, aChannel *chptr, char *ban, int type)
{
Membership *lp;
char *p = ban+3;
char *p = ban+3, symbol = '\0';
if (*p != '#')
{
symbol = *p;
p++;
}
for (lp = sptr->user->channel; lp; lp = lp->next)
{
if (!strcasecmp(lp->chptr->chname, p))
return 1;
if (!match(p, lp->chptr->chname))
{
/* Channel matched, check symbol if needed (+/%/@/etc) */
if (symbol)
{
if (extban_modec_compareflags(symbol, lp->flags))
return 1;
} else
return 1;
}
}
return 0;
}
@@ -189,6 +259,24 @@ char *ban = banin + 3;
return 0;
}
int extban_moden_is_banned(aClient *sptr, aChannel *chptr, char *banin, int type)
{
char *ban = banin + 3;
if (type != BANCHK_NICK)
return 0;
if (has_voice(sptr, chptr))
return 0;
if ((ban_realhost && !match(ban, ban_realhost)) ||
(ban_virthost && !match(ban, ban_virthost)) ||
(ban_ip && !match(ban, ban_ip)))
return 1;
return 0;
}
/** Some kind of general conv_param routine,
* to ensure the parameter is nick!user@host.
* most of the code is just copied from clean_ban_mask.
@@ -251,13 +339,19 @@ void extban_init(void)
req.flag = 'c';
req.conv_param = extban_modec_conv_param;
req.is_banned = extban_modec_is_banned;
req.is_ok = extban_modec_is_ok;
ExtbanAdd(NULL, req);
req.flag = 'q';
req.conv_param = extban_conv_param_nuh;
req.is_banned = extban_modeq_is_banned;
ExtbanAdd(NULL, req);
req.flag = 'n';
req.conv_param = extban_conv_param_nuh;
req.is_banned = extban_moden_is_banned;
ExtbanAdd(NULL, req);
req.flag = 'r';
req.conv_param = extban_moder_conv_param;
req.is_banned = extban_moder_is_banned;
req.options = EXTBOPT_CHSVSMODE;
ExtbanAdd(NULL, req);
}
+233 -3
View File
@@ -54,6 +54,25 @@ Cmode *Channelmode_Table = NULL;
unsigned short Channelmode_highest = 0;
Cmode_t EXTMODE_NONOTICE = 0L;
#ifdef STRIPBADWORDS
Cmode_t EXTMODE_STRIPBADWORDS = 0L;
#endif
#ifdef JOINTHROTTLE
/* cmode j stuff... */
Cmode_t EXTMODE_JOINTHROTTLE = 0L;
int cmodej_is_ok(aClient *sptr, aChannel *chptr, char *para, int type, int what);
CmodeParam *cmodej_put_param(CmodeParam *r_in, char *param);
char *cmodej_get_param(CmodeParam *r_in);
char *cmodej_conv_param(char *param_in);
void cmodej_free_param(CmodeParam *r);
CmodeParam *cmodej_dup_struct(CmodeParam *r_in);
int cmodej_sjoin_check(aChannel *chptr, CmodeParam *ourx, CmodeParam *theirx);
#endif
int extcmode_cmodeT_requirechop(aClient *cptr, aChannel *chptr, char *para, int checkt, int what);
#ifdef STRIPBADWORDS
int extcmode_cmodeG_requirechop(aClient *cptr, aChannel *chptr, char *para, int checkt, int what);
#endif
void make_extcmodestr()
{
@@ -89,9 +108,29 @@ static void load_extendedchanmodes(void)
memset(&req, 0, sizeof(req));
req.paracount = 0;
req.is_ok = extcmode_default_requirechop;
req.is_ok = extcmode_cmodeT_requirechop;
req.flag = 'T';
CmodeAdd(NULL, req, &EXTMODE_NONOTICE);
#ifdef STRIPBADWORDS
req.flag = 'G';
req.is_ok = extcmode_cmodeG_requirechop;
CmodeAdd(NULL, req, &EXTMODE_STRIPBADWORDS);
#endif
#ifdef JOINTHROTTLE
/* +j */
memset(&req, 0, sizeof(req));
req.paracount = 1;
req.is_ok = cmodej_is_ok;
req.flag = 'j';
req.put_param = cmodej_put_param;
req.get_param = cmodej_get_param;
req.conv_param = cmodej_conv_param;
req.free_param = cmodej_free_param;
req.dup_struct = cmodej_dup_struct;
req.sjoin_check = cmodej_sjoin_check;
CmodeAdd(NULL, req, &EXTMODE_JOINTHROTTLE);
#endif
}
void extcmode_init(void)
@@ -115,6 +154,7 @@ void extcmode_init(void)
Cmode *CmodeAdd(Module *reserved, CmodeInfo req, Cmode_t *mode)
{
short i = 0, j = 0;
char tmpbuf[512];
while (i < EXTCMODETABLESZ)
{
@@ -150,21 +190,31 @@ Cmode *CmodeAdd(Module *reserved, CmodeInfo req, Cmode_t *mode)
if (Channelmode_Table[j].flag)
if (j > Channelmode_highest)
Channelmode_highest = j;
make_cmodestr();
make_extcmodestr();
if (reserved)
reserved->errorcode = MODERR_NOERROR;
if (loop.ircd_booted)
{
make_cmodestr();
make_extcmodestr();
ircsprintf(tmpbuf, CHPAR1 "%s," CHPAR2 "%s," CHPAR3 "%s," CHPAR4 "%s",
EXPAR1, EXPAR2, EXPAR3, EXPAR4);
IsupportSetValue(IsupportFind("CHANMODES"), tmpbuf);
}
return &(Channelmode_Table[i]);
}
void CmodeDel(Cmode *cmode)
{
char tmpbuf[512];
/* TODO: remove from all channel */
if (cmode)
cmode->flag = '\0';
make_cmodestr();
make_extcmodestr();
/* Not unloadable, so module object support is not needed (yet) */
ircsprintf(tmpbuf, CHPAR1 "%s," CHPAR2 "%s," CHPAR3 "%s," CHPAR4 "%s",
EXPAR1, EXPAR2, EXPAR3, EXPAR4);
IsupportSetValue(IsupportFind("CHANMODES"), tmpbuf);
}
/** searches in chptr extmode parameters and returns entry or NULL. */
@@ -235,10 +285,22 @@ void extcmode_free_paramlist(CmodeParam *lst)
}
}
/* Ok this is my mistake @ EXCHK_ACCESS_ERR error msg:
* the is_ok() thing does not know which mode it belongs to,
* this is normally redundant information of course but in
* case of a default handler like these, it's required to
* know which setting of mode failed (the mode char).
* I just return '?' for now, better than nothing.
* TO SUMMARIZE: Do not use extcmode_default_requirechop for new modules :p.
* Obviously in Unreal3.3* we should fix this. -- Syzop
*/
int extcmode_default_requirechop(aClient *cptr, aChannel *chptr, char *para, int checkt, int what)
{
if (IsPerson(cptr) && is_chan_op(cptr, chptr))
return EX_ALLOW;
if (checkt == EXCHK_ACCESS_ERR) /* can only be due to being halfop */
sendto_one(cptr, err_str(ERR_NOTFORHALFOPS), me.name, cptr->name, '?');
return EX_DENY;
}
@@ -250,4 +312,172 @@ int extcmode_default_requirehalfop(aClient *cptr, aChannel *chptr, char *para, i
return EX_DENY;
}
int extcmode_cmodeT_requirechop(aClient *cptr, aChannel *chptr, char *para, int checkt, int what)
{
if (IsPerson(cptr) && is_chan_op(cptr, chptr))
return EX_ALLOW;
if (checkt == EXCHK_ACCESS_ERR) /* can only be due to being halfop */
sendto_one(cptr, err_str(ERR_NOTFORHALFOPS), me.name, cptr->name, 'T');
return EX_DENY;
}
int extcmode_cmodeG_requirechop(aClient *cptr, aChannel *chptr, char *para, int checkt, int what)
{
if (IsPerson(cptr) && is_chan_op(cptr, chptr))
return EX_ALLOW;
if (checkt == EXCHK_ACCESS_ERR) /* can only be due to being halfop */
sendto_one(cptr, err_str(ERR_NOTFORHALFOPS), me.name, cptr->name, 'G');
return EX_DENY;
}
#ifdef JOINTHROTTLE
/*** CHANNEL MODE +j STUFF ******/
int cmodej_is_ok(aClient *sptr, aChannel *chptr, char *para, int type, int what)
{
if ((type == EXCHK_ACCESS) || (type == EXCHK_ACCESS_ERR))
{
if (IsPerson(sptr) && is_chan_op(sptr, chptr))
return EX_ALLOW;
if (type == EXCHK_ACCESS_ERR) /* can only be due to being halfop */
sendto_one(sptr, err_str(ERR_NOTFORHALFOPS), me.name, sptr->name, 'j');
return EX_DENY;
} else
if (type == EXCHK_PARAM)
{
/* Check parameter.. syntax should be X:Y, X should be 1-255, Y should be 1-999 */
char buf[32], *p;
int num, t, fail = 0;
strlcpy(buf, para, sizeof(buf));
p = strchr(buf, ':');
if (!p)
{
fail = 1;
} else {
*p++ = '\0';
num = atoi(buf);
t = atoi(p);
if ((num < 1) || (num > 255) || (t < 1) || (t > 999))
fail = 1;
}
if (fail)
{
sendnotice(sptr, "Error in setting +j, syntax: +j <num>:<seconds>, where <num> must be 1-255, and <seconds> 1-999");
return EX_DENY;
}
return EX_ALLOW;
}
/* falltrough -- should not be used */
return EX_DENY;
}
CmodeParam *cmodej_put_param(CmodeParam *r_in, char *param)
{
aModejEntry *r = (aModejEntry *)r_in;
char buf[32], *p;
int num, t;
if (!r)
{
/* Need to create one */
r = (aModejEntry *)malloc(sizeof(aModejEntry));
memset(r, 0, sizeof(aModejEntry));
r->flag = 'j';
}
strlcpy(buf, param, sizeof(buf));
p = strchr(buf, ':');
if (p)
{
*p++ = '\0';
num = atoi(buf);
t = atoi(p);
if (num < 1) num = 1;
if (num > 255) num = 255;
if (t < 1) t = 1;
if (t > 999) t = 999;
r->num = num;
r->t = t;
} else {
r->num = 0;
r->t = 0;
}
return (CmodeParam *)r;
}
char *cmodej_get_param(CmodeParam *r_in)
{
aModejEntry *r = (aModejEntry *)r_in;
static char retbuf[16];
if (!r)
return NULL;
snprintf(retbuf, sizeof(retbuf), "%hu:%hu", r->num, r->t);
return retbuf;
}
char *cmodej_conv_param(char *param_in)
{
static char retbuf[32];
char param[32], *p;
int num, t, fail = 0;
strlcpy(param, param_in, sizeof(param));
p = strchr(param, ':');
if (!p)
return NULL;
*p++ = '\0';
num = atoi(param);
t = atoi(p);
if (num < 1)
num = 1;
if (num > 255)
num = 255;
if (t < 1)
t = 1;
if (t > 999)
t = 999;
snprintf(retbuf, sizeof(retbuf), "%d:%d", num, t);
return retbuf;
}
void cmodej_free_param(CmodeParam *r)
{
MyFree(r);
}
CmodeParam *cmodej_dup_struct(CmodeParam *r_in)
{
aModejEntry *r = (aModejEntry *)r_in;
aModejEntry *w = (aModejEntry *)MyMalloc(sizeof(aModejEntry));
memcpy(w, r, sizeof(aModejEntry));
return (CmodeParam *)w;
}
int cmodej_sjoin_check(aChannel *chptr, CmodeParam *ourx, CmodeParam *theirx)
{
aModejEntry *our = (aModejEntry *)ourx;
aModejEntry *their = (aModejEntry *)theirx;
if (our->t != their->t)
{
if (our->t > their->t)
return EXSJ_WEWON;
else
return EXSJ_THEYWON;
}
else if (our->num != their->num)
{
if (our->num > their->num)
return EXSJ_WEWON;
else
return EXSJ_THEYWON;
} else
return EXSJ_SAME;
}
#endif /* JOINTHROTTLE */
#endif /* EXTCMODE */
+22 -12
View File
@@ -553,13 +553,24 @@ int hash_check_watch(aClient *cptr, int reply)
/* Send notifies out to everybody on the list in header */
for (lp = anptr->watch; lp; lp = lp->next)
sendto_one(lp->value.cptr, rpl_str(reply), me.name,
lp->value.cptr->name, cptr->name,
(IsPerson(cptr) ? cptr->user->username : "<N/A>"),
(IsPerson(cptr) ?
(IsHidden(cptr) ? cptr->user->virthost : cptr->
user->realhost) : "<N/A>"), anptr->lasttime, cptr->info);
{
if (IsWebTV(lp->value.cptr))
sendto_one(lp->value.cptr, ":IRC!IRC@%s PRIVMSG %s :%s (%s@%s) "
" %s IRC",
me.name, lp->value.cptr->name, cptr->name,
(IsPerson(cptr) ? cptr->user->username : "<N/A>"),
(IsPerson(cptr) ?
(IsHidden(cptr) ? cptr->user->virthost : cptr->
user->realhost) : "<N/A>"), reply == RPL_LOGON ?
"is now on" : "has left");
else
sendto_one(lp->value.cptr, rpl_str(reply), me.name,
lp->value.cptr->name, cptr->name,
(IsPerson(cptr) ? cptr->user->username : "<N/A>"),
(IsPerson(cptr) ?
(IsHidden(cptr) ? cptr->user->virthost : cptr->
user->realhost) : "<N/A>"), anptr->lasttime, cptr->info);
}
return 0;
}
@@ -736,7 +747,7 @@ int hash_del_watch_list(aClient *cptr)
#ifdef THROTTLING
struct ThrottlingBucket *ThrottlingHash[THROTTLING_HASH_SIZE+1];
struct MODVAR ThrottlingBucket *ThrottlingHash[THROTTLING_HASH_SIZE+1];
void init_throttling_hash()
{
@@ -779,7 +790,7 @@ EVENT(e_clean_out_throttling_buckets)
{
struct ThrottlingBucket *n;
int i;
struct ThrottlingBucket z = { NULL, NULL, 0};
struct ThrottlingBucket z = { NULL, NULL, {0}, 0, 0};
static time_t t = 0;
for (i = 0; i < THROTTLING_HASH_SIZE; i++)
@@ -793,7 +804,6 @@ EVENT(e_clean_out_throttling_buckets)
if (!t || (TStime() - t > 30))
{
int i;
extern char serveropts[];
extern Module *Modules;
char *p = serveropts + strlen(serveropts);
@@ -846,7 +856,7 @@ void del_throttling_bucket(struct ThrottlingBucket *bucket)
* @retval 2 Allowed, not in list or is an exception.
* @see add_connection()
*/
int throttle_can_connect(struct IN_ADDR *in)
int throttle_can_connect(aClient *sptr, struct IN_ADDR *in)
{
struct ThrottlingBucket *b;
@@ -857,7 +867,7 @@ int throttle_can_connect(struct IN_ADDR *in)
return 1;
else
{
if (Find_except(Inet_ia2p(in), CONF_EXCEPT_THROTTLE))
if (Find_except(sptr, Inet_ia2p(in), CONF_EXCEPT_THROTTLE))
return 2;
b->count++;
if (b->count > (THROTTLING_COUNT ? THROTTLING_COUNT : 3))
+170 -55
View File
@@ -85,17 +85,17 @@ time_t TSoffset = 0;
extern char unreallogo[];
#endif
int SVSNOOP = 0;
extern char *buildid;
extern MODVAR char *buildid;
time_t timeofday = 0;
int tainted = 0;
LoopStruct loop;
extern aMotd *opermotd;
extern aMotd *svsmotd;
extern aMotd *motd;
extern aMotd *rules;
extern aMotd *botmotd;
extern aMotd *smotd;
MemoryInfo StatsZ;
extern MODVAR aMotd *opermotd;
extern MODVAR aMotd *svsmotd;
extern MODVAR aMotd *motd;
extern MODVAR aMotd *rules;
extern MODVAR aMotd *botmotd;
extern MODVAR aMotd *smotd;
MODVAR MemoryInfo StatsZ;
int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns, R_do_id, R_fin_id, R_fail_id;
@@ -104,7 +104,7 @@ char REPORT_DO_DNS[256], REPORT_FIN_DNS[256], REPORT_FIN_DNSC[256],
REPORT_FAIL_ID[256];
extern ircstats IRCstats;
aClient me; /* That's me */
char *me_hash;
MODVAR char *me_hash;
aClient *client = &me; /* Pointer to beginning of Client list */
extern char backupbuf[8192];
#ifdef _WIN32
@@ -165,29 +165,29 @@ static void open_debugfile(), setup_signals();
extern void init_glines(void);
extern void tkl_init(void);
TS last_garbage_collect = 0;
char **myargv;
MODVAR TS last_garbage_collect = 0;
MODVAR char **myargv;
int portnum = -1; /* Server port number, listening this */
char *configfile = CONFIGFILE; /* Server configuration file */
int debuglevel = 10; /* Server debug level */
int bootopt = 0; /* Server boot option flags */
char *debugmode = ""; /* -"- -"- -"- */
char *sbrk0; /* initial sbrk(0) */
static int dorehash = 0;
static int dorehash = 0, dorestart = 0;
static char *dpath = DPATH;
int booted = FALSE;
TS nextconnect = 1; /* time for next try_connections call */
TS nextping = 1; /* same as above for check_pings() */
TS nextdnscheck = 0; /* next time to poll dns to force timeouts */
TS nextexpire = 1; /* next expire run on the dns cache */
TS lastlucheck = 0;
MODVAR int booted = FALSE;
MODVAR TS nextconnect = 1; /* time for next try_connections call */
MODVAR TS nextping = 1; /* same as above for check_pings() */
MODVAR TS nextdnscheck = 0; /* next time to poll dns to force timeouts */
MODVAR TS nextexpire = 1; /* next expire run on the dns cache */
MODVAR TS lastlucheck = 0;
#ifdef UNREAL_DEBUG
#undef CHROOTDIR
#define CHROOT
#endif
TS NOW;
MODVAR TS NOW;
#if defined(PROFIL) && !defined(_WIN32)
extern etext();
@@ -270,6 +270,8 @@ void restart(char *mesg)
VOIDSIG s_restart()
{
dorestart = 1;
#if 0
static int restarting = 0;
if (restarting == 0) {
@@ -280,6 +282,7 @@ VOIDSIG s_restart()
restarting = 1;
server_reboot("SIGINT");
}
#endif
}
@@ -387,7 +390,7 @@ void server_reboot(char *mesg)
exit(-1);
}
char *areason;
MODVAR char *areason;
EVENT(loop_event)
{
@@ -545,7 +548,7 @@ extern TS check_pings(TS currenttime)
* If it's a user, we check for CONF_BAN_USER
*/
bconf =
Find_ban(make_user_host(cptr->
Find_ban(cptr, make_user_host(cptr->
user ? cptr->user->username : cptr->
username,
cptr->user ? cptr->user->realhost : cptr->
@@ -555,7 +558,7 @@ extern TS check_pings(TS currenttime)
if (!killflag && !IsAnOper(cptr) &&
(bconf =
Find_ban(cptr->info, CONF_BAN_REALNAME))) {
Find_ban(NULL, cptr->info, CONF_BAN_REALNAME))) {
killflag++;
}
@@ -565,7 +568,7 @@ extern TS check_pings(TS currenttime)
*/
if (!killflag)
if ((bconf =
Find_ban(Inet_ia2p(&cptr->ip),
Find_ban(cptr, Inet_ia2p(&cptr->ip),
CONF_BAN_IP)))
killflag++;
if (killflag) {
@@ -604,6 +607,17 @@ extern TS check_pings(TS currenttime)
}
}
/* Do spamfilter 'user' banchecks.. */
if (loop.do_bancheck_spamf_user && IsPerson(cptr))
{
if (find_spamfilter_user(cptr) == FLUSH_BUFFER)
continue;
}
if (loop.do_bancheck_spamf_away && IsPerson(cptr) && cptr->user->away)
{
if (dospamfilter(cptr, cptr->user->away, SPAMF_AWAY, NULL) == FLUSH_BUFFER)
continue;
}
/*
* We go into ping phase
*/
@@ -648,7 +662,7 @@ extern TS check_pings(TS currenttime)
Debug((DEBUG_NOTICE,
"DNS/AUTH timeout %s",
get_client_name(cptr, TRUE)));
del_queries((char *)cptr);
unrealdns_delreq_bycptr(cptr);
ClearAuth(cptr);
ClearDNS(cptr);
SetAccess(cptr);
@@ -725,8 +739,7 @@ extern TS check_pings(TS currenttime)
* * - lucas
* *
*/
if (loop.do_bancheck)
loop.do_bancheck = 0;
loop.do_bancheck = loop.do_bancheck_spamf_user = loop.do_bancheck_spamf_away = 0;
Debug((DEBUG_NOTICE, "Next check_ping() call at: %s, %d %d %d",
myctime(currenttime+9), ping, currenttime+9, currenttime));
@@ -741,14 +754,8 @@ extern TS check_pings(TS currenttime)
static int bad_command(void)
{
#ifndef _WIN32
#ifdef CMDLINE_CONFIG
#define CMDLINE_CFG "[-f config] "
#else
#define CMDLINE_CFG ""
#endif
(void)printf
("Usage: ircd %s[-h servername] [-p portnumber] [-x loglevel] [-t] [-H]\n",
CMDLINE_CFG);
("Usage: ircd [-f config] [-h servername] [-p portnumber] [-x loglevel] [-t] [-H]\n");
(void)printf("Server not started\n\n");
#else
if (!IsService) {
@@ -803,6 +810,94 @@ EVENT(e_check_fdlists)
#endif
static void version_check_logerror(char *fmt, ...)
{
va_list va;
char buf[1024];
va_start(va, fmt);
vsnprintf(buf, sizeof(buf), fmt, va);
va_end(va);
#ifndef _WIN32
fprintf(stderr, "[!!!] %s\n", buf);
#else
win_log("[!!!] %s", buf);
#endif
}
/** Ugly version checker that ensures zlib/ssl/curl runtime libraries match the
* version we compiled for.
*/
static void do_version_check()
{
const char *compiledfor, *runtime;
int error = 0;
#ifdef USE_SSL
compiledfor = OPENSSL_VERSION_TEXT;
runtime = SSLeay_version(SSLEAY_VERSION);
if (strcasecmp(compiledfor, runtime))
{
version_check_logerror("OpenSSL version mismatch: compiled for '%s', library is '%s'",
compiledfor, runtime);
error=1;
}
#endif
#ifdef ZIP_LINKS
runtime = zlibVersion();
compiledfor = ZLIB_VERSION;
if (strcasecmp(compiledfor, runtime))
{
version_check_logerror("Zlib version mismatch: compiled for '%s', library is '%s'",
compiledfor, runtime);
error = 1;
}
#endif
#ifdef USE_LIBCURL
/* Perhaps someone should tell them to do this a bit more easy ;)
* problem is runtime output is like: 'libcurl/7.11.1 zlib/1.2.1 c-ares/1.2.0'
* while header output is like: '7.11.1'.
*/
{
char buf[128], *p;
runtime = curl_version();
compiledfor = LIBCURL_VERSION;
if (!strncmp(runtime, "libcurl/", 8))
{
strlcpy(buf, runtime+8, sizeof(buf));
p = strchr(buf, ' ');
if (p)
{
*p = '\0';
if (strcmp(compiledfor, buf))
{
version_check_logerror("Curl version mismatch: compiled for '%s', library is '%s'",
compiledfor, buf);
error = 1;
}
}
}
}
#endif
if (error)
{
#ifndef _WIN32
version_check_logerror("Header<->library mismatches can make UnrealIRCd *CRASH*! "
"Make sure you don't have multiple versions of openssl or zlib installed (eg: "
"one in /usr and one in /usr/local). And, if you recently upgraded them, "
"be sure to recompile Unreal.");
#else
version_check_logerror("Header<->library mismatches can make UnrealIRCd *CRASH*! "
"This should never happen with official Windows builds... unless "
"you overwrote any .dll files with newer/older ones or something.");
win_error();
#endif
tainted = 1;
}
}
extern time_t TSoffset;
#ifndef _WIN32
@@ -816,6 +911,7 @@ int InitwIRCD(int argc, char *argv[])
WSADATA wsaData;
#else
uid_t uid, euid;
gid_t gid, egid;
TS delay = 0;
#endif
#ifdef HAVE_PSTAT
@@ -830,11 +926,14 @@ int InitwIRCD(int argc, char *argv[])
#endif
#ifdef _WIN32
CreateMutex(NULL, FALSE, "UnrealMutex");
SetErrorMode(SEM_FAILCRITICALERRORS);
#endif
#if !defined(_WIN32) && !defined(_AMIGA)
sbrk0 = (char *)sbrk((size_t)0);
uid = getuid();
euid = geteuid();
gid = getgid();
egid = getegid();
# ifdef PROFIL
(void)monstartup(0, etext);
(void)moncontrol(1);
@@ -895,7 +994,7 @@ int InitwIRCD(int argc, char *argv[])
exit(5);
}
#endif /*CHROOTDIR*/
myargv = argv;
myargv = argv;
#ifndef _WIN32
(void)umask(077); /* better safe than sorry --SRB */
#else
@@ -904,6 +1003,7 @@ int InitwIRCD(int argc, char *argv[])
bzero((char *)&me, sizeof(me));
bzero(&StatsZ, sizeof(StatsZ));
setup_signals();
charsys_reset();
init_ircstats();
#ifdef USE_LIBCURL
url_init();
@@ -959,12 +1059,17 @@ int InitwIRCD(int argc, char *argv[])
bootopt |= BOOT_NOFORK;
break;
#ifndef _WIN32
#ifdef CMDLINE_CONFIG
case 'f':
#ifndef CMDLINE_CONFIG
if ((uid == euid) && (gid == egid))
configfile = p;
else
printf("ERROR: Command line config with a setuid/setgid ircd is not allowed");
#else
(void)setuid((uid_t) uid);
configfile = p;
break;
#endif
break;
case 'h':
if (!strchr(p, '.')) {
@@ -1034,13 +1139,6 @@ int InitwIRCD(int argc, char *argv[])
}
#endif
exit(0);
case 'W':{
struct IN_ADDR bah;
int bit;
parse_netmask("255.255.255.255/8", &bah, &bit);
printf("%s - %d\n", Inet_ia2p(&bah), bit);
exit(0);
}
case 'C':
config_verbose = atoi(p);
break;
@@ -1073,6 +1171,8 @@ int InitwIRCD(int argc, char *argv[])
}
}
do_version_check();
#ifndef CHROOTDIR
if (chdir(dpath)) {
# ifndef _WIN32
@@ -1087,7 +1187,11 @@ int InitwIRCD(int argc, char *argv[])
exit(-1);
}
#endif
#ifndef _WIN32
mkdir("tmp", S_IRUSR|S_IWUSR|S_IXUSR); /* Create the tmp dir, if it doesn't exist */
#else
mkdir("tmp");
#endif
#ifndef _WIN32
/*
* didn't set debuglevel
@@ -1107,6 +1211,7 @@ int InitwIRCD(int argc, char *argv[])
#ifndef _WIN32
fprintf(stderr, "%s", unreallogo);
fprintf(stderr, " v%s\n", VERSIONONLY);
fprintf(stderr, " using %s\n", tre_version());
#ifdef USE_SSL
fprintf(stderr, " using %s\n", OPENSSL_VERSION_TEXT);
#endif
@@ -1164,10 +1269,20 @@ int InitwIRCD(int argc, char *argv[])
#ifdef EXTCMODE
make_extcmodestr();
#endif
if (!find_Command_simple("AWAY") || !find_Command_simple("KILL") ||
!find_Command_simple("OPER") || !find_Command_simple("PING"))
{
make_extbanstr();
isupport_init();
if (!find_Command_simple("AWAY") /*|| !find_Command_simple("KILL") ||
!find_Command_simple("OPER") || !find_Command_simple("PING")*/)
{
config_error("Someone forgot to load modules with proper commands in them. READ THE DOCUMENTATION");
#ifdef _WIN32
/* Temporary! */
config_error("As of Unreal3.2.1 modules are supported on windows, "
"therefore you MUST load the commands.dll module and a cloaking module. "
"Just add 'loadmodule \"modules/commands.dll\"' and 'loadmodule \"modules/cloak.dll\"' "
"to your unrealircd.conf and be sure to read the release notes!");
win_error();
#endif
exit(-4);
}
@@ -1392,13 +1507,7 @@ void SocketLoop(void *dummy)
*/
if (nextconnect && timeofday >= nextconnect)
nextconnect = try_connections(timeofday);
/*
* ** DNS checks. One to timeout queries, one for cache expiries.
*/
if (timeofday >= nextdnscheck)
nextdnscheck = timeout_query_list(timeofday);
if (timeofday >= nextexpire)
nextexpire = expire_cache(timeofday);
/*
* ** take the smaller of the two 'timed' event times as
* ** the time of next event (stops us being late :) - avalon
@@ -1470,10 +1579,16 @@ void SocketLoop(void *dummy)
if ((timeofday >= nextping && !lifesux) || loop.do_bancheck)
#endif
nextping = check_pings(timeofday);
if (dorehash) {
if (dorehash)
{
(void)rehash(&me, &me, 1);
dorehash = 0;
}
if (dorestart)
{
server_reboot("SIGINT");
}
/*
* ** Flush output buffers on all connections timeofday if they
* ** have data in them (or at least try to flush)
-22
View File
@@ -305,28 +305,6 @@ char *ircvsprintf(char *str, const char *format, va_list vl)
*str++ = '0';
continue;
}
if (v1 < 6L)
switch (v1)
{
case 0L:
*str++ = '0';
continue;
case 1L:
*str++ = '1';
continue;
case 2L:
*str++ = '1';
continue;
case 3L:
*str++ = '1';
continue;
case 4L:
*str++ = '1';
continue;
case 5L:
*str++ = '1';
continue;
}
if (v1 > 999999999L)
{
v2 = v1 / 1000000000;
+169 -11
View File
@@ -63,13 +63,13 @@ static struct liststats {
void outofmemory();
int flinks = 0;
int freelinks = 0;
Link *freelink = NULL;
Member *freemember = NULL;
Membership *freemembership = NULL;
MembershipL *freemembershipL = NULL;
int numclients = 0;
MODVAR int flinks = 0;
MODVAR int freelinks = 0;
MODVAR Link *freelink = NULL;
MODVAR Member *freemember = NULL;
MODVAR Membership *freemembership = NULL;
MODVAR MembershipL *freemembershipL = NULL;
MODVAR int numclients = 0;
void initlists(void)
{
@@ -199,6 +199,7 @@ anUser *make_user(aClient *cptr)
user->snomask = 0;
*user->realhost = '\0';
user->virthost = NULL;
user->ip_str = NULL;
cptr->user = user;
}
return user;
@@ -235,11 +236,13 @@ void free_user(anUser *user, aClient *cptr)
if (--user->refcnt <= 0)
{
if (user->away)
MyFree((char *)user->away);
MyFree(user->away);
if (user->swhois)
MyFree((char *)user->swhois);
MyFree(user->swhois);
if (user->virthost)
MyFree((char *)user->virthost);
MyFree(user->virthost);
if (user->ip_str)
MyFree(user->ip_str);
if (user->operlogin)
MyFree(user->operlogin);
/*
@@ -252,7 +255,7 @@ void free_user(anUser *user, aClient *cptr)
user->username, user->realhost, user,
user->invited, user->channel, user->joined,
user->refcnt);
MyFree((char *)user);
MyFree(user);
#ifdef DEBUGMODE
users.inuse--;
#endif
@@ -547,5 +550,160 @@ ListStruct *del_ListItem(ListStruct *item, ListStruct **list) {
}
return NULL;
}
#ifdef JOINTHROTTLE
/** Adds a aJFlood entry to user & channel and returns entry.
* NOTE: Does not check for already-existing-entry
*/
aJFlood *cmodej_addentry(aClient *cptr, aChannel *chptr)
{
aJFlood *e;
#ifdef DEBUGMODE
if (!IsPerson(cptr))
abort();
for (e=cptr->user->jflood; e; e=e->next_u)
if (e->chptr == chptr)
abort();
for (e=chptr->jflood; e; e=e->next_c)
if (e->cptr == cptr)
abort();
#endif
e = MyMallocEx(sizeof(aJFlood));
e->cptr = cptr;
e->chptr = chptr;
e->prev_u = e->prev_c = NULL;
e->next_u = cptr->user->jflood;
e->next_c = chptr->jflood;
if (cptr->user->jflood)
cptr->user->jflood->prev_u = e;
if (chptr->jflood)
chptr->jflood->prev_c = e;
cptr->user->jflood = chptr->jflood = e;
return e;
}
/** Removes an individual entry from list and frees it.
*/
void cmodej_delentry(aJFlood *e)
{
/* remove from user.. */
if (e->prev_u)
e->prev_u->next_u = e->next_u;
else
e->cptr->user->jflood = e->next_u; /* new head */
if (e->next_u)
e->next_u->prev_u = e->prev_u;
/* remove from channel.. */
if (e->prev_c)
e->prev_c->next_c = e->next_c;
else
e->chptr->jflood = e->next_c; /* new head */
if (e->next_c)
e->next_c->prev_c = e->prev_c;
/* actually free it */
MyFree(e);
}
/** Removes all entries belonging to user from all lists and free them. */
void cmodej_deluserentries(aClient *cptr)
{
aJFlood *e, *e_next;
for (e=cptr->user->jflood; e; e=e_next)
{
e_next = e->next_u;
/* remove from channel.. */
if (e->prev_c)
e->prev_c->next_c = e->next_c;
else
e->chptr->jflood = e->next_c; /* new head */
if (e->next_c)
e->next_c->prev_c = e->prev_c;
/* actually free it */
MyFree(e);
}
cptr->user->jflood = NULL;
}
/** Removes all entries belonging to channel from all lists and free them. */
void cmodej_delchannelentries(aChannel *chptr)
{
aJFlood *e, *e_next;
for (e=chptr->jflood; e; e=e_next)
{
e_next = e->next_c;
/* remove from user.. */
if (e->prev_u)
e->prev_u->next_u = e->next_u;
else
e->cptr->user->jflood = e->next_u; /* new head */
if (e->next_u)
e->next_u->prev_u = e->prev_u;
/* actually free it */
MyFree(e);
}
chptr->jflood = NULL;
}
/** Regulary cleans up cmode-j user/chan structs */
EVENT(cmodej_cleanup_structs)
{
aJFlood *e, *e_next;
int i;
aClient *cptr;
aChannel *chptr;
int t;
CmodeParam *cmp;
#ifdef DEBUGMODE
int freed=0;
#endif
for (chptr = channel; chptr; chptr=chptr->nextch)
{
if (!chptr->jflood)
continue;
t=0;
/* t will be kept at 0 if not found or if mode not set,
* but DO still check since there are entries left as indicated by ->jflood!
*/
if (chptr->mode.extmode & EXTMODE_JOINTHROTTLE)
{
for (cmp = chptr->mode.extmodeparam; cmp; cmp=cmp->next)
if (cmp->flag == 'j')
t = ((aModejEntry *)cmp)->t;
}
for (e = chptr->jflood; e; e = e_next)
{
e_next = e->next_c;
if (e->firstjoin + t < TStime())
{
cmodej_delentry(e);
#ifdef DEBUGMODE
freed++;
#endif
}
}
}
#ifdef DEBUGMODE
if (freed)
ircd_log(LOG_ERROR, "cmodej_cleanup_structs: %d entries freed [%d bytes]", freed, freed * sizeof(aJFlood));
#endif
}
#endif
+17 -9
View File
@@ -41,7 +41,7 @@ u_char touppertab[], tolowertab[];
* match()
* written by binary
*/
static inline int match2(char *mask, char *name)
static inline int match2(const char *mask, const char *name)
{
u_char *m; /* why didn't the old one use registers */
u_char *n; /* because registers suck -- codemastr */
@@ -139,7 +139,11 @@ static inline int match2(char *mask, char *name)
return 1; /* false: no character left */
n++;
if (!*n) /* return true if end of both, */
{
if ((m[0] == '*') && (m[1] == '\0'))
return 0; /* special case.. a '?*' */
return (cm ? 1 : 0); /* false if end of test str only */
}
continue;
}
if (cm == '_') /* found _: check for '_' or ' ' */
@@ -149,7 +153,11 @@ static inline int match2(char *mask, char *name)
return 1; /* false: didnt match or no character left */
n++;
if (!*n) /* return true if end of both, */
{
if ((m[0] == '*') && (m[1] == '\0'))
return 0; /* special case.. a '?*' */
return (cm ? 1 : 0); /* false if end of test str only */
}
continue;
}
if (cm == '\\') /* next char will not be a wildcard. */
@@ -230,7 +238,7 @@ char *collapse(char *pattern)
* <0, if s1 lexicographically less than s2
* >0, if s1 lexicographically greater than s2
*/
int smycmp(char *s1, char *s2)
int smycmp(const char *s1, const char *s2)
{
u_char *str1;
u_char *str2;
@@ -250,7 +258,7 @@ int smycmp(char *s1, char *s2)
}
int myncmp(char *str1, char *str2, int n)
int myncmp(const char *str1, const char *str2, int n)
{
u_char *s1;
u_char *s2;
@@ -378,8 +386,8 @@ u_char char_atribs[] = {
PRINT | ALPHA | ALLOW,
/* VWX */ PRINT | ALPHA | ALLOW, PRINT | ALPHA | ALLOW,
PRINT | ALPHA | ALLOW,
/* YZ[ */ PRINT | ALPHA | ALLOW, PRINT | ALPHA | ALLOW, PRINT | ALPHA,
/* \]^ */ PRINT | ALPHA, PRINT | ALPHA, PRINT | ALPHA,
/* YZ[ */ PRINT | ALPHA | ALLOW, PRINT | ALPHA | ALLOW, PRINT,
/* \]^ */ PRINT, PRINT, PRINT,
/* _` */ PRINT | ALLOW, PRINT,
/* abc */ PRINT | ALPHA | ALLOW, PRINT | ALPHA | ALLOW,
PRINT | ALPHA | ALLOW,
@@ -397,8 +405,8 @@ u_char char_atribs[] = {
PRINT | ALPHA | ALLOW,
/* vwx */ PRINT | ALPHA | ALLOW, PRINT | ALPHA | ALLOW,
PRINT | ALPHA | ALLOW,
/* yz{ */ PRINT | ALPHA | ALLOW, PRINT | ALPHA | ALLOW, PRINT | ALPHA,
/* |}~ */ PRINT | ALPHA, PRINT | ALPHA, PRINT | ALPHA,
/* yz{ */ PRINT | ALPHA | ALLOW, PRINT | ALPHA | ALLOW, PRINT,
/* |}~ */ PRINT, PRINT, PRINT,
/* del */ 0,
/* 80-8f */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 90-9f */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -411,13 +419,13 @@ u_char char_atribs[] = {
};
/* Old match() */
int _match(char *mask, char *name) {
int _match(const char *mask, const char *name) {
return match2(mask,name);
}
/* Old match() plus some optimizations from bahamut */
int match(char *mask, char *name) {
int match(const char *mask, const char *name) {
if (mask[0] == '*' && mask[1] == '!') {
mask += 2;
while (*name != '!' && *name)
+294
View File
@@ -0,0 +1,294 @@
/*
* This is an OpenSSL-compatible implementation of the RSA Data Security,
* Inc. MD5 Message-Digest Algorithm.
*
* Written by Solar Designer <solar@openwall.com> in 2001, and placed in
* the public domain. There's absolutely no warranty.
*
* This differs from Colin Plumb's older public domain implementation in
* that no 32-bit integer data type is required, there's no compile-time
* endianness configuration, and the function prototypes match OpenSSL's.
* The primary goals are portability and ease of use.
*
* This implementation is meant to be fast, but not as fast as possible.
* Some known optimizations are not included to reduce source code size
* and avoid compile-time configuration.
*/
#include "config.h"
#if !defined(USE_SSL)
#include <string.h>
#include "md5.h"
/*
* The basic MD5 functions.
*
* F is optimized compared to its RFC 1321 definition just like in Colin
* Plumb's implementation.
*/
#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
#define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y))))
#define H(x, y, z) ((x) ^ (y) ^ (z))
#define I(x, y, z) ((y) ^ ((x) | ~(z)))
/*
* The MD5 transformation for all four rounds.
*/
#define STEP(f, a, b, c, d, x, t, s) \
(a) += f((b), (c), (d)) + (x) + (t); \
(a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \
(a) += (b);
/*
* SET reads 4 input bytes in little-endian byte order and stores them
* in a properly aligned word in host byte order.
*
* The check for little-endian architectures which tolerate unaligned
* memory accesses is just an optimization. Nothing will break if it
* doesn't work.
*/
#if defined(__i386__) || defined(__vax__)
#define SET(n) \
(*(MD5_u32plus *)&ptr[(n) * 4])
#define GET(n) \
SET(n)
#else
#define SET(n) \
(ctx->block[(n)] = \
(MD5_u32plus)ptr[(n) * 4] | \
((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \
((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \
((MD5_u32plus)ptr[(n) * 4 + 3] << 24))
#define GET(n) \
(ctx->block[(n)])
#endif
/*
* This processes one or more 64-byte data blocks, but does NOT update
* the bit counters. There're no alignment requirements.
*/
static void *body(MD5_CTX *ctx, void *data, unsigned long size)
{
unsigned char *ptr;
MD5_u32plus a, b, c, d;
MD5_u32plus saved_a, saved_b, saved_c, saved_d;
ptr = data;
a = ctx->a;
b = ctx->b;
c = ctx->c;
d = ctx->d;
do {
saved_a = a;
saved_b = b;
saved_c = c;
saved_d = d;
/* Round 1 */
STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7)
STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12)
STEP(F, c, d, a, b, SET(2), 0x242070db, 17)
STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22)
STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7)
STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12)
STEP(F, c, d, a, b, SET(6), 0xa8304613, 17)
STEP(F, b, c, d, a, SET(7), 0xfd469501, 22)
STEP(F, a, b, c, d, SET(8), 0x698098d8, 7)
STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12)
STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17)
STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22)
STEP(F, a, b, c, d, SET(12), 0x6b901122, 7)
STEP(F, d, a, b, c, SET(13), 0xfd987193, 12)
STEP(F, c, d, a, b, SET(14), 0xa679438e, 17)
STEP(F, b, c, d, a, SET(15), 0x49b40821, 22)
/* Round 2 */
STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5)
STEP(G, d, a, b, c, GET(6), 0xc040b340, 9)
STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14)
STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20)
STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5)
STEP(G, d, a, b, c, GET(10), 0x02441453, 9)
STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14)
STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20)
STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5)
STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9)
STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14)
STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20)
STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5)
STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9)
STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14)
STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20)
/* Round 3 */
STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4)
STEP(H, d, a, b, c, GET(8), 0x8771f681, 11)
STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16)
STEP(H, b, c, d, a, GET(14), 0xfde5380c, 23)
STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4)
STEP(H, d, a, b, c, GET(4), 0x4bdecfa9, 11)
STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16)
STEP(H, b, c, d, a, GET(10), 0xbebfbc70, 23)
STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4)
STEP(H, d, a, b, c, GET(0), 0xeaa127fa, 11)
STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16)
STEP(H, b, c, d, a, GET(6), 0x04881d05, 23)
STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4)
STEP(H, d, a, b, c, GET(12), 0xe6db99e5, 11)
STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16)
STEP(H, b, c, d, a, GET(2), 0xc4ac5665, 23)
/* Round 4 */
STEP(I, a, b, c, d, GET(0), 0xf4292244, 6)
STEP(I, d, a, b, c, GET(7), 0x432aff97, 10)
STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15)
STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21)
STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6)
STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10)
STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15)
STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21)
STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6)
STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10)
STEP(I, c, d, a, b, GET(6), 0xa3014314, 15)
STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21)
STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6)
STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10)
STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15)
STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21)
a += saved_a;
b += saved_b;
c += saved_c;
d += saved_d;
ptr += 64;
} while (size -= 64);
ctx->a = a;
ctx->b = b;
ctx->c = c;
ctx->d = d;
return ptr;
}
void MD5_Init(MD5_CTX *ctx)
{
ctx->a = 0x67452301;
ctx->b = 0xefcdab89;
ctx->c = 0x98badcfe;
ctx->d = 0x10325476;
ctx->lo = 0;
ctx->hi = 0;
}
void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size)
{
MD5_u32plus saved_lo;
unsigned long used, free;
saved_lo = ctx->lo;
if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
ctx->hi++;
ctx->hi += size >> 29;
used = saved_lo & 0x3f;
if (used) {
free = 64 - used;
if (size < free) {
memcpy(&ctx->buffer[used], data, size);
return;
}
memcpy(&ctx->buffer[used], data, free);
data = (unsigned char *)data + free;
size -= free;
body(ctx, ctx->buffer, 64);
}
if (size >= 64) {
data = body(ctx, data, size & ~(unsigned long)0x3f);
size &= 0x3f;
}
memcpy(ctx->buffer, data, size);
}
void MD5_Final(unsigned char *result, MD5_CTX *ctx)
{
unsigned long used, free;
used = ctx->lo & 0x3f;
ctx->buffer[used++] = 0x80;
free = 64 - used;
if (free < 8) {
memset(&ctx->buffer[used], 0, free);
body(ctx, ctx->buffer, 64);
used = 0;
free = 64;
}
memset(&ctx->buffer[used], 0, free - 8);
ctx->lo <<= 3;
ctx->buffer[56] = ctx->lo;
ctx->buffer[57] = ctx->lo >> 8;
ctx->buffer[58] = ctx->lo >> 16;
ctx->buffer[59] = ctx->lo >> 24;
ctx->buffer[60] = ctx->hi;
ctx->buffer[61] = ctx->hi >> 8;
ctx->buffer[62] = ctx->hi >> 16;
ctx->buffer[63] = ctx->hi >> 24;
body(ctx, ctx->buffer, 64);
result[0] = ctx->a;
result[1] = ctx->a >> 8;
result[2] = ctx->a >> 16;
result[3] = ctx->a >> 24;
result[4] = ctx->b;
result[5] = ctx->b >> 8;
result[6] = ctx->b >> 16;
result[7] = ctx->b >> 24;
result[8] = ctx->c;
result[9] = ctx->c >> 8;
result[10] = ctx->c >> 16;
result[11] = ctx->c >> 24;
result[12] = ctx->d;
result[13] = ctx->d >> 8;
result[14] = ctx->d >> 16;
result[15] = ctx->d >> 24;
memset(ctx, 0, sizeof(ctx));
}
#else
/* need these includes for DoMD5()... */
#include "struct.h"
#include "common.h"
#endif
/** Generates an MD5 checksum.
* @param mdout[out] Buffer to store result in, the result will be 16 bytes in binary
* (not ascii printable!).
* @param src[in] The input data used to generate the checksum.
* @param n[in] Length of data.
*/
void DoMD5(unsigned char *mdout, unsigned char *src, unsigned long n)
{
MD5_CTX hash;
MD5_Init(&hash);
MD5_Update(&hash, src, n);
MD5_Final(mdout, &hash);
}
+477 -51
View File
@@ -18,6 +18,8 @@
* 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$
*/
#include "struct.h"
@@ -36,6 +38,7 @@
#ifdef _WIN32
#include <io.h>
#define RTLD_NOW 0
const char *our_dlerror(void);
#elif defined(HPUX)
#include <dl.h>
#define RTLD_NOW BIND_IMMEDIATE
@@ -51,12 +54,18 @@
#ifndef RTLD_NOW
#define RTLD_NOW RTLD_LAZY
#endif
#define UNREALCORE
#include "modversion.h"
Hook *Hooks[MAXHOOKTYPES];
Hooktype Hooktypes[MAXCUSTOMHOOKS];
Module *Modules = NULL;
Versionflag *Versionflags = NULL;
int Module_Depend_Resolve(Module *p);
Callback *Callbacks[MAXCALLBACKS]; /* Callback objects for modules, used for rehashing etc (can be multiple) */
Callback *RCallbacks[MAXCALLBACKS]; /* 'Real' callback function, used for callback function calls */
Efunction *Efunctions[MAXEFUNCTIONS]; /* Efunction objects (used for rehashing) */
MODVAR Module *Modules = NULL;
MODVAR Versionflag *Versionflags = NULL;
int Module_Depend_Resolve(Module *p, char *path);
Module *Module_make(ModuleHeader *header,
#ifdef _WIN32
HMODULE mod
@@ -64,6 +73,74 @@ Module *Module_make(ModuleHeader *header,
void *mod
#endif
);
typedef struct {
char *name;
void **funcptr;
} EfunctionsList;
/* Efuncs */
int (*do_join)(aClient *cptr, aClient *sptr, int parc, char *parv[]);
void (*join_channel)(aChannel *chptr, aClient *cptr, aClient *sptr, int flags);
int (*can_join)(aClient *cptr, aClient *sptr, aChannel *chptr, char *key, char *link, char *parv[]);
void (*do_mode)(aChannel *chptr, aClient *cptr, aClient *sptr, int parc, char *parv[], time_t sendts, int samode);
void (*set_mode)(aChannel *chptr, aClient *cptr, int parc, char *parv[], u_int *pcount,
char pvar[MAXMODEPARAMS][MODEBUFLEN + 3], int bounce);
int (*m_umode)(aClient *cptr, aClient *sptr, int parc, char *parv[]);
int (*register_user)(aClient *cptr, aClient *sptr, char *nick, char *username, char *umode, char *virthost, char *ip);
int (*tkl_hash)(unsigned int c);
char (*tkl_typetochar)(int type);
aTKline *(*tkl_add_line)(int type, char *usermask, char *hostmask, char *reason, char *setby,
TS expire_at, TS set_at, TS spamf_tkl_duration, char *spamf_tkl_reason);
aTKline *(*tkl_del_line)(aTKline *tkl);
void (*tkl_check_local_remove_shun)(aTKline *tmp);
aTKline *(*tkl_expire)(aTKline * tmp);
EVENT((*tkl_check_expire));
int (*find_tkline_match)(aClient *cptr, int xx);
int (*find_shun)(aClient *cptr);
int(*find_spamfilter_user)(aClient *sptr);
aTKline *(*find_qline)(aClient *cptr, char *nick, int *ishold);
int (*find_tkline_match_zap)(aClient *cptr);
void (*tkl_stats)(aClient *cptr, int type, char *para);
void (*tkl_synch)(aClient *sptr);
int (*m_tkl)(aClient *cptr, aClient *sptr, int parc, char *parv[]);
int (*place_host_ban)(aClient *sptr, int action, char *reason, long duration);
int (*dospamfilter)(aClient *sptr, char *str_in, int type, char *target);
static const EfunctionsList efunction_table[MAXEFUNCTIONS] = {
/* 00 */ {NULL, NULL},
/* 01 */ {"do_join", (void *)&do_join},
/* 02 */ {"join_channel", (void *)&join_channel},
/* 03 */ {"can_join", (void *)&can_join},
/* 04 */ {"do_mode", (void *)&do_mode},
/* 05 */ {"set_mode", (void *)&set_mode},
/* 06 */ {"m_umode", (void *)&m_umode},
/* 07 */ {"register_user", (void *)&register_user},
/* 08 */ {"tkl_hash", (void *)&tkl_hash},
/* 09 */ {"tkl_typetochar", (void *)&tkl_typetochar},
/* 10 */ {"tkl_add_line", (void *)&tkl_add_line},
/* 11 */ {"tkl_del_line", (void *)&tkl_del_line},
/* 12 */ {"tkl_check_local_remove_shun", (void *)&tkl_check_local_remove_shun},
/* 13 */ {"tkl_expire", (void *)&tkl_expire},
/* 14 */ {"tkl_check_expire", (void *)&tkl_check_expire},
/* 15 */ {"find_tkline_match", (void *)&find_tkline_match},
/* 16 */ {"find_shun", (void *)&find_shun},
/* 17 */ {"find_spamfilter_user", (void *)&find_spamfilter_user},
/* 18 */ {"find_qline", (void *)&find_qline},
/* 19 */ {"find_tkline_match_zap", (void *)&find_tkline_match_zap},
/* 20 */ {"tkl_stats", (void *)&tkl_stats},
/* 21 */ {"tkl_synch", (void *)&tkl_synch},
/* 22 */ {"m_tkl", (void *)&m_tkl},
/* 23 */ {"place_host_ban", (void *)&place_host_ban},
/* 24 */ {"dospamfilter", (void *)&dospamfilter},
/* 25 */ {NULL, NULL},
/* 26 */ {NULL, NULL},
/* 27 */ {NULL, NULL},
/* 28 */ {NULL, NULL}
};
#ifdef UNDERSCORE
void *obsd_dlsym(void *handle, char *symbol) {
char *obsdsymbol = (char*)MyMalloc(strlen(symbol) + 2);
@@ -90,7 +167,7 @@ void DeleteTempModules(void)
if (!fd) /* Ouch.. this is NOT good!! */
{
config_error("Unable to open 'tmp' directory: %s, please create one with the appropriate permissions",
strerror(ERRNO));
strerror(errno));
if (!loop.ircd_booted)
exit(7);
return;
@@ -133,6 +210,9 @@ void Module_Init(void)
{
bzero(Hooks, sizeof(Hooks));
bzero(Hooktypes, sizeof(Hooktypes));
bzero(Callbacks, sizeof(Callback));
bzero(RCallbacks, sizeof(Callback));
bzero(Efunctions, sizeof(Efunction));
}
Module *Module_Find(char *name)
@@ -153,6 +233,30 @@ Module *Module_Find(char *name)
}
int parse_modsys_version(char *version)
{
int betaversion, tag;
if (!strcmp(version, "3.2.3"))
return 0x32300;
if (sscanf(version, "3.2-b%d-%d", &betaversion, &tag))
{
switch (betaversion)
{
case 5:
return 0x320b5;
case 6:
return 0x320b6;
case 7:
return 0x320b7;
case 8:
return 0x320b8;
default:
return 0;
}
}
return 0;
}
/*
* Returns an error if insucessful .. yes NULL is OK!
*/
@@ -171,11 +275,11 @@ char *Module_Create(char *path_)
char *Mod_Version;
static char errorbuf[1024];
char *path, *tmppath;
ModuleHeader *mod_header;
ModuleHeader *mod_header = NULL;
int ret = 0;
Module *mod = NULL, **Mod_Handle = NULL;
int *x;
int betaversion,tag;
char *expectedmodversion = our_mod_version;
long modsys_ver = 0;
Debug((DEBUG_DEBUG, "Attempting to load module from %s",
path_));
path = path_;
@@ -190,16 +294,24 @@ char *Module_Create(char *path_)
strcpy(path, "./");
strcat(path, path_);
}
unreal_copyfile(path, tmppath);
unreal_copyfileex(path, tmppath, 1);
if ((Mod = irc_dlopen(tmppath, RTLD_NOW)))
{
/* We have engaged the borg cube. Scan for lifesigns. */
irc_dlsym(Mod, "Mod_Version", Mod_Version);
if (Mod_Version && strcmp(version, Mod_Version))
if (Mod_Version && strcmp(Mod_Version, expectedmodversion))
{
snprintf(errorbuf, sizeof(errorbuf),
"Module was compiled for '%s', we are '%s', please recompile the module",
Mod_Version, version);
Mod_Version, expectedmodversion);
irc_dlclose(Mod);
remove(tmppath);
return errorbuf;
}
if (!Mod_Version)
{
snprintf(errorbuf, sizeof(errorbuf),
"Module is lacking Mod_Version. Perhaps a very old one you forgot to recompile?");
irc_dlclose(Mod);
remove(tmppath);
return errorbuf;
@@ -217,14 +329,13 @@ char *Module_Create(char *path_)
remove(tmppath);
return ("Lacking mod_header->modversion");
}
if (sscanf(mod_header->modversion, "3.2-b%d-%d", &betaversion, &tag)) {
if (betaversion < 5 || betaversion >8) {
snprintf(errorbuf, 1023, "Unsupported version, we support %s, %s is %s",
MOD_WE_SUPPORT, path, mod_header->modversion);
irc_dlclose(Mod);
remove(tmppath);
return(errorbuf);
}
if (!(modsys_ver = parse_modsys_version(mod_header->modversion)))
{
snprintf(errorbuf, 1023, "Unsupported module system version '%s'",
mod_header->modversion);
irc_dlclose(Mod);
remove(tmppath);
return(errorbuf);
}
if (!mod_header->name || !mod_header->version ||
!mod_header->description)
@@ -241,8 +352,7 @@ char *Module_Create(char *path_)
}
mod = (Module *)Module_make(mod_header, Mod);
mod->tmp_file = strdup(tmppath);
if (Mod_Version)
mod->compilecheck = 1;
mod->mod_sys_version = modsys_ver;
irc_dlsym(Mod, "Mod_Init", Mod_Init);
if (!Mod_Init)
{
@@ -261,7 +371,7 @@ char *Module_Create(char *path_)
Module_free(mod);
return ("Unable to locate Mod_Load");
}
if (Module_Depend_Resolve(mod) == -1)
if (Module_Depend_Resolve(mod, path) == -1)
{
Module_free(mod);
return ("Dependancy problem");
@@ -272,7 +382,7 @@ char *Module_Create(char *path_)
irc_dlsym(Mod, "Mod_Test", Mod_Test);
if (Mod_Test)
{
if (betaversion >= 8) {
if (mod->mod_sys_version >= 0x320b8) {
if ((ret = (*Mod_Test)(&mod->modinfo)) < MOD_SUCCESS) {
ircsprintf(errorbuf, "Mod_Test returned %i",
ret);
@@ -341,6 +451,7 @@ Module *Module_make(ModuleHeader *header,
modp->modinfo.size = sizeof(ModuleInfo);
modp->modinfo.module_load = 0;
modp->modinfo.handle = modp;
return (modp);
}
@@ -348,7 +459,7 @@ void Init_all_testing_modules(void)
{
Module *mi, *next;
int betaversion, tag, ret;
int ret;
iFP Mod_Init;
for (mi = Modules; mi; mi = next)
{
@@ -356,8 +467,7 @@ void Init_all_testing_modules(void)
if (!(mi->flags & MODFLAG_TESTING))
continue;
irc_dlsym(mi->dll, "Mod_Init", Mod_Init);
sscanf(mi->header->modversion, "3.2-b%d-%d", &betaversion, &tag);
if (betaversion >= 8) {
if (mi->mod_sys_version >= 0x320b8) {
if ((ret = (*Mod_Init)(&mi->modinfo)) < MOD_SUCCESS) {
config_error("Error loading %s: Mod_Init returned %i",
mi->header->name, ret);
@@ -432,6 +542,15 @@ void Unload_all_loaded_modules(void)
else if (objs->type == MOBJ_EXTBAN) {
ExtbanDel(objs->object.extban);
}
else if (objs->type == MOBJ_CALLBACK) {
CallbackDel(objs->object.callback);
}
else if (objs->type == MOBJ_EFUNCTION) {
EfunctionDel(objs->object.efunction);
}
else if (objs->type == MOBJ_ISUPPORT) {
IsupportDel(objs->object.isupport);
}
}
for (child = mi->children; child; child = childnext)
{
@@ -441,7 +560,9 @@ void Unload_all_loaded_modules(void)
}
DelListItem(mi,Modules);
irc_dlclose(mi->dll);
#ifndef DEBUGMODE
remove(mi->tmp_file);
#endif
MyFree(mi->tmp_file);
MyFree(mi);
}
@@ -489,6 +610,15 @@ void Unload_all_testing_modules(void)
else if (objs->type == MOBJ_EXTBAN) {
ExtbanDel(objs->object.extban);
}
else if (objs->type == MOBJ_CALLBACK) {
CallbackDel(objs->object.callback);
}
else if (objs->type == MOBJ_EFUNCTION) {
EfunctionDel(objs->object.efunction);
}
else if (objs->type == MOBJ_ISUPPORT) {
IsupportDel(objs->object.isupport);
}
}
for (child = mi->children; child; child = childnext)
{
@@ -552,6 +682,16 @@ int Module_free(Module *mod)
else if (objs->type == MOBJ_EXTBAN) {
ExtbanDel(objs->object.extban);
}
else if (objs->type == MOBJ_CALLBACK) {
CallbackDel(objs->object.callback);
}
else if (objs->type == MOBJ_EFUNCTION) {
EfunctionDel(objs->object.efunction);
}
else if (objs->type == MOBJ_ISUPPORT) {
IsupportDel(objs->object.isupport);
}
}
for (p = Modules; p; p = p->next)
{
@@ -695,7 +835,7 @@ vFP Module_SymX(char *name, Module **mptr)
void module_loadall(int module_load)
{
#ifndef STATIC_LINKING
iFP fp, fpp;
iFP fp;
Module *mi, *next;
if (!loop.ircd_booted)
@@ -710,14 +850,6 @@ void module_loadall(int module_load)
if (mi->flags & MODFLAG_LOADED)
continue;
irc_dlsym(mi->dll, "Mod_Load", fp);
irc_dlsym(mi->dll, "_Mod_Load", fpp);
if (fp);
else if (fpp) { fp = fpp; }
else
{
/* else, we didn't find it */
continue;
}
/* Call the module_load */
if ((*fp)(module_load) != MOD_SUCCESS)
{
@@ -726,7 +858,6 @@ void module_loadall(int module_load)
}
else
mi->flags = MODFLAG_LOADED;
}
#endif
}
@@ -752,15 +883,13 @@ inline void Module_AddAsChild(Module *parent, Module *child)
AddListItem(childp, parent->children);
}
int Module_Depend_Resolve(Module *p)
int Module_Depend_Resolve(Module *p, char *path)
{
Mod_SymbolDepTable *d = p->header->symdep;
Module *parental = NULL;
if (d == NULL)
{
return 0;
}
#ifndef STATIC_LINKING
while (d->pointer)
{
@@ -772,8 +901,22 @@ int Module_Depend_Resolve(Module *p)
*(d->pointer) = Module_SymX(d->symbol, &parental);
if (!*(d->pointer))
{
config_progress("Unable to resolve symbol %s, attempting to load %s to find it", d->symbol, d->module);
Module_Create(d->module);
/* If >= 3.2.3 */
if (p->mod_sys_version >= 0x32300)
{
char tmppath[PATH_MAX], curpath[PATH_MAX];
unreal_getpathname(path, curpath);
snprintf(tmppath, PATH_MAX, "%s/%s.%s", curpath, d->module,
MOD_EXTENSION);
config_progress("Unable to resolve symbol %s, attempting to load %s to find it", d->symbol, tmppath);
Module_Create(tmppath);
}
else
{
config_progress("Unable to resolve symbol %s, attempting to load %s to find it", d->symbol, d->module);
Module_Create(d->module);
}
*(d->pointer) = Module_SymX(d->symbol, &parental);
if (!*(d->pointer)) {
config_progress("module dependancy error: cannot resolve symbol %s",
@@ -797,13 +940,13 @@ int Module_Depend_Resolve(Module *p)
}
/* m_module.
* originally by ?? (codemastr?)
* I (Syzop) changed it so it's now public for users too,
* as quite some people (and users) requested they should have the
* right to see what kind of weird modules are loaded on the server,
* especially since people like to load spy modules these days.
* by Stskeeps, codemastr, Syzop.
* Changed it so it's now public for users too, as quite some people
* (and users) requested they should have the right to see what kind
* of weird modules are loaded on the server, especially since people
* like to load spy modules these days.
* I do not consider this sensitive information, but just in case
* I stripped the version string for non-admins (eg: normal users).
* I stripped the version string for non-admins (eg: normal users). -- Syzop
*/
int m_module(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
@@ -811,6 +954,9 @@ int m_module(aClient *cptr, aClient *sptr, int parc, char *parv[])
int i;
char tmp[1024], *p;
aCommand *mptr;
#ifdef DEBUGMODE
Efunction *e;
#endif
/* Opers can do /module <servername> */
if ((parc > 1) && (IsServer(cptr) || IsOper(sptr)) &&
@@ -831,8 +977,6 @@ int m_module(aClient *cptr, aClient *sptr, int parc, char *parv[])
strcat(tmp, "[PERM] ");
if (!(mi->options & MOD_OPT_OFFICIAL))
strcat(tmp, "[3RD] ");
if (!mi->compilecheck)
strcat(tmp, "[OLD?] ");
if (!IsOper(sptr))
sendto_one(sptr, ":%s NOTICE %s :*** %s (%s)%s", me.name, sptr->name,
mi->header->name, mi->header->description,
@@ -853,7 +997,7 @@ int m_module(aClient *cptr, aClient *sptr, int parc, char *parv[])
continue;
sprintf(p, "%d ", i);
p += strlen(p);
if (p > tmp+480)
if (p > tmp+380)
{
sendto_one(sptr, ":%s NOTICE %s :Hooks: %s", me.name, sptr->name, tmp);
tmp[0] = '\0';
@@ -871,7 +1015,7 @@ int m_module(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
sprintf(p, "%s ", mptr->cmd);
p += strlen(p);
if (p > tmp+470)
if (p > tmp+380)
{
sendto_one(sptr, ":%s NOTICE %s :Override: %s", me.name, sptr->name, tmp);
tmp[0] = '\0';
@@ -880,6 +1024,20 @@ int m_module(aClient *cptr, aClient *sptr, int parc, char *parv[])
}
}
sendto_one(sptr, ":%s NOTICE %s :Override: %s", me.name, sptr->name, tmp);
#ifdef DEBUGMODE
sendnotice(sptr, "Efunctions dump:");
for (i=0; i < MAXEFUNCTIONS; i++)
if ((e = Efunctions[i]))
{
sendnotice(sptr, "type=%d, name=%s, pointer=%p %s, owner=%s",
e->type,
efunction_table[e->type].name ? efunction_table[e->type].name : "<null>",
e->func.voidfunc,
*efunction_table[e->type].funcptr == e->func.voidfunc ? " [ACTIVE]" : "",
e->owner ? e->owner->header->name : "<null>");
}
#endif
return 1;
}
@@ -1111,6 +1269,114 @@ Hook *HookDel(Hook *hook)
return NULL;
}
Callback *CallbackAddMain(Module *module, int cbtype, int (*func)(), void (*vfunc)(), char *(*cfunc)())
{
Callback *p;
p = (Callback *) MyMallocEx(sizeof(Callback));
if (func)
p->func.intfunc = func;
if (vfunc)
p->func.voidfunc = vfunc;
if (cfunc)
p->func.pcharfunc = cfunc;
p->type = cbtype;
p->owner = module;
AddListItem(p, Callbacks[cbtype]);
if (module) {
ModuleObject *cbobj = (ModuleObject *)MyMallocEx(sizeof(ModuleObject));
cbobj->object.callback = p;
cbobj->type = MOBJ_CALLBACK;
AddListItem(cbobj, module->objects);
module->errorcode = MODERR_NOERROR;
}
return p;
}
Callback *CallbackDel(Callback *cb)
{
Callback *p, *q;
for (p = Callbacks[cb->type]; p; p = p->next) {
if (p == cb) {
q = p->next;
DelListItem(p, Callbacks[cb->type]);
if (RCallbacks[cb->type] == p)
RCallbacks[cb->type] = NULL;
if (p->owner) {
ModuleObject *cbobj;
for (cbobj = p->owner->objects; cbobj; cbobj = cbobj->next) {
if ((cbobj->type == MOBJ_CALLBACK) && (cbobj->object.callback == p)) {
DelListItem(cbobj, cb->owner->objects);
MyFree(cbobj);
break;
}
}
}
MyFree(p);
return q;
}
}
return NULL;
}
Efunction *EfunctionAddMain(Module *module, int eftype, int (*func)(), void (*vfunc)(), void *(*pvfunc)(), char *(*cfunc)())
{
Efunction *p;
if (!module || !(module->options & MOD_OPT_OFFICIAL))
{
module->errorcode = MODERR_INVALID;
return NULL;
}
p = (Efunction *) MyMallocEx(sizeof(Efunction));
if (func)
p->func.intfunc = func;
if (vfunc)
p->func.voidfunc = vfunc;
if (pvfunc)
p->func.pvoidfunc = pvfunc;
if (cfunc)
p->func.pcharfunc = cfunc;
p->type = eftype;
p->owner = module;
AddListItem(p, Efunctions[eftype]);
if (module) {
ModuleObject *cbobj = (ModuleObject *)MyMallocEx(sizeof(ModuleObject));
cbobj->object.efunction = p;
cbobj->type = MOBJ_EFUNCTION;
AddListItem(cbobj, module->objects);
module->errorcode = MODERR_NOERROR;
}
return p;
}
Efunction *EfunctionDel(Efunction *cb)
{
Efunction *p, *q;
for (p = Efunctions[cb->type]; p; p = p->next) {
if (p == cb) {
q = p->next;
DelListItem(p, Efunctions[cb->type]);
if (*efunction_table[cb->type].funcptr == p)
*efunction_table[cb->type].funcptr = NULL;
if (p->owner) {
ModuleObject *cbobj;
for (cbobj = p->owner->objects; cbobj; cbobj = cbobj->next) {
if ((cbobj->type == MOBJ_EFUNCTION) && (cbobj->object.efunction == p)) {
DelListItem(cbobj, cb->owner->objects);
MyFree(cbobj);
break;
}
}
}
MyFree(p);
return q;
}
}
return NULL;
}
Cmdoverride *CmdoverrideAdd(Module *module, char *name, iFP function)
{
aCommand *p;
@@ -1122,6 +1388,15 @@ Cmdoverride *CmdoverrideAdd(Module *module, char *name, iFP function)
module->errorcode = MODERR_NOTFOUND;
return NULL;
}
for (ovr=p->overriders; ovr; ovr=ovr->next)
{
if ((ovr->owner == module) && (ovr->func == function))
{
if (module)
module->errorcode = MODERR_EXISTS;
return NULL;
}
}
ovr = MyMallocEx(sizeof(Cmdoverride));
ovr->func = function;
ovr->owner = module; /* TODO: module objects */
@@ -1236,11 +1511,162 @@ static const char *module_error_str[] = {
"No error",
"Object already exists",
"No space available",
"Invalid parameter(s)"
"Invalid parameter(s)",
"Object was not found"
};
const char *ModuleGetErrorStr(Module *module)
{
if (module->errorcode >= sizeof(module_error_str)/sizeof(module_error_str[0]))
return NULL;
return module_error_str[module->errorcode];
}
static int num_callbacks(int cbtype)
{
Callback *e;
int cnt = 0;
for (e = Callbacks[cbtype]; e; e = e->next)
if (!e->willberemoved)
cnt++;
return cnt;
}
/** Ensure that all required callbacks are in place and meet
* all specified requirements (eg: a cloaking module should
* be loaded).
*/
int callbacks_check(void)
{
int i;
if (!num_callbacks(CALLBACKTYPE_CLOAK) || !num_callbacks(CALLBACKTYPE_CLOAKKEYCSUM))
{
#ifndef _WIN32
config_error("ERROR: No cloaking module loaded. (hint: you probably want to load cloak.so)");
#else
config_error("ERROR: No cloaking module loaded. (hint: you probably want to load modules\\cloak.dll)");
#endif
/* TEMPORARY! */
config_error("If you are upgrading from 3.2 (or any older version), be sure to read the release notes "
"or www.vulnscan.org/tmp/newcloak.txt regarding the cloaking change!");
return -1;
}
for (i=0; i < MAXCALLBACKS; i++)
{
if (num_callbacks(i) > 1)
{
config_error("ERROR: Multiple callbacks loaded for type %d. "
"Make sure you only load 1 module of 1 type (eg: only 1 cloaking module)",
i); /* TODO: make more clear? */
return -1;
}
}
return 0;
}
void callbacks_switchover(void)
{
Callback *e;
int i;
/* Now set the real callback, and tag the new one
* as 'willberemoved' if needed.
*/
for (i=0; i < MAXCALLBACKS; i++)
for (e = Callbacks[i]; e; e = e->next)
if (!e->willberemoved)
{
RCallbacks[i] = e; /* This is the new one. */
if (!(e->owner->options & MOD_OPT_PERM))
e->willberemoved = 1;
break;
}
}
static int num_efunctions(int eftype)
{
Efunction *e;
int cnt = 0;
#ifdef DEBUGMODE
if ((eftype < 0) || (eftype >= MAXEFUNCTIONS))
abort();
#endif
for (e = Efunctions[eftype]; e; e = e->next)
if (!e->willberemoved)
cnt++;
return cnt;
}
/** Ensure that all efunctions are present. */
int efunctions_check(void)
{
int i, n, errors=0;
for (i=0; i < MAXEFUNCTIONS; i++)
if (efunction_table[i].name)
{
n = num_efunctions(i);
if ((n != 1) && (errors > 10))
{
config_error("[--efunction errors truncated to prevent flooding--]");
break;
}
if (n < 1)
{
config_error("ERROR: efunction '%s' not found, you probably did not "
"load commands.so properly (or not all required m_* modules)",
efunction_table[i].name);
errors++;
} else
if (n > 1)
{
config_error("ERROR: efunction '%s' was found %d times, perhaps you "
"loaded commands.so twice or commands.so and a/the m_*.so module(s)",
efunction_table[i].name, n);
errors++;
}
}
return errors ? -1 : 0;
}
void efunctions_switchover(void)
{
Efunction *e;
int i;
/* Now set the real efunction, and tag the new one
* as 'willberemoved' if needed.
*/
for (i=0; i < MAXEFUNCTIONS; i++)
for (e = Efunctions[i]; e; e = e->next)
if (!e->willberemoved)
{
*efunction_table[i].funcptr = e->func.voidfunc; /* This is the new one. */
if (!(e->owner->options & MOD_OPT_PERM))
e->willberemoved = 1;
break;
}
}
#ifdef _WIN32
const char *our_dlerror(void)
{
static char errbuf[513];
DWORD err = GetLastError();
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err,
0, errbuf, 512, NULL);
return errbuf;
}
#endif
+408 -28
View File
@@ -18,18 +18,29 @@
#*
#* $Id$
#*/
# major edit from fez - to compile objects individually...
INCLUDES = ../include/struct.h ../include/config.h \
../include/sys.h ../include/common.h ../include/version.h \
../include/h.h ../include/numeric.h ../include/msg.h \
../include/dynconf.h ../include/modules.h ../include/setup.h
INCLUDES = ../include/auth.h ../include/badwords.h ../include/channel.h \
../include/class.h ../include/common.h ../include/config.h ../include/dbuf.h \
../include/dynconf.h ../include/events.h ../include/fdlist.h ../include/h.h \
../include/hash.h ../include/inet.h ../include/ircsprintf.h \
../include/license.h ../include/macros.h ../include/md5.h \
../include/modules.h ../include/modversion.h ../include/msg.h ../include/nameser.h \
../include/numeric.h ../include/proto.h ../include/res.h \
../include/resource.h ../include/setup.h ../include/sjoin.h \
../include/sock.h ../include/ssl.h ../include/struct.h ../include/sys.h \
../include/threads.h ../include/types.h ../include/url.h \
../include/version.h ../include/whowas.h ../include/zip.h
R_MODULES=m_sethost.so m_chghost.so m_chgident.so m_setname.so \
m_setident.so m_sdesc.so m_svsmode.so m_swhois.so\
m_svsmotd.so m_svsnline.so m_who.so m_mkpasswd.so \
m_away.so m_svsnoop.so m_svso.so m_svsnick.so \
#just changing this to cloak.so could be a ./Config option...
#R_MODULES=cloak.so
R_MODULES= \
m_sethost.so m_chghost.so m_chgident.so m_setname.so \
m_setident.so m_sdesc.so m_svsmode.so m_swhois.so\
m_svsmotd.so m_svsnline.so m_who.so m_mkpasswd.so \
m_away.so m_svsnoop.so m_svso.so m_svsnick.so \
m_adminchat.so m_akill.so m_chgname.so m_guest.so m_htm.so m_kill.so \
m_lag.so m_message.so m_nachat.so m_oper.so m_pingpong.so \
m_lag.so m_message.so m_nachat.so m_oper.so m_pingpong.so \
m_quit.so m_rakill.so m_rping.so m_sendumode.so m_sqline.so \
m_tsctl.so m_unkline.so m_unsqline.so m_unzline.so m_whois.so \
m_tkl.so m_vhost.so m_cycle.so m_svsjoin.so m_svspart.so \
@@ -42,26 +53,31 @@ R_MODULES=m_sethost.so m_chghost.so m_chgident.so m_setname.so \
m_trace.so m_netinfo.so m_links.so m_help.so m_rules.so \
m_close.so m_map.so m_eos.so m_server.so m_stats.so \
m_svsfline.so m_dccdeny.so m_undccdeny.so m_whowas.so \
m_connect.so
m_connect.so m_dccallow.so m_userip.so m_nick.so m_user.so \
m_mode.so m_watch.so m_part.so m_join.so m_motd.so m_opermotd.so \
m_botmotd.so m_lusers.so cloak.so
COMMANDS=m_sethost.c m_chghost.c m_chgident.c m_setname.c m_setident.c \
m_sdesc.c m_svsmode.c m_swhois.c m_svsmotd.c m_svsnline.c \
m_who.c m_mkpasswd.c m_away.c m_svsnoop.c m_svso.c m_svsnick.c \
m_adminchat.c m_akill.c m_chgname.c m_guest.c m_htm.c m_kill.c \
m_lag.c m_message.c m_nachat.c m_oper.c m_pingpong.c \
m_quit.c m_rakill.c m_rping.c m_sendumode.c m_sqline.c \
m_tsctl.c m_unkline.c m_unsqline.c m_unzline.c m_whois.c \
m_tkl.c m_vhost.c m_cycle.c m_svsjoin.c m_svspart.c \
m_svslusers.c m_svswatch.c m_svssilence.c m_sendsno.c \
m_svssno.c m_sajoin.c m_sapart.c m_samode.c m_kick.c m_topic.c \
m_invite.c m_list.c m_time.c m_svskill.c m_sjoin.c \
m_pass.c m_userhost.c m_ison.c m_silence.c m_knock.c m_umode2.c \
m_squit.c m_protoctl.c m_addline.c m_addmotd.c m_addomotd.c \
m_wallops.c m_admin.c m_globops.c m_locops.c m_chatops.c \
m_trace.c m_netinfo.c m_links.c m_help.c m_rules.c \
m_close.c m_map.c m_eos.c m_server.c m_stats.c \
m_svsfline.c m_dccdeny.c m_undccdeny.c m_whowas.c \
m_connect.c
#note change of .c to .o
COMMANDS=m_sethost.o m_chghost.o m_chgident.o m_setname.o m_setident.o \
m_sdesc.o m_svsmode.o m_swhois.o m_svsmotd.o m_svsnline.o \
m_who.o m_mkpasswd.o m_away.o m_svsnoop.o m_svso.o m_svsnick.o \
m_adminchat.o m_akill.o m_chgname.o m_guest.o m_htm.o m_kill.o \
m_lag.o m_message.o m_nachat.o m_oper.o m_pingpong.o \
m_quit.o m_rakill.o m_rping.o m_sendumode.o m_sqline.o \
m_tsctl.o m_unkline.o m_unsqline.o m_unzline.o m_whois.o \
m_tkl.o m_vhost.o m_cycle.o m_svsjoin.o m_svspart.o \
m_svslusers.o m_svswatch.o m_svssilence.o m_sendsno.o \
m_svssno.o m_sajoin.o m_sapart.o m_samode.o m_kick.o m_topic.o \
m_invite.o m_list.o m_time.o m_svskill.o m_sjoin.o \
m_pass.o m_userhost.o m_ison.o m_silence.o m_knock.o m_umode2.o \
m_squit.o m_protoctl.o m_addline.o m_addmotd.o m_addomotd.o \
m_wallops.o m_admin.o m_globops.o m_locops.o m_chatops.o \
m_trace.o m_netinfo.o m_links.o m_help.o m_rules.o \
m_close.o m_map.o m_eos.o m_server.o m_stats.o \
m_svsfline.o m_dccdeny.o m_undccdeny.o m_whowas.o \
m_connect.o m_dccallow.o m_userip.o m_nick.o m_user.o \
m_mode.o m_watch.o m_part.o m_join.o m_motd.o m_opermotd.o \
m_botmotd.o m_lusers.o
MODULES=commands.so $(R_MODULES)
@@ -79,6 +95,314 @@ commands.so: l_commands.c $(COMMANDS) $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -o commands.so l_commands.c \
$(COMMANDS)
#############################################################################
# commands.so's .o's section
#############################################################################
m_adminchat.o: m_adminchat.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_adminchat.c
m_akill.o: m_akill.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_akill.c
m_chgname.o: m_chgname.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_chgname.c
m_guest.o: m_guest.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_guest.c
m_htm.o: m_htm.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_htm.c
m_kill.o: m_kill.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_kill.c
m_lag.o: m_lag.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_lag.c
m_message.o: m_message.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_message.c
m_nachat.o: m_nachat.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_nachat.c
m_oper.o: m_oper.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_oper.c
m_pingpong.o: m_pingpong.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_pingpong.c
m_quit.o: m_quit.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_quit.c
m_rakill.o: m_rakill.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_rakill.c
m_rping.o: m_rping.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_rping.c
m_sendumode.o: m_sendumode.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_sendumode.c
m_sqline.o: m_sqline.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_sqline.c
m_tsctl.o: m_tsctl.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_tsctl.c
m_unkline.o: m_unkline.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_unkline.c
m_unsqline.o: m_unsqline.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_unsqline.c
m_unzline.o: m_unzline.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_unzline.c
m_whois.o: m_whois.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_whois.c
m_sethost.o: m_sethost.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_sethost.c
m_chghost.o: m_chghost.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_chghost.c
m_chgident.o: m_chgident.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_chgident.c
m_setident.o: m_setident.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_setident.c
m_setname.o: m_setname.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_setname.c
m_sdesc.o: m_sdesc.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_sdesc.c
m_svsmode.o: m_svsmode.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svsmode.c
m_swhois.o: m_swhois.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_swhois.c
m_svsmotd.o: m_svsmotd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svsmotd.c
m_svsnline.o: m_svsnline.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svsnline.c
m_who.o: m_who.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_who.c
m_mkpasswd.o: m_mkpasswd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_mkpasswd.c
m_away.o: m_away.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_away.c
m_svsnoop.o: m_svsnoop.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svsnoop.c
m_svso.o: m_svso.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svso.c
m_svsnick.o: m_svsnick.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svsnick.c
m_tkl.o: m_tkl.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_tkl.c
m_vhost.o: m_vhost.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_vhost.c
m_cycle.o: m_cycle.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_cycle.c
m_svsjoin.o: m_svsjoin.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svsjoin.c
m_svspart.o: m_svspart.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svspart.c
m_svslusers.o: m_svslusers.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svslusers.c
m_svswatch.o: m_svswatch.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svswatch.c
m_svssilence.o: m_svssilence.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svssilence.c
m_sendsno.o: m_sendsno.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_sendsno.c
m_svssno.o: m_svssno.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svssno.c
m_sajoin.o: m_sajoin.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_sajoin.c
m_sapart.o: m_sapart.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_sapart.c
m_samode.o: m_samode.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_samode.c
m_kick.o: m_kick.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_kick.c
m_topic.o: m_topic.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_topic.c
m_invite.o: m_invite.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_invite.c
m_list.o: m_list.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_list.c
m_time.o: m_time.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_time.c
m_svskill.o: m_svskill.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svskill.c
m_sjoin.o: m_sjoin.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_sjoin.c
m_pass.o: m_pass.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_pass.c
m_userhost.o: m_userhost.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_userhost.c
m_ison.o: m_ison.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_ison.c
m_silence.o: m_silence.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_silence.c
m_knock.o: m_knock.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_knock.c
m_umode2.o: m_umode2.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_umode2.c
m_squit.o: m_squit.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_squit.c
m_protoctl.o: m_protoctl.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_protoctl.c
m_addline.o: m_addline.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_addline.c
m_addmotd.o: m_addmotd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_addmotd.c
m_addomotd.o: m_addomotd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_addomotd.c
m_wallops.o: m_wallops.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_wallops.c
m_admin.o: m_admin.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_admin.c
m_globops.o: m_globops.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_globops.c
m_locops.o: m_locops.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_locops.c
m_chatops.o: m_chatops.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_chatops.c
m_trace.o: m_trace.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_trace.c
m_netinfo.o: m_netinfo.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_netinfo.c
m_links.o: m_links.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_links.c
m_help.o: m_help.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_help.c
m_rules.o: m_rules.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_rules.c
m_close.o: m_close.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_close.c
m_map.o: m_map.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_map.c
m_eos.o: m_eos.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_eos.c
m_server.o: m_server.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_server.c
m_stats.o: m_stats.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_stats.c
m_svsfline.o: m_svsfline.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_svsfline.c
m_dccdeny.o: m_dccdeny.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_dccdeny.c
m_undccdeny.o: m_undccdeny.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_undccdeny.c
m_whowas.o: m_whowas.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_whowas.c
m_connect.o: m_connect.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_connect.c
m_dccallow.o: m_dccallow.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_dccallow.c
m_userip.o: m_userip.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_userip.c
m_nick.o: m_nick.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_nick.c
m_user.o: m_user.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_user.c
m_mode.o: m_mode.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_mode.c
m_watch.o: m_watch.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_watch.c
m_part.o: m_part.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_part.c
m_join.o: m_join.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_join.c
m_motd.o: m_motd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_motd.c
m_opermotd.o: m_opermotd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_opermotd.c
m_botmotd.o: m_botmotd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_botmotd.c
m_lusers.o: m_lusers.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -c m_lusers.c
#############################################################################
# .so's section
#############################################################################
m_adminchat.so: m_adminchat.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_adminchat.so m_adminchat.c
@@ -431,5 +755,61 @@ m_connect.so: m_connect.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_connect.so m_connect.c
m_dccallow.so: m_dccallow.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_dccallow.so m_dccallow.c
m_userip.so: m_userip.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_userip.so m_userip.c
m_nick.so: m_nick.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_nick.so m_nick.c
m_user.so: m_user.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_user.so m_user.c
m_mode.so: m_mode.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_mode.so m_mode.c
m_watch.so: m_watch.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_watch.so m_watch.c
m_part.so: m_part.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_part.so m_part.c
m_join.so: m_join.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_join.so m_join.c
m_motd.so: m_motd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_motd.so m_motd.c
m_opermotd.so: m_opermotd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_opermotd.so m_opermotd.c
m_botmotd.so: m_botmotd.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_botmotd.so m_botmotd.c
m_lusers.so: m_lusers.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_lusers.so m_lusers.c
#############################################################################
# and now the remaining modules...
#############################################################################
cloak.so: cloak.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o cloak.so cloak.c
clean:
$(RM) -f *.o *.so *~ core
+408
View File
@@ -0,0 +1,408 @@
/*
* IRC - Internet Relay Chat, src/modules/cloak.c
* (C) 2004 The UnrealIRCd Team
*
* See file AUTHORS in IRC package for additional names of
* the programmers.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* 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.
*/
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#ifdef _WIN32
#include "version.h"
#endif
static char *cloak_key1 = NULL, *cloak_key2 = NULL, *cloak_key3 = NULL;
static char cloak_checksum[64];
static int nokeys = 1;
#undef KEY1
#undef KEY2
#undef KEY3
#define KEY1 cloak_key1
#define KEY2 cloak_key2
#define KEY3 cloak_key3
DLLFUNC char *hidehost(char *host);
DLLFUNC char *cloakcsum();
DLLFUNC int cloak_config_test(ConfigFile *, ConfigEntry *, int, int *);
DLLFUNC int cloak_config_run(ConfigFile *, ConfigEntry *, int);
DLLFUNC int cloak_config_posttest(int *);
static char *hidehost_ipv4(char *host);
static char *hidehost_ipv6(char *host);
static char *hidehost_normalhost(char *host);
static inline unsigned int downsample(char *i);
Callback *cloak = NULL, *cloak_csum = NULL;
ModuleHeader MOD_HEADER(cloak)
= {
"cloak",
"$Id$",
"Official cloaking module (md5)",
"3.2-b8-1",
NULL
};
DLLFUNC int MOD_TEST(cloak)(ModuleInfo *modinfo)
{
cloak = CallbackAddPCharEx(modinfo->handle, CALLBACKTYPE_CLOAK, hidehost);
if (!cloak)
{
config_error("cloak: Error while trying to install cloaking callback!");
return MOD_FAILED;
}
cloak_csum = CallbackAddPCharEx(modinfo->handle, CALLBACKTYPE_CLOAKKEYCSUM, cloakcsum);
if (!cloak_csum)
{
config_error("cloak: Error while trying to install cloaking checksum callback!");
return MOD_FAILED;
}
HookAddEx(modinfo->handle, HOOKTYPE_CONFIGTEST, cloak_config_test);
HookAddEx(modinfo->handle, HOOKTYPE_CONFIGPOSTTEST, cloak_config_posttest);
return MOD_SUCCESS;
}
DLLFUNC int MOD_INIT(cloak)(ModuleInfo *modinfo)
{
MARK_AS_OFFICIAL_MODULE(modinfo);
HookAddEx(modinfo->handle, HOOKTYPE_CONFIGRUN, cloak_config_run);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(cloak)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(cloak)(int module_unload)
{
if (cloak_key1)
{
MyFree(cloak_key1);
MyFree(cloak_key2);
MyFree(cloak_key3);
}
return MOD_SUCCESS;
}
static int check_badrandomness(char *key)
{
char gotlowcase=0, gotupcase=0, gotdigit=0;
char *p;
for (p=key; *p; p++)
if (islower(*p))
gotlowcase = 1;
else if (isupper(*p))
gotupcase = 1;
else if (isdigit(*p))
gotdigit = 1;
if (gotlowcase && gotupcase && gotdigit)
return 0;
return 1;
}
DLLFUNC int cloak_config_test(ConfigFile *cf, ConfigEntry *ce, int type, int *errs)
{
ConfigEntry *cep;
int keycnt = 0, errors = 0;
char *keys[3];
if (type != CONFIG_CLOAKKEYS)
return 0;
nokeys = 0;
for (cep = ce->ce_entries; cep; cep = cep->ce_next)
{
keycnt++;
/* TODO: check randomness */
if (check_badrandomness(cep->ce_varname))
{
config_error("%s:%i: set::cloak-keys: (key %d) Keys should be mixed a-zA-Z0-9, "
"like \"a2JO6fh3Q6w4oN3s7\"", cep->ce_fileptr->cf_filename, cep->ce_varlinenum, keycnt);
errors++;
}
if (strlen(cep->ce_varname) < 5)
{
config_error("%s:%i: set::cloak-keys: (key %d) Each key should be at least 5 characters",
cep->ce_fileptr->cf_filename, cep->ce_varlinenum, keycnt);
errors++;
}
if (strlen(cep->ce_varname) > 100)
{
config_error("%s:%i: set::cloak-keys: (key %d) Each key should be less than 100 characters",
cep->ce_fileptr->cf_filename, cep->ce_varlinenum, keycnt);
errors++;
}
if (keycnt < 4)
keys[keycnt-1] = cep->ce_varname;
}
if (keycnt != 3)
{
config_error("%s:%i: set::cloak-keys: we want 3 values, not %i!",
ce->ce_fileptr->cf_filename, ce->ce_varlinenum, keycnt);
errors++;
}
if ((keycnt == 3) && (!strcmp(keys[0], keys[1]) || !strcmp(keys[1], keys[2])))
{
config_error("%s:%i: set::cloak-keys: All your 3 keys should be RANDOM, they should not be equal",
ce->ce_fileptr->cf_filename, ce->ce_varlinenum);
errors++;
}
*errs = errors;
return errors ? -1 : 1;
}
DLLFUNC int cloak_config_posttest(int *errs)
{
int errors = 0;
if (nokeys)
{
config_error("set::cloak-keys missing!");
errors++;
}
*errs = errors;
return errors ? -1 : 1;
}
DLLFUNC int cloak_config_run(ConfigFile *cf, ConfigEntry *ce, int type)
{
ConfigEntry *cep;
char buf[512], result[16];
if (type != CONFIG_CLOAKKEYS)
return 0;
/* config test should ensure this goes fine... */
cep = ce->ce_entries;
cloak_key1 = strdup(cep->ce_varname);
cep = cep->ce_next;
cloak_key2 = strdup(cep->ce_varname);
cep = cep->ce_next;
cloak_key3 = strdup(cep->ce_varname);
/* Calculate checksum */
sprintf(buf, "%s:%s:%s", KEY1, KEY2, KEY3);
DoMD5(result, buf, strlen(buf));
ircsprintf(cloak_checksum, "MD5:%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x",
(u_int)(result[0] & 0xf), (u_int)(result[0] >> 4),
(u_int)(result[1] & 0xf), (u_int)(result[1] >> 4),
(u_int)(result[2] & 0xf), (u_int)(result[2] >> 4),
(u_int)(result[3] & 0xf), (u_int)(result[3] >> 4),
(u_int)(result[4] & 0xf), (u_int)(result[4] >> 4),
(u_int)(result[5] & 0xf), (u_int)(result[5] >> 4),
(u_int)(result[6] & 0xf), (u_int)(result[6] >> 4),
(u_int)(result[7] & 0xf), (u_int)(result[7] >> 4),
(u_int)(result[8] & 0xf), (u_int)(result[8] >> 4),
(u_int)(result[9] & 0xf), (u_int)(result[9] >> 4),
(u_int)(result[10] & 0xf), (u_int)(result[10] >> 4),
(u_int)(result[11] & 0xf), (u_int)(result[11] >> 4),
(u_int)(result[12] & 0xf), (u_int)(result[12] >> 4),
(u_int)(result[13] & 0xf), (u_int)(result[13] >> 4),
(u_int)(result[14] & 0xf), (u_int)(result[14] >> 4),
(u_int)(result[15] & 0xf), (u_int)(result[15] >> 4));
return 1;
}
DLLFUNC char *hidehost(char *host)
{
char *p;
/* IPv6 ? */
if (strchr(host, ':'))
return hidehost_ipv6(host);
/* Is this a IPv4 IP? */
for (p = host; *p; p++)
if (!isdigit(*p) && !(*p == '.'))
break;
if (!(*p))
return hidehost_ipv4(host);
/* Normal host */
return hidehost_normalhost(host);
}
DLLFUNC char *cloakcsum()
{
return cloak_checksum;
}
/** Downsamples a 128bit result to 32bits (md5 -> unsigned int) */
static inline unsigned int downsample(char *i)
{
char r[4];
r[0] = i[0] ^ i[1] ^ i[2] ^ i[3];
r[1] = i[4] ^ i[5] ^ i[6] ^ i[7];
r[2] = i[8] ^ i[9] ^ i[10] ^ i[11];
r[3] = i[12] ^ i[13] ^ i[14] ^ i[15];
return ( ((unsigned int)r[0] << 24) +
((unsigned int)r[1] << 16) +
((unsigned int)r[2] << 8) +
(unsigned int)r[3]);
}
static char *hidehost_ipv4(char *host)
{
unsigned int a, b, c, d;
static char buf[512], res[512], res2[512], result[128];
unsigned long n;
unsigned int alpha, beta, gamma;
/*
* Output: ALPHA.BETA.GAMMA.IP
* ALPHA is unique for a.b.c.d
* BETA is unique for a.b.c.*
* GAMMA is unique for a.b.*
* We cloak like this:
* ALPHA = downsample(md5(md5("KEY2:A.B.C.D:KEY3")+"KEY1"));
* BETA = downsample(md5(md5("KEY3:A.B.C:KEY1")+"KEY2"));
* GAMMA = downsample(md5(md5("KEY1:A.B:KEY2")+"KEY3"));
*/
sscanf(host, "%u.%u.%u.%u", &a, &b, &c, &d);
/* ALPHA... */
ircsprintf(buf, "%s:%s:%s", KEY2, host, KEY3);
DoMD5(res, buf, strlen(buf));
strcpy(res+16, KEY1); /* first 16 bytes are filled, append our key.. */
n = strlen(res+16) + 16;
DoMD5(res2, res, n);
alpha = downsample(res2);
/* BETA... */
ircsprintf(buf, "%s:%d.%d.%d:%s", KEY3, a, b, c, KEY1);
DoMD5(res, buf, strlen(buf));
strcpy(res+16, KEY2); /* first 16 bytes are filled, append our key.. */
n = strlen(res+16) + 16;
DoMD5(res2, res, n);
beta = downsample(res2);
/* GAMMA... */
ircsprintf(buf, "%s:%d.%d:%s", KEY1, a, b, KEY2);
DoMD5(res, buf, strlen(buf));
strcpy(res+16, KEY3); /* first 16 bytes are filled, append our key.. */
n = strlen(res+16) + 16;
DoMD5(res2, res, n);
gamma = downsample(res2);
ircsprintf(result, "%X.%X.%X.IP", alpha, beta, gamma);
return result;
}
static char *hidehost_ipv6(char *host)
{
unsigned int a, b, c, d, e, f, g, h;
static char buf[512], res[512], res2[512], result[128];
unsigned long n;
unsigned int alpha, beta, gamma;
/*
* Output: ALPHA:BETA:GAMMA:IP
* ALPHA is unique for a:b:c:d:e:f:g:h
* BETA is unique for a:b:c:d:e:f:g
* GAMMA is unique for a:b:c:d
* We cloak like this:
* ALPHA = downsample(md5(md5("KEY2:a:b:c:d:e:f:g:h:KEY3")+"KEY1"));
* BETA = downsample(md5(md5("KEY3:a:b:c:d:e:f:g:KEY1")+"KEY2"));
* GAMMA = downsample(md5(md5("KEY1:a:b:c:d:KEY2")+"KEY3"));
*/
sscanf(host, "%x:%x:%x:%x:%x:%x:%x:%x",
&a, &b, &c, &d, &e, &f, &g, &h);
/* ALPHA... */
ircsprintf(buf, "%s:%s:%s", KEY2, host, KEY3);
DoMD5(res, buf, strlen(buf));
strcpy(res+16, KEY1); /* first 16 bytes are filled, append our key.. */
n = strlen(res+16) + 16;
DoMD5(res2, res, n);
alpha = downsample(res2);
/* BETA... */
ircsprintf(buf, "%s:%x:%x:%x:%x:%x:%x:%x:%s", KEY3, a, b, c, d, e, f, g, KEY1);
DoMD5(res, buf, strlen(buf));
strcpy(res+16, KEY2); /* first 16 bytes are filled, append our key.. */
n = strlen(res+16) + 16;
DoMD5(res2, res, n);
beta = downsample(res2);
/* GAMMA... */
ircsprintf(buf, "%s:%x:%x:%x:%x:%s", KEY1, a, b, c, d, KEY2);
DoMD5(res, buf, strlen(buf));
strcpy(res+16, KEY3); /* first 16 bytes are filled, append our key.. */
n = strlen(res+16) + 16;
DoMD5(res2, res, n);
gamma = downsample(res2);
ircsprintf(result, "%X:%X:%X:IP", alpha, beta, gamma);
return result;
}
static char *hidehost_normalhost(char *host)
{
char *p;
static char buf[512], res[512], res2[512], result[HOSTLEN+1];
unsigned int alpha, n;
ircsprintf(buf, "%s:%s:%s", KEY1, host, KEY2);
DoMD5(res, buf, strlen(buf));
strcpy(res+16, KEY3); /* first 16 bytes are filled, append our key.. */
n = strlen(res+16) + 16;
DoMD5(res2, res, n);
alpha = downsample(res2);
for (p = host; *p; p++)
if (*p == '.')
if (isalpha(*(p + 1)))
break;
if (*p)
{
unsigned int len;
p++;
ircsprintf(result, "%s-%X.", hidden_host, alpha);
len = strlen(result) + strlen(p);
if (len <= HOSTLEN)
strcat(result, p);
else
strcat(result, p + (len - HOSTLEN));
} else
ircsprintf(result, "%s-%X", hidden_host, alpha);
return result;
}
+65 -8
View File
@@ -47,7 +47,7 @@
/* l_commands.c/commands.so is a special case so we have to do this manually :p */
#ifdef DYNAMIC_LINKING
char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7 PATCH8 PATCH9;
#include "modversion.h"
#endif
extern ModuleHeader m_svsnoop_Header;
@@ -72,7 +72,9 @@ ModuleHeader l_commands_Header
* want to
*/
extern int m_htm_Test(ModuleInfo *modinfo);
extern int m_htm_Test(ModuleInfo *modinfo), m_join_Test(ModuleInfo *modinfo);
extern int m_mode_Test(ModuleInfo *modinfo), m_nick_Test(ModuleInfo *modinfo);
extern int m_tkl_Test(ModuleInfo *modinfo);
extern int m_sethost_Init(ModuleInfo *modinfo), m_setname_Init(ModuleInfo *modinfo), m_chghost_Init(ModuleInfo *modinfo);
extern int m_chgident_Init(ModuleInfo *modinfo), m_setident_Init(ModuleInfo *modinfo), m_sdesc_Init(ModuleInfo *modinfo);
@@ -84,7 +86,7 @@ extern int m_lag_Init(ModuleInfo *modinfo), m_rping_Init(ModuleInfo *modinfo), m
extern int m_tsctl_Init(ModuleInfo *modinfo), m_htm_Init(ModuleInfo *modinfo), m_chgname_Init(ModuleInfo *modinfo);
extern int m_message_Init(ModuleInfo *modinfo), m_whois_Init(ModuleInfo *modinfo), m_quit_Init(ModuleInfo *modinfo);
extern int m_kill_Init(ModuleInfo *modinfo), m_pingpong_Init(ModuleInfo *modinfo), m_oper_Init(ModuleInfo *modinfo);
extern int m_akill_Init(ModuleInfo *modinfo), m_rakill_Init(ModuleInfo *modinfo);
extern int m_akill_Init(ModuleInfo *modinfo), m_rakill_Init(ModuleInfo *modinfo), m_userip_Init(ModuleInfo *modinfo);
extern int m_unzline_Init(ModuleInfo *modinfo), m_unkline_Init(ModuleInfo *modinfo);
extern int m_sqline_Init(ModuleInfo *modinfo), m_unsqline_Init(ModuleInfo *modinfo), m_tkl_Init(ModuleInfo *modinfo);
extern int m_vhost_Init(ModuleInfo *modinfo), m_cycle_Init(ModuleInfo *modinfo), m_svsjoin_Init(ModuleInfo *modinfo);
@@ -111,7 +113,12 @@ extern int m_map_Init(ModuleInfo *modinfo), m_eos_Init(ModuleInfo *modinfo);
extern int m_server_Init(ModuleInfo *modinfo), m_stats_Init(ModuleInfo *modinfo);
extern int m_svsfline_Init(ModuleInfo *modinfo), m_undccdeny_Init(ModuleInfo *modinfo);
extern int m_dccdeny_Init(ModuleInfo *modinfo), m_whowas_Init(ModuleInfo *modinfo);
extern int m_connect_Init(ModuleInfo *modinfo);
extern int m_connect_Init(ModuleInfo *modinfo), m_dccallow_Init(ModuleInfo *modinfo);
extern int m_nick_Init(ModuleInfo *modinfo), m_user_Init(ModuleInfo *modinfo);
extern int m_mode_Init(ModuleInfo *modinfo), m_watch_Init(ModuleInfo *modinfo);
extern int m_part_Init(ModuleInfo *modinfo), m_join_Init(ModuleInfo *modinfo);
extern int m_motd_Init(ModuleInfo *modinfo), m_opermotd_Init(ModuleInfo *modinfo);
extern int m_botmotd_Init(ModuleInfo *modinfo), m_lusers_Init(ModuleInfo *modinfo);
#ifdef GUEST
extern int m_guest_Init(ModuleInfo *modinfo);
#endif
@@ -126,7 +133,7 @@ extern int m_lag_Load(int module_load), m_rping_Load(int module_load), m_sendumo
extern int m_tsctl_Load(int module_load), m_htm_Load(int module_load), m_chgname_Load(int module_load);
extern int m_message_Load(int module_load), m_whois_Load(int module_load), m_quit_Load(int module_load);
extern int m_kill_Load(int module_load), m_pingpong_Load(int module_load), m_oper_Load(int module_load);
extern int m_akill_Load(int module_load), m_rakill_Load(int module_load);
extern int m_akill_Load(int module_load), m_rakill_Load(int module_load), m_userip_Load(int unused);
extern int m_unzline_Load(int module_load), m_unkline_Load(int module_load);
extern int m_sqline_Load(int module_load), m_unsqline_Load(int module_load), m_tkl_Load(int module_load);
extern int m_vhost_Load(int module_load), m_cycle_Load(int module_load), m_svsjoin_Load(int module_load);
@@ -153,7 +160,12 @@ extern int m_map_Load(int module_load), m_eos_Load(int module_load);
extern int m_server_Load(int module_load), m_stats_Load(int module_load);
extern int m_svsfline_Load(int module_load), m_undccdeny_Load(int module_load);
extern int m_dccdeny_Load(int module_load), m_whowas_Load(int module_load);
extern int m_connect_Load(int module_load);
extern int m_connect_Load(int module_load), m_dccallow_Load(int module_load);
extern int m_nick_Load(int module_load), m_user_Load(int module_load);
extern int m_mode_Load(int module_load), m_watch_Load(int module_load);
extern int m_part_Load(int module_load), m_join_Load(int module_load);
extern int m_motd_Load(int module_load), m_opermotd_Load(int module_load);
extern int m_botmotd_Load(int module_load), m_lusers_Load(int module_load);
#ifdef GUEST
extern int m_guest_Load(int module_load);
#endif
@@ -166,7 +178,7 @@ extern int m_adminchat_Unload(), m_nachat_Unload(), m_lag_Unload(), m_rping_Unlo
extern int m_sendumode_Unload(), m_tsctl_Unload(), m_htm_Unload(), m_chgname_Unload();
extern int m_message_Unload(), m_whois_Unload(), m_quit_Unload(), m_kill_Unload();
extern int m_pingpong_Unload(), m_oper_Unload(), m_akill_Unload(), m_rakill_Unload();
extern int m_unzline_Unload(), m_unkline_Unload();
extern int m_unzline_Unload(), m_unkline_Unload(), m_userip_Unload();
extern int m_sqline_Unload(), m_unsqline_Unload(), m_tkl_Unload(), m_vhost_Unload();
extern int m_cycle_Unload(), m_svsjoin_Unload(), m_svspart_Unload(), m_svslusers_Unload();
extern int m_svswatch_Unload(), m_svssilence_Unload(), m_svskill_Unload();
@@ -184,7 +196,11 @@ extern int m_netinfo_Unload(), m_links_Unload(), m_help_Unload();
extern int m_rules_Unload(), m_close_Unload(), m_map_Unload();
extern int m_eos_Unload(), m_server_Unload(), m_stats_Unload();
extern int m_svsfline_Unload(), m_dccdeny_Unload(), m_undccdeny_Unload();
extern int m_whowas_Unload(), m_connect_Unload();
extern int m_whowas_Unload(), m_connect_Unload(), m_dccallow_Unload();
extern int m_nick_Unload(), m_user_Unload(), m_mode_Unload();
extern int m_watch_Unload(), m_part_Unload(), m_join_Unload();
extern int m_motd_Unload(), m_opermotd_Unload(), m_botmotd_Unload();
extern int m_lusers_Unload();
#ifdef GUEST
extern int m_guest_Unload();
#endif
@@ -198,8 +214,13 @@ int l_commands_Test(ModuleInfo *modinfo)
#ifdef SCAN_API
Module p;
#endif
MARK_AS_OFFICIAL_MODULE(modinfo);
ModCmdsInfo = modinfo;
m_htm_Test(ModCmdsInfo);
m_join_Test(ModCmdsInfo);
m_mode_Test(ModCmdsInfo);
m_nick_Test(ModCmdsInfo);
m_tkl_Test(ModCmdsInfo);
return MOD_SUCCESS;
}
@@ -305,6 +326,18 @@ int l_commands_Init(ModuleInfo *modinfo)
m_undccdeny_Init(ModCmdsInfo);
m_whowas_Init(ModCmdsInfo);
m_connect_Init(ModCmdsInfo);
m_dccallow_Init(ModCmdsInfo);
m_userip_Init(ModCmdsInfo);
m_nick_Init(ModCmdsInfo);
m_user_Init(ModCmdsInfo);
m_mode_Init(ModCmdsInfo);
m_watch_Init(ModCmdsInfo);
m_part_Init(ModCmdsInfo);
m_join_Init(ModCmdsInfo);
m_motd_Init(ModCmdsInfo);
m_opermotd_Init(ModCmdsInfo);
m_botmotd_Init(ModCmdsInfo);
m_lusers_Init(ModCmdsInfo);
#ifdef GUEST
m_guest_Init(ModCmdsInfo);
#endif
@@ -404,6 +437,18 @@ int l_commands_Load(int module_load)
m_undccdeny_Load(module_load);
m_whowas_Load(module_load);
m_connect_Load(module_load);
m_dccallow_Load(module_load);
m_userip_Load(module_load);
m_nick_Load(module_load);
m_user_Load(module_load);
m_mode_Load(module_load);
m_watch_Load(module_load);
m_part_Load(module_load);
m_join_Load(module_load);
m_motd_Load(module_load);
m_opermotd_Load(module_load);
m_botmotd_Load(module_load);
m_lusers_Load(module_load);
#ifdef GUEST
m_guest_Load(module_load);
#endif
@@ -503,6 +548,18 @@ int l_commands_Unload(int module_unload)
m_undccdeny_Unload();
m_whowas_Unload();
m_connect_Unload();
m_dccallow_Unload();
m_userip_Unload();
m_nick_Unload();
m_user_Unload();
m_mode_Unload();
m_watch_Unload();
m_part_Unload();
m_join_Unload();
m_motd_Unload();
m_opermotd_Unload();
m_botmotd_Unload();
m_lusers_Unload();
#ifdef GUEST
m_guest_Unload();
#endif

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