echo-message missing for PRIVMSG against status / modules #937

Closed
opened 2026-10-05 04:54:07 +02:00 by adam · 0 comments
Owner

When sending prvimsg's to *status or modules with the echo-message capability enabled, the message sent does not get relayed which means in some clients which enable echo-message it may appear like the message was never sent.

This can be reproduced via the following commands when authenticated:

CAP REQ echo-message
PRIVMSG *status hi

This is a breach of the specification clause:

If enabled, servers MUST send PRIVMSG and NOTICE messages back to the client that sent them

Perhaps something along the lines of the followign can fix:

diff --git a/src/Client.cpp b/src/Client.cpp
index c7a35dbe..6d8f4518 100644
--- a/src/Client.cpp
+++ b/src/Client.cpp
@@ -1234,6 +1234,8 @@ bool CClient::OnTextMessage(CTextMessage& Message) {
         }

         if (sTarget.TrimPrefix(m_pUser->GetStatusPrefix())) {
+            EchoMessage(Message);
+
             if (sTarget.Equals("status")) {
                 CString sMsg = Message.GetText();
                 UserCommand(sMsg);
When sending prvimsg's to `*status` or modules with the echo-message capability enabled, the message sent does not get relayed which means in some clients which enable echo-message it may appear like the message was never sent. This can be reproduced via the following commands when authenticated: ``` CAP REQ echo-message PRIVMSG *status hi ``` This is a breach of the [specification](https://ircv3.net/specs/extensions/echo-message-3.2) clause: > If enabled, servers MUST send PRIVMSG and NOTICE messages back to the client that sent them Perhaps something along the lines of the followign can fix: ```diff diff --git a/src/Client.cpp b/src/Client.cpp index c7a35dbe..6d8f4518 100644 --- a/src/Client.cpp +++ b/src/Client.cpp @@ -1234,6 +1234,8 @@ bool CClient::OnTextMessage(CTextMessage& Message) { } if (sTarget.TrimPrefix(m_pUser->GetStatusPrefix())) { + EchoMessage(Message); + if (sTarget.Equals("status")) { CString sMsg = Message.GetText(); UserCommand(sMsg); ``` <!-- github-sync-id:566460209 -->
adam closed this issue 2026-10-05 04:54:07 +02:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#937