X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fserver.h;h=d4fbfd2fee127a4d09580db66d607f3010ef05ee;hp=0117b6313425794f7209d6786dc9f46a8ff7d2c6;hb=9d46ee920ab0687940b3d937189eff7e82025d7b;hpb=ddc5208315db8ca9ca19f6a59ee7caefe631ffc7 diff --git a/core/server.h b/core/server.h index 0117b631..d4fbfd2f 100644 --- a/core/server.h +++ b/core/server.h @@ -49,6 +49,8 @@ class Server : public QThread { QString getNetwork() { return network; } QStringList providesUserHandlers(); + enum CtcpType {CtcpQuery, CtcpReply}; + public slots: // void setServerOptions(); void sendState(); @@ -109,6 +111,7 @@ class Server : public QThread { void handleUserSay(QString, QString); void handleUserTopic(QString, QString); void handleUserVoice(QString, QString); + void handleUserMe(QString, QString); /* void handleServer(QString, QStringList); */ void handleServerJoin(QString, QStringList); @@ -128,10 +131,16 @@ class Server : public QThread { void handleServer332(QString, QStringList); // RPL_TOPIC void handleServer333(QString, QStringList); // Topic set by... void handleServer353(QString, QStringList); // RPL_NAMREPLY - void handleServer433(QString, QStringList); // RPL_NICKNAMEINUSER + void handleServer432(QString, QStringList); // ERR_ERRONEUSNICKNAME + void handleServer433(QString, QStringList); // ERR_NICKNAMEINUSE + + void handleCtcpAction(CtcpType, QString, QString, QString); + void handleCtcpPing(CtcpType, QString, QString, QString); + void handleCtcpVersion(CtcpType, QString, QString, QString); void defaultServerHandler(QString cmd, QString prefix, QStringList params); void defaultUserHandler(QString buf, QString cmd, QString msg); + void defaultCtcpHandler(CtcpType ctcptype, QString prefix, QString cmd, QString target, QString param); private: QString network; @@ -149,6 +158,18 @@ class Server : public QThread { void handleServerMsg(QString rawMsg); void handleUserInput(QString buffer, QString usrMsg); + // CTCP Stuff + QString XDELIM; + QHash ctcpMDequoteHash; + QHash ctcpXDelimDequoteHash; + QString ctcpDequote(QString); + QString ctcpXdelimDequote(QString); + QStringList parseCtcp(CtcpType, QString, QString, QString); + + QString ctcpPack(QString ctcpTag, QString message); + void ctcpQuery(QString bufname, QString ctcpTag, QString message); + void ctcpReply(QString bufname, QString ctcpTag, QString message); + QString updateNickFromMask(QString mask); class ParseError : public Exception {