1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-26 19:56:38 +02:00
Commit Graph

104 Commits

Author SHA1 Message Date
stskeeps 77317ec9f7 - Added HookAddCfg as a more typesafe way to add
HOOKTYPE_CONFIGRUN/CONFIGTEST. Was needed for Velcro and possibly other
  situations
- Some more Velcro changes to make it fit into 3.3
2007-06-06 15:36:40 +00:00
stskeeps 548cf88bce - Fixed CommandAdd prototype a bit 2007-05-14 19:26:07 +00:00
Bram Matthys 22c4007ee2 - Modulized channel mode +G (src/modules/chanmodes/chmode_upG.c) 2006-12-03 20:49:56 +00:00
Bram Matthys df0588531f - /INVITE's from people on the silence list are now (silently) ignored, suggested by
White_Magic (#0002478).
2006-11-12 20:27:37 +00:00
Bram Matthys 4aa480a48e - [internal] Made a spamfilter_build_user_string function that will build the spamfilter
user target string (nick!user@host:info), insteaf of doing it at like 5 places.
- Spamfilter target 'u' (user): the host field (nick!user@HOST:realname) is now escaped
  with brackets if it's an IPv6 address, eg: blah!blah@[1:2:3:4:5:6:7:8]:hello, reported
  by aquanight and others (#0003010).
2006-11-04 00:11:47 +00:00
Bram Matthys d988ffa7ab - Added HOOKTYPE_CAN_KICK (sptr, who, chptr, comment, sptr_flags, who_flags). Returns an
error message if the kick should be denied. The upper layer (thus NOT you) takes care
  of OperOverride.
- Modulized channel mode +Q (src/modules/chanmodes/chmode_upQ.c)
(unmentioned: ripped out old MODE_FLOODLIMIT stuff -- 2 lines)
2006-08-21 23:03:31 +00:00
Bram Matthys 9ad0ad77d7 - Moved HOOKTYPE_LOCAL_NICKCHANGE and HOOKTYPE_REMOTE_NICKCHANGE to *after* the nickchange.
As a consequence of this the last parameter you get in your hook is now 'oldnick' rather
  than 'newnick'. So the new nick is in sptr->name now and oldnick in last parameter.
- Added HOOKTYPE_PRE_CHANMSG, this should now be used for blocking/morphing text.
  It has the parameters: sptr, chptr, text, notice
- HOOKTYPE_CHANMSG now no longer allows one to block the text (use HOOKTYPE_PRE_CHANMSG for
  that). It's also moved to after the message was actually sent.
- Added HOOKTYPE_KNOCK (sptr, chptr)
- Added HOOKTYPE_MODECHAR_FIXME. Internal for now, will be replaced with a proper
  HOOKTYPE_MODECHAR later (and arguments will change). It's just an internal hack for
  chmode +f for now ;).
- Updated indent.pro to use length=110. It still does not indent how I want it to be though,
  so don't use it yet ;).
- Moved channel mode +f to src/modules/chanmodes/chmode_f.c, interestingly enough this took
  longer than recoding extcmodes paramter support and moving chan mode +j.
  It's not only looking like a complex channel mode, it actually *IS* one ;).
  TODO: make sure it actually works, and fix sjoining (partly not implemented yet->crash) ;p
2006-08-19 22:28:44 +00:00
Bram Matthys 81ae7da025 - Start of modulizing of channel modes. This basically just means we will be using extcmodes
for everything. Recode of extcmodes partially complete (only 30% or something), using a
  FAST 'slot system' now in the channel structure for paramter modes instead of linked lists.
  Besides the slot system being faster, it also causes less memory fragmentation (and
  memory fragmentation actually causes slower CPU as well, especially when running for a
  long time). Channel modes are still permanent and all.
  I'm first going to move modes to modules and then later on have a go at making them non-
  permanent (already know exactly how to do it, but other things go first ;p).
  Documentation on how all this works will be added later as well. It's really work-in-progress
  at the moment, which means: the API might (or 'will') change.
  Channel modes will be in src/modules/chanmodes, named chmode_<modechar>.c, that's the
  general rule at least.. Some will be 'packed together' like the RFC modes s/n/t/k/l/etc.
  Channel mode 'j' has been moved to src/modules/chanmodes/chmode_j.c which seems to work ok.
  Details (aka: documentation) about which loadmodule's will be needed for which modes
  (like I said, since some will be bundled in for example an 'rfc' module) will also be added
  later. For now it doesn't matter much, since there's only j ;).
  Side note: some +j code is still in the core (only eating 4 bytes per-user and 4 bytes
  per-channel, though), and will remain there for now.
  I did the work of above in 2 days, so ehm.. it's still far from complete, but I don't want
  to wait for one BIG commit which changes half of the ircd :P.
  Added hooks (needs to be documented, like all other hooks, one day ;p):
  HOOKTYPE_CAN_JOIN: called from can_join(), seems more logical than PRE_LOCAL_JOIN, also
  more nicely passes the key and link stuff.
  HOOKTYPE_CAN_SEND: not implemented yet. will be called from can_send()
  HOOKTYPE_CLEANUP_CLIENT: called from free_client()
  HOOKTYPE_CLEANUP_USER: called from free_user()
  HOOKTYPE_CLEANUP_USER2: called from exit_client when freeing a user.. I know, this
  might sound redundant, but then again.. some things REQUIRE a certain order (like before
  freeing membership links).. Or at least I don't want to break the current logic ;).
2006-08-17 15:29:41 +00:00
Bram Matthys cbdd3138c8 Resynch with 3.2* cvs .551 (=post-3.2.5). This should mark the real start of Unreal3.3* 2006-08-05 13:23:53 +00:00
Bram Matthys 704b6260d2 branch off from current unreal3_2_fixes (post-Unreal3.2.3), for Unreal 3.3* (that's the idea at least). 2005-06-22 22:56:06 +00:00
codemastr 2b19a70d31 Redesigned HOOKTYPE_PRE_LOCAL_JOIN 2004-03-04 23:06:54 +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 ee54d529b2 Added HOOKTYPE_REHASH_COMPLETE 2004-02-16 23:03:42 +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 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
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 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
Bram Matthys 3aef23eecf added HOOKTYPE_REMOTE_CHANMODE 2004-01-22 22:47:19 +00:00
codemastr 3185d8c23b Added HOOKTYPE_PRE_LOCAL_QUIT 2004-01-17 20:37:52 +00:00
codemastr e406e0d99a Added EXBCHK_PARAM and some noew logging flags 2004-01-17 19:30:46 +00:00
codemastr aeff467a36 Made extbans use the module objects system 2004-01-09 00:56:15 +00:00
codemastr da3afb3420 Made the extban stuff compatible with the module API 2003-12-20 21:21: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
codemastr 3a5a4947f0 Made it so modules can be reloaded (new image) on /rehash 2003-12-06 01:09:32 +00:00
codemastr 957e72dd98 Added HOOKTYPE_PRE_LOCAL_PART 2003-11-26 19:51:02 +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
stskeeps ba0dd97653 foo 2003-10-31 16:50:10 +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
codemastr 59d73bf18c Added a command override system for modules 2003-09-28 19:43:15 +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
codemastr af2834d5e9 Added HOOKTYPE_REHASHFLAG 2003-09-20 00:20:36 +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 3c96db4e4d - Added HOOKTYPE_UNKUSER_QUIT (disconnects of unregistered clients). 2003-09-14 16:17:38 +00:00
codemastr 09377cf3a0 Module system error reporting support 2003-08-24 19:41:51 +00:00
codemastr e741087ce4 extcmode changes 2003-08-24 00:56:31 +00:00
codemastr 06b63be683 Added ModuleGetOptions and ModuleSetOptions 2003-08-04 20:40:32 +00:00
codemastr 4db7542ee1 Recoded the usermode module system 2003-08-03 23:30:12 +00:00
Bram Matthys 41a0896d6d - First big part of modulized extended channelmodes system 2003-07-29 17:07:17 +00:00
codemastr 5ac4bae7ef Added a system to allow modules to create snomasks 2003-07-01 19:22:24 +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 370acc2abe Made it so it is no longer necessary for modules to copy the ModuleInfo structure 2003-05-10 18:53:50 +00:00
codemastr 740e86e4b9 Added a CommandExists function 2003-05-06 22:26:48 +00:00
codemastr 114cec45b1 New version flag system 2003-05-04 21:30:38 +00:00