# HG changeset patch
# User Mantas Mikulėnas <grawity@nullroute.eu.org>
# Date 1390336236 -7200
#      Tue Jan 21 22:30:36 2014 +0200
# Branch unreal34
# Node ID 5bc04fbf1e0462c84b571f0be83edca6de1b6d32
# Parent  f94c2773328dcce43a03858112ae0c027bb636cc
Forward supported SASL mechanisms to the client

diff --git a/include/numeric.h b/include/numeric.h
--- a/include/numeric.h
+++ b/include/numeric.h
@@ -388,5 +388,6 @@
 #define ERR_SASLTOOLONG         905
 #define ERR_SASLABORTED         906
 #define ERR_SASLALREADY         907
+#define RPL_SASLMECHS           908
 
 #define ERR_NUMERICERR       999
diff --git a/src/modules/m_sasl.c b/src/modules/m_sasl.c
--- a/src/modules/m_sasl.c
+++ b/src/modules/m_sasl.c
@@ -225,6 +225,8 @@
 
 			*target_p->sasl_agent = '\0';
 		}
+		else if (*parv[3] == 'M')
+			sendto_one(target_p, err_str(RPL_SASLMECHS), me.name, BadPtr(target_p->name) ? "*" : target_p->name, parv[4]);
 
 		return 0;
 	}
diff --git a/src/s_err.c b/src/s_err.c
--- a/src/s_err.c
+++ b/src/s_err.c
@@ -964,7 +964,7 @@
 /* 905 ERR_SASLTOOLONG */       ":%s 905 %s :SASL message too long",
 /* 906 ERR_SASLABORTED */       ":%s 906 %s :SASL authentication aborted",
 /* 907 ERR_SASLALREADY */       ":%s 907 %s :You have already completed SASL authentication",
-/* 908 */ NULL,
+/* 908 RPL_SASLMECHS */         ":%s 908 %s %s :are available SASL mechanisms",
 /* 909 */ NULL,
 /* 910 */ NULL,
 /* 911 */ NULL,
