summary refs log tree commit diff stats
path: root/src/common/proto-irc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/proto-irc.c')
-rw-r--r--src/common/proto-irc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/common/proto-irc.c b/src/common/proto-irc.c
index 790e3242..906ee713 100644
--- a/src/common/proto-irc.c
+++ b/src/common/proto-irc.c
@@ -1029,6 +1029,11 @@ process_named_msg (session *sess, char *type, char *word[], char *word_eol[])
 			inbound_quit (serv, nick, ip,
 							  (word_eol[3][0] == ':') ? word_eol[3] + 1 : word_eol[3]);
 			return;
+
+		case WORDL('A','W','A','Y'):
+			inbound_away_notify (serv, nick,
+						(word_eol[3][0] == ':') ? word_eol[3] + 1 : NULL);
+			return;
 		}
 
 		goto garbage;
@@ -1166,6 +1171,11 @@ process_named_msg (session *sess, char *type, char *word[], char *word_eol[])
 						serv->have_namesx = TRUE;
 					}
 
+					if (strstr (word_eol[5], "away-notify") != 0)
+					{
+						serv->have_awaynotify = TRUE;
+					}
+
 					if (strstr (word_eol[5], "sasl") != 0)
 					{
 						serv->have_sasl = TRUE;
@@ -1193,6 +1203,11 @@ process_named_msg (session *sess, char *type, char *word[], char *word_eol[])
 						want_cap ? strcat (buffer, " multi-prefix") : strcpy (buffer, "CAP REQ :multi-prefix");
 						want_cap = 1;
 					}
+					if (strstr (word_eol[5], "away-notify") != 0)
+					{
+						want_cap ? strcat (buffer, " away-notify") : strcpy (buffer, "CAP REQ :away-notify");
+						want_cap = 1;
+					}
 					/* if the SASL password is set, request SASL auth */
 					if (strstr (word_eol[5], "sasl") != 0 && strlen (sess->server->saslpassword) != 0)
 					{