aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Matt Ullman2015-10-21 16:36:24 -0400
committerGravatar Matt Ullman2015-10-21 16:40:55 -0400
commitd67efeb58afe84dad077834fe51d4e798d585246 (patch)
treeb2b44e7e9dae4a0935a24d13bac71b890639880d /src
parentnumeric: Add 716 and 717 to the numerics header (diff)
downloadKVIrc-d67efeb58afe84dad077834fe51d4e798d585246.tar.gz
KVIrc-d67efeb58afe84dad077834fe51d4e798d585246.tar.bz2
KVIrc-d67efeb58afe84dad077834fe51d4e798d585246.zip
protocol: Add more support for InspIRCd
Add handlers for Channel Access List Add handlers for Exempt Chanop List Update description for cmode +g
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/kernel/KviIrcConnectionServerInfo.cpp4
-rw-r--r--src/kvirc/sparser/KviIrcServerParser.h4
-rw-r--r--src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp4
-rw-r--r--src/kvirc/sparser/KviIrcServerParser_tables.cpp18
4 files changed, 20 insertions, 10 deletions
diff --git a/src/kvirc/kernel/KviIrcConnectionServerInfo.cpp b/src/kvirc/kernel/KviIrcConnectionServerInfo.cpp
index 948f5de98..d6ce0fcb7 100644
--- a/src/kvirc/kernel/KviIrcConnectionServerInfo.cpp
+++ b/src/kvirc/kernel/KviIrcConnectionServerInfo.cpp
@@ -1174,13 +1174,15 @@ const QString & KviInspIRCdIrcServerInfo::getChannelModeDescription(char mode)
case 'R': return __tr2qs("Only registered nicks can join"); break;
case 'S': return __tr2qs("Strip colors"); break;
case 'T': return __tr2qs("Forbid channel NOTICEs"); break;
+ case 'X': return __tr2qs("Channel Exemptions"); break;
case 'a': return __tr2qs("Protected/administrator nicks"); break;
case 'c': return __tr2qs("No control codes (colors, bold, ..)"); break;
case 'f': return __tr2qs("Kick/[*]ban on message flood ([*]<num>:<secs>)"); break;
- case 'g': return __tr2qs("Block message matching"); break;
+ case 'g': return __tr2qs("Spam filter"); break;
case 'j': return __tr2qs("Join throttling (<num>:<secs>)"); break;
case 'q': return __tr2qs("Channel owners"); break;
case 'u': return __tr2qs("Auditorium: /NAMES and /WHO show only ops"); break;
+ case 'w': return __tr2qs("Channel Access"); break;
case 'y': return __tr2qs("Channel IRC op"); break;
case 'z': return __tr2qs("Need SSL connection to join"); break;
}
diff --git a/src/kvirc/sparser/KviIrcServerParser.h b/src/kvirc/sparser/KviIrcServerParser.h
index 1d95a0228..d878a2447 100644
--- a/src/kvirc/sparser/KviIrcServerParser.h
+++ b/src/kvirc/sparser/KviIrcServerParser.h
@@ -162,6 +162,10 @@ private:
void parseNumericEndOfAList(KviIrcMessage *msg);
void parseNumericReopList(KviIrcMessage *msg);
void parseNumericEndOfReopList(KviIrcMessage * msg);
+ void parseNumericChanAccessList(KviIrcMessage * msg);
+ void parseNumericEndOfChanAccessList(KviIrcMessage * msg);
+ void parseNumericExemptChanOpList(KviIrcMessage * msg);
+ void parseNumericEndOfExemptChanOpList(KviIrcMessage * msg);
void parseNumericInvited(KviIrcMessage * msg);
void parseNumericSpamFilterList(KviIrcMessage *msg);
void parseNumericEndOfSpamFilterList(KviIrcMessage *msg);
diff --git a/src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp b/src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp
index a66d32a61..101513849 100644
--- a/src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp
+++ b/src/kvirc/sparser/KviIrcServerParser_numericHandlers.cpp
@@ -796,6 +796,8 @@ PARSE_NUMERIC_ENDOFLIST(parseNumericEndOfQList,'q',KVI_OUT_BAN,__tr2qs("owner li
PARSE_NUMERIC_ENDOFLIST(parseNumericEndOfAList,'a',KVI_OUT_BAN,__tr2qs("protected/admin list"))
PARSE_NUMERIC_ENDOFLIST(parseNumericEndOfReopList,'R',KVI_OUT_BAN,__tr2qs("reop list"))
PARSE_NUMERIC_ENDOFLIST(parseNumericEndOfSpamFilterList,'g',KVI_OUT_BAN,__tr2qs("spam filter list"))
+PARSE_NUMERIC_ENDOFLIST(parseNumericEndOfChanAccessList,'w',KVI_OUT_INVITEEXCEPT,__tr2qs("channel access list"))
+PARSE_NUMERIC_ENDOFLIST(parseNumericEndOfExemptChanOpList,'X',KVI_OUT_INVITEEXCEPT,__tr2qs("channel exemptions list"))
#define PARSE_NUMERIC_LIST(__funcname,__modechar,__ico,__szWhatQString) \
void KviIrcServerParser::__funcname(KviIrcMessage *msg) \
@@ -830,6 +832,8 @@ PARSE_NUMERIC_LIST(parseNumericQList,'q',KVI_OUT_BAN,__tr2qs("Owner listing"));
PARSE_NUMERIC_LIST(parseNumericAList,'a',KVI_OUT_BAN,__tr2qs("Admin/protected nicks listing"));
PARSE_NUMERIC_LIST(parseNumericReopList,'R',KVI_OUT_BAN,__tr2qs("Reop masks listing"));
PARSE_NUMERIC_LIST(parseNumericSpamFilterList,'g',KVI_OUT_BAN,__tr2qs("Spam filter listing"));
+PARSE_NUMERIC_LIST(parseNumericChanAccessList,'w',KVI_OUT_INVITEEXCEPT,__tr2qs("Channel access listing"));
+PARSE_NUMERIC_LIST(parseNumericExemptChanOpList,'X',KVI_OUT_INVITEEXCEPT,__tr2qs("Channel exemptions listing"));
void KviIrcServerParser::parseNumericWhoReply(KviIrcMessage *msg)
{
diff --git a/src/kvirc/sparser/KviIrcServerParser_tables.cpp b/src/kvirc/sparser/KviIrcServerParser_tables.cpp
index 0f19c0800..11664e589 100644
--- a/src/kvirc/sparser/KviIrcServerParser_tables.cpp
+++ b/src/kvirc/sparser/KviIrcServerParser_tables.cpp
@@ -491,7 +491,7 @@ messageParseProc KviIrcServerParser::m_numericParseProcTable[1000]=
0, // 412 ERR_NOTEXTTOSEND
0, // 413 ERR_NOTOPLEVEL
0, // 414 ERR_WILDTOPLEVEL
- 0, // 415 ERR_BADMASK
+ PTM(otherChannelError), // 415 ERR_BADMASK
0, // 416 ERR_TOOMANYMATCHES, ERR_QUERYTOOLONG
0, // 417
0, // 418
@@ -986,8 +986,8 @@ messageParseProc KviIrcServerParser::m_numericParseProcTable[1000]=
PTM(parseNumericSaslFail), // 907 RPL_SASLALREADYAUTH
PTM(parseNumericSaslFail), // 908 RPL_SASLMECHS
0, // 909
- 0, // 910
- 0, // 911
+ PTM(parseNumericChanAccessList), // 910 RPL_CHANACCESS
+ PTM(parseNumericEndOfChanAccessList), // 911 RPL_ENDOFCHANACCESS
0, // 912
0, // 913
0, // 914
@@ -1011,11 +1011,11 @@ messageParseProc KviIrcServerParser::m_numericParseProcTable[1000]=
0, // 932
0, // 933
0, // 934
- 0, // 935
+ PTM(otherChannelError), // 935 RPL_WORDFILTERTOOLONG
0, // 936 RPL_WORDFILTERED
- 0, // 937
- 0, // 938
- 0, // 939
+ PTM(otherChannelError), // 937 RPL_WORDALREADYEXISTS
+ PTM(otherChannelError), // 938 RPL_NOSUCHWORDFILTER
+ PTM(otherChannelError), // 939 RPL_WORDFILTERFULL
PTM(parseNumericEndOfSpamFilterList), // 940 RPL_SPAMFILTERLIST
PTM(parseNumericSpamFilterList), // 941 RPL_ENDOFSPAMFILTERLIST
0, // 942
@@ -1029,8 +1029,8 @@ messageParseProc KviIrcServerParser::m_numericParseProcTable[1000]=
0, // 950
0, // 951
0, // 952
- 0, // 953
- 0, // 954
+ PTM(parseNumericEndOfExemptChanOpList), // 953 RPL_ENDOFEXEMPTCHANOPLIST
+ PTM(parseNumericExemptChanOpList), // 954 RPL_EXEMPTCHANOPLIST
0, // 955
0, // 956
0, // 957