commit - 4693226d6983b5ed4bd74b32a8daa9a3124ed17c
commit + 7c7d03b7309062995583595cfbdbd0f356d7a23b
blob - e990cfd7a0397d2f6e42c9e42dc7d4d10db2a8af
blob + ef0e95ce11284feb08ac4754637ee68ba6daf991
--- src/ngircd/irc.c
+++ src/ngircd/irc.c
return option_txt;
} /* Option_String */
+/**
+ * Send a message to target(s).
+ *
+ * This function is used by IRC_{PRIVMSG|NOTICE|SQUERY} to actualy
+ * send the message(s).
+ *
+ * @param Client The client from which this command has been received.
+ * @param Req Request structure with prefix and all parameters.
+ * @param ForceType Required type of the destination of the message(s).
+ * @param SendErrors Whether to report errors back to the client or not.
+ * @return CONNECTED or DISCONNECTED.
+ */
static bool
Send_Message(CLIENT * Client, REQUEST * Req, int ForceType, bool SendErrors)
{
return DISCONNECTED;
} else if (ForceType != CLIENT_SERVICE
&& (chan = Channel_Search(currentTarget))) {
+ /* Target is a channel */
if (!Channel_Write(chan, from, Client, Req->command,
SendErrors, message))
return DISCONNECTED;
} else if (ForceType != CLIENT_SERVICE
- /* $#: server/target mask, RFC 2812, sec. 3.3.1 */
&& strchr("$#", currentTarget[0])
&& strchr(currentTarget, '.')) {
- /* targetmask */
+ /* $#: server/host mask, RFC 2812, sec. 3.3.1 */
if (!Send_Message_Mask(from, Req->command, currentTarget,
message, SendErrors))
return DISCONNECTED;
return CONNECTED;
} /* Send_Message */
+/**
+ * Send a message to "target mask" target(s).
+ *
+ * See RFC 2812, sec. 3.3.1 for details.
+ *
+ * @param from The client from which this command has been received.
+ * @param command The command to use (PRIVMSG, NOTICE, ...).
+ * @param targetMask The "target mask" (will be verified by this function).
+ * @param message The message to send.
+ * @param SendErrors Whether to report errors back to the client or not.
+ * @return CONNECTED or DISCONNECTED.
+ */
static bool
Send_Message_Mask(CLIENT * from, char * command, char * targetMask,
char * message, bool SendErrors)
return IRC_WriteErrClient(from, ERR_WILDTOPLEVEL, targetMask);
}
- /* #: hostmask, see RFC 2812, sec. 3.3.1 */
if (targetMask[0] == '#') {
+ /* #: hostmask, see RFC 2812, sec. 3.3.1 */
for (cl = Client_First(); cl != NULL; cl = Client_Next(cl)) {
if (Client_Type(cl) != CLIENT_USER)
continue;
return false;
}
} else {
- assert(targetMask[0] == '$'); /* $: server mask, see RFC 2812, sec. 3.3.1 */
+ /* $: server mask, see RFC 2812, sec. 3.3.1 */
+ assert(targetMask[0] == '$');
for (cl = Client_First(); cl != NULL; cl = Client_Next(cl)) {
if (Client_Type(cl) != CLIENT_USER)
continue;