1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-03 23:13:11 +02:00
Commit Graph

204 Commits

Author SHA1 Message Date
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 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
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 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
Bram Matthys 432e3a3a6c - Win32 crash fixes due to modulizing 2005-02-04 20:03:46 +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 bcfc9b85fb dumdeedum.. modulized fixes (timespan <2d) 2005-02-03 17:11:12 +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 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
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 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
codemastr 191127296a Rewrote some of the previous change to deal with some strange issues 2004-11-26 22:14:30 +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
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 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
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 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
codemastr 58943b710c Added CIDR support 2004-06-17 21:16:58 +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 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 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
codemastr e5f16b777a Made the win32 version use a dynamically linked libc 2004-05-30 00:59:05 +00:00
codemastr 8c89274d3d compile warning cleanups 2004-05-27 22:45:17 +00:00
codemastr c1af4a4516 Added NICKIP 2004-05-27 22:05:58 +00:00
codemastr a49e227bd4 Win32 module fixes for ssl/zip/curl 2004-05-13 16:39:23 +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 ac7aa6ed03 fixed implicit declaration for reread_motdsandrules(). 2004-04-15 22:06:03 +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 3d87f28751 Added check to detect broad /spamfilter masks 2004-03-08 03:38:16 +00:00
codemastr a09d36532e Moved qlines to TKL 2004-02-22 18:41:06 +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 7b3fe6a13d - Modulized: server, stats 2004-02-22 01:57:47 +00:00
Bram Matthys 5afdd3139f removed m_eos... win compile fun 2004-02-22 00:31:12 +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
codemastr f8a13c22b2 Remote include fixes for Windows 2004-02-21 00:52:54 +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 05030fa603 Fixed allow::options::noident 2004-02-19 00:16:26 +00:00
Bram Matthys f775b3cf91 sjoin, pass, userhost, ison, silence modulized... 2004-02-17 00:20:24 +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
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
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
codemastr 0d70cd81d7 Fixed a problem with the snprintf checking code 2004-01-29 22:57:20 +00:00
Bram Matthys d2c6bb5ad5 spamfilter etc... *pray* 2004-01-28 00:16:33 +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
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