summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-02-08 03:09:19 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-02-08 03:09:19 +0000
commit512b5bdaf3b9de1c1cb1d78b921269f78b82e97b (patch)
tree2435caac310109ddcc04bcef4595b60245f5fb8a /include
parentf4db8c5360a71bf2c815602ade39800033f7ae16 (diff)
Rewrote & fixed CAPAB support
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2786 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'include')
-rw-r--r--include/extern.h7
-rw-r--r--include/services.h40
2 files changed, 5 insertions, 42 deletions
diff --git a/include/extern.h b/include/extern.h
index a3d7a1734..e9609dcfb 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -29,7 +29,6 @@ E char *uplink;
/* IRC Variables */
E IRCDVar *ircd;
-E IRCDCAPAB *ircdcap;
E int UseTSMODE; /* hack to get around bahamut clones that don't send TSMODE */
E IRCDProto *ircdproto;
@@ -187,7 +186,6 @@ E Uplink *uplink_server;
/**** ircd.c ****/
E void pmodule_ircd_proto(IRCDProto *);
E void pmodule_ircd_var(IRCDVar * ircdvar);
-E void pmodule_ircd_cap(IRCDCAPAB * cap);
E void pmodule_ircd_version(const char *version);
E void pmodule_ircd_useTSMode(int use);
@@ -473,12 +471,13 @@ E void notice_help(const char *source, User *dest, int message, ...); // MARK_DE
E Server *servlist;
E Server *me_server;
E Server *serv_uplink;
-E uint32 uplink_capab;
-E CapabInfo capab_info[];
+E Flags<CapabType> Capab;
+E CapabInfo Capab_Info[];
E Server *first_server(ServerFlag flag);
E Server *next_server(ServerFlag flag);
+E void CapabParse(int ac, const char **av);
E int is_ulined(const char *server);
E int is_sync(Server *server);
diff --git a/include/services.h b/include/services.h
index 964542ab7..7bfb0134c 100644
--- a/include/services.h
+++ b/include/services.h
@@ -376,7 +376,6 @@ typedef struct session_ Session;
/* Protocol tweaks */
typedef struct ircdvars_ IRCDVar;
-typedef struct ircdcapab_ IRCDCAPAB;
struct ircdvars_ {
const char *name; /* Name of the IRCd command */
@@ -407,14 +406,12 @@ struct ircdvars_ {
int chgreal; /* Change RealName */
int check_nick_id; /* On nick change check if they could be identified */
int knock_needs_i; /* Check if we needed +i when setting NOKNOCK */
- char *chanmodes; /* If the ircd sends CHANMODE in CAPAB this is where we store it */
int token; /* Does Anope support the tokens for the ircd */
int sjb64;
int svsmode_ucmode; /* Can remove User Channel Modes with SVSMODE */
int sglineenforce;
int ts6; /* ircd is TS6 */
int p10; /* ircd is P10 */
- char *nickchars; /* character set */
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) */
@@ -423,39 +420,6 @@ struct ircdvars_ {
int maxmodes; /* Max modes to send per line */
};
-struct ircdcapab_ {
- uint32 noquit;
- uint32 tsmode;
- uint32 unconnect;
- uint32 nickip;
- uint32 nsjoin;
- uint32 zip;
- uint32 burst;
- uint32 ts5;
- uint32 ts3;
- uint32 dkey;
- uint32 pt4;
- uint32 scs;
- uint32 qs;
- uint32 uid;
- uint32 knock;
- uint32 client;
- uint32 ipv6;
- uint32 ssj5;
- uint32 sn2;
- uint32 token;
- uint32 vhost;
- uint32 ssj3;
- uint32 nick2;
- uint32 vl;
- uint32 tlkext;
- uint32 dodkey;
- uint32 dozip;
- uint32 chanmodes;
- uint32 sjb64;
- uint32 nickchars;
-};
-
/*************************************************************************/
/* File version for each database. Was one version for all before but was
@@ -1018,8 +982,8 @@ enum CapabType
/* CAPAB stuffs */
struct CapabInfo
{
- const char *token;
- CapabType flag;
+ std::string Token;
+ CapabType Flag;
};
/*************************************************************************/