repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 3283d275ba26c470d131ce0b6f66ee54a00bfd1c:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 3283d275ba26c470d131ce0b6f66ee54a00bfd1c
Author: Florian Westphal 
Date:   Sun May 4 15:07:21 2008 +0200

    Invite: Send RPL_AWAY to client sending the invite if target is away.

diff --git a/src/ngircd/irc-op.c b/src/ngircd/irc-op.c
index 94b11bebdc3bbb7f3c3bea5711878681cbd1da21..
index ..bbedcf4caf9968a4ecfbc7a8291660741a73d02a 100644
--- a/src/ngircd/irc-op.c
+++ b/src/ngircd/irc-op.c
@@ -125,8 +125,14 @@ IRC_INVITE(CLIENT *Client, REQUEST *Req)

 	if (Client_Conn(target) > NONE) {
 		/* The target user is local, so we have to send the status code */
-		if (!IRC_WriteStrClientPrefix(from, target, RPL_INVITING_MSG, Client_ID(from), Req->argv[0], Req->argv[1]))
+		if (!IRC_WriteStrClientPrefix(from, target, RPL_INVITING_MSG,
+				Client_ID(from), Req->argv[0], Req->argv[1]))
 			return DISCONNECTED;
+
+		if (strchr(Client_Modes(target), 'a') &&
+			!IRC_WriteStrClient(from, RPL_AWAY_MSG, Client_ID(from),
+					Client_ID(target), Client_Away(target)))
+				return DISCONNECTED;
 	}
 	return CONNECTED;
 } /* IRC_INVITE */

-----END OF PAGE-----