1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-25 20:06:37 +02:00
Commit Graph

279 Commits

Author SHA1 Message Date
codemastr d4059fec92 Rewrote the 005 system to be dynamic and added an API to manipulate it 2004-09-03 21:46:32 +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
codemastr 8440b94865 Added oper::modes 2004-07-18 22:35:55 +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 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 ec338581d9 - Fixed '/stats P' negative usercount bug (#0001691). 2004-06-25 00:15:37 +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
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 58943b710c Added CIDR support 2004-06-17 21:16:58 +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
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 c1af4a4516 Added NICKIP 2004-05-27 22:05:58 +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 16a82b6aeb - Modulized cloaking 2004-05-12 23:05:40 +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
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
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 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 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
codemastr a09d36532e Moved qlines to TKL 2004-02-22 18:41:06 +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
Bram Matthys f775b3cf91 sjoin, pass, userhost, ison, silence modulized... 2004-02-17 00:20:24 +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
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
codemastr 4ce745ca37 SSL fix and added can_setq 2004-01-30 21:13:32 +00:00
Bram Matthys d2c6bb5ad5 spamfilter etc... *pray* 2004-01-28 00:16:33 +00:00
codemastr 560af0ec1b Added set::silence-limit 2004-01-18 20:27:38 +00:00
codemastr e406e0d99a Added EXBCHK_PARAM and some noew logging flags 2004-01-17 19:30:46 +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 5ce3fcc1e3 Fixes for TRE under win32 2004-01-08 19:00:44 +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
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
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
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 af289c8687 Various fixes and changes 2003-12-16 19:39:38 +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
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 dc73bd3a2d - Made win32 work again (broke it by /module patch 35 minutes ago). 2003-11-11 20:20:23 +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 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 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 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
codemastr f3f2390615 Added umode +T (no ctcp) 2003-10-04 20:13:10 +00:00
codemastr 59d73bf18c Added a command override system for modules 2003-09-28 19:43:15 +00:00
codemastr db445c0faf Sped up the message searching functions 2003-09-27 00:29:24 +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 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