diff options
author | jantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-29 02:02:44 +0000 |
---|---|---|
committer | jantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-29 02:02:44 +0000 |
commit | 308d7937ef6feb4dc543bd871979e03f1d6d6fd3 (patch) | |
tree | 6846770c6a0a93b7f9dac828654c4b50b1234d6d /include | |
parent | 9c2591c20a27391ce5345f67252535d129168520 (diff) |
Bug 1001: Added support for internal tracking of +j channel mode (throttling).
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@1940 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'include')
-rw-r--r-- | include/extern.h | 7 | ||||
-rw-r--r-- | include/services.h | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/extern.h b/include/extern.h index 600db4ac2..8e6c61ed7 100644 --- a/include/extern.h +++ b/include/extern.h @@ -92,6 +92,7 @@ E void chan_adduser2(User * user, Channel * c); E void add_invite(Channel * chan, char *mask); E void chan_delete(Channel * c); E void del_ban(Channel * chan, char *mask); +E void chan_set_throttle(Channel * chan, char *value); E void chan_set_key(Channel * chan, char *value); E void set_limit(Channel * chan, char *value); E void del_invite(Channel * chan, char *mask); @@ -104,6 +105,8 @@ E void add_exception(Channel * chan, char *mask); E void del_exception(Channel * chan, char *mask); E char *get_flood(Channel * chan); E void set_flood(Channel * chan, char *value); +E char *get_throttle(Channel * chan); +E void set_throttle(Channel * chan, char *value); E char *get_redirect(Channel * chan); E void set_redirect(Channel * chan, char *value); @@ -204,6 +207,8 @@ E void stick_mask(ChannelInfo * ci, AutoKick * akick); E void stick_all(ChannelInfo * ci); E char *cs_get_flood(ChannelInfo * ci); E void cs_set_flood(ChannelInfo * ci, char *value); +E char *cs_get_throttle(ChannelInfo * ci); +E void cs_set_throttle(ChannelInfo * ci, char *value); E char *cs_get_key(ChannelInfo * ci); E void cs_set_key(ChannelInfo * ci, char *value); E char *cs_get_limit(ChannelInfo * ci); @@ -702,6 +707,7 @@ E void pmodule_secret_cmode(int mode); E void pmodule_private_cmode(int mode); E void pmodule_key_mode(int mode); E void pmodule_limit_mode(int mode); +E void pmodule_jointhrottle_mode_check(int (*func) (char *value)); E int anope_get_secret_mode(); E int anope_get_invite_mode(); @@ -1369,6 +1375,7 @@ E void anope_cmd_svid_umode2(User *u, char *ts); E void anope_cmd_svid_umode3(User *u, char *ts); E void anope_cmd_nc_change(User *u); E int anope_flood_mode_check(char *value); +E int anope_jointhrottle_mode_check(char *value); E void anope_cmd_jupe(char *jserver, char *who, char *reason); diff --git a/include/services.h b/include/services.h index 3780b18c5..11a909c40 100644 --- a/include/services.h +++ b/include/services.h @@ -361,6 +361,8 @@ struct ircdvars_ { int cidrchanbei; /* channel bans/excepts/invites support CIDR (syntax: +b *!*@192.168.0.0/15) * 0 for no support, 1 for strict cidr support, anything else * for ircd specific support (nefarious only cares about first /mask) */ + int jmode; /* +j join throttle */ + uint32 chan_jmode; /* Mode */ }; struct ircdcapab_ { @@ -668,6 +670,7 @@ struct chaninfo_ { char *mlock_key; /* NULL if no key */ char *mlock_flood; /* NULL if no +f */ char *mlock_redirect; /* NULL if no +L */ + char *mlock_throttle; /* NULL if no +j */ char *entry_message; /* Notice sent on entering channel */ @@ -990,6 +993,7 @@ struct channel_ { char *key; /* NULL if none */ char *redirect; /* +L; NULL if none */ char *flood; /* +f; NULL if none */ + char *throttle; /* +j: NULL if none */ EList *bans; EList *excepts; EList *invites; @@ -1208,6 +1212,7 @@ typedef struct ircd_proto_ { int (*ircd_valid_nick)(char *nick); int (*ircd_valid_chan)(char *chan); int (*ircd_flood_mode_check)(char *value); + int (*ircd_jointhrottle_mode_check)(char *value); } IRCDProto; typedef struct ircd_modes_ { |