+
+ if (!net->isChannelName(target)) {
+ // For self-messages, keep the target, don't set it to the sender prefix
+ if (!isSelfMessage) {
+ target = nickFromMask(prefix);
+ }
+ net->updateNickFromMask(prefix);
+ }
+ }
+
+#ifdef HAVE_QCA2
+ // Handle DH1080 key exchange
+ // Don't allow key exchange in channels, and don't allow it for self-messages.
+ bool keyExchangeAllowed = (!net->isChannelName(target) && !isSelfMessage);
+ if (params[1].startsWith("DH1080_INIT") && keyExchangeAllowed) {
+ events << new KeyEvent(EventManager::KeyEvent, net, prefix, target, KeyEvent::Init, params[1].mid(12));
+ } else if (params[1].startsWith("DH1080_FINISH") && keyExchangeAllowed) {
+ events << new KeyEvent(EventManager::KeyEvent, net, prefix, target, KeyEvent::Finish, params[1].mid(14));
+ } else
+#endif
+ {
+ IrcEventRawMessage *rawMessage = new IrcEventRawMessage(EventManager::IrcEventRawNotice, net, params[1], prefix, target, e->timestamp());
+ if (isSelfMessage) {
+ // Self-messages need processed differently, tag as such via flag.
+ rawMessage->setFlag(EventManager::Self);
+ }
+ events << rawMessage;