summaryrefslogtreecommitdiff
path: root/include/services.h
diff options
context:
space:
mode:
authorrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-02-09 21:01:05 +0000
committerrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-02-09 21:01:05 +0000
commitd7d01bdc5c667a1fafd95241282b58e03b4caa5b (patch)
treef1482d8734da609923c6d8af6bc8fcb0fc187534 /include/services.h
parentd49b3a25fda5f597491e73640dd1e76babc240eb (diff)
Squashed commit: merge next (1.9.1) back to trunk.
SVN users, NOTE: THIS WILL NOT BUILD, NOR SHOULD YOU RUN IT YET. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1953 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'include/services.h')
-rw-r--r--include/services.h43
1 files changed, 31 insertions, 12 deletions
diff --git a/include/services.h b/include/services.h
index 46e21728b..76a2878fa 100644
--- a/include/services.h
+++ b/include/services.h
@@ -542,7 +542,6 @@ struct ircdcapab_ {
uint32 vhost;
uint32 ssj3;
uint32 nick2;
- uint32 umode2;
uint32 vl;
uint32 tlkext;
uint32 dodkey;
@@ -1173,7 +1172,7 @@ typedef struct ircd_modes_ {
#define CUS_HALFOP 0x0004 /* Halfop (+h) */
#define CUS_OWNER 0x0008 /* Owner/Founder (+q) */
#define CUS_PROTECT 0x0010 /* Protected users (+a) */
-#define CUS_DEOPPED 0x0080 /* User has been specifically deopped */
+/* #define CUS_DEOPPED 0x0080 */ /* Removed due to IRCd checking it */
#define MUT_DEOP 0
#define MUT_OP 1
@@ -1218,12 +1217,11 @@ struct capabinfo_ {
#define CAPAB_TOKEN 0x00400000
#define CAPAB_SSJ3 0x00800000
#define CAPAB_NICK2 0x01000000
-#define CAPAB_UMODE2 0x02000000
-#define CAPAB_VL 0x04000000
-#define CAPAB_TLKEXT 0x08000000
-#define CAPAB_CHANMODE 0x10000000
-#define CAPAB_SJB64 0x20000000
-#define CAPAB_NICKCHARS 0x40000000
+#define CAPAB_VL 0x02000000
+#define CAPAB_TLKEXT 0x04000000
+#define CAPAB_CHANMODE 0x08000000
+#define CAPAB_SJB64 0x10000000
+#define CAPAB_NICKCHARS 0x20000000
/*************************************************************************/
@@ -1311,14 +1309,24 @@ private:
virtual void SendTopic(BotInfo *, const char *, const char *, const char *, time_t) = 0;
virtual void SendVhostDel(User *) { }
virtual void SendAkill(const char *, const char *, const char *, time_t, time_t, const char *) = 0;
- virtual void SendSVSKill(const char *source, const char *user, const char *fmt, ...)
+ virtual bool CanSVSKill(const char *source, const char *user, const char *buf)
+ {
+ return true;
+ }
+ virtual bool SendSVSKill(const char *source, const char *user, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE] = "";
va_start(args, fmt);
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
- SendSVSKillInternal(source, user, buf);
+
+ if (CanSVSKill(source, user, buf))
+ {
+ SendSVSKillInternal(source, user, buf);
+ }
+
+ return false;
}
virtual void SendSVSMode(User *, int, const char **) = 0;
virtual void SendMode(BotInfo *bi, const char *dest, const char *fmt, ...)
@@ -1331,14 +1339,25 @@ private:
SendModeInternal(bi, dest, buf);
}
virtual void SendClientIntroduction(const char *, const char *, const char *, const char *, const char *, const char *uid) = 0;
- virtual void SendKick(BotInfo *bi, const char *chan, const char *user, const char *fmt, ...)
+ virtual bool CanKick(BotInfo *bi, const char *chan, const char *user, const char *buf)
+ {
+ return true;
+ }
+ virtual bool SendKick(BotInfo *bi, const char *chan, const char *user, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE] = "";
va_start(args, fmt);
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
- SendKickInternal(bi, chan, user, buf);
+
+ if (CanKick(bi, chan, user, buf))
+ {
+ SendKickInternal(bi, chan, user, buf);
+ return true;
+ }
+
+ return false;
}
virtual void SendNoticeChanops(BotInfo *bi, const char *dest, const char *fmt, ...)
{