summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorjantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864>2009-01-29 02:02:44 +0000
committerjantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864>2009-01-29 02:02:44 +0000
commit308d7937ef6feb4dc543bd871979e03f1d6d6fd3 (patch)
tree6846770c6a0a93b7f9dac828654c4b50b1234d6d /include
parent9c2591c20a27391ce5345f67252535d129168520 (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.h7
-rw-r--r--include/services.h5
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_ {