From 58b63de6f1dd84a4923c623dafd548512ecdf054 Mon Sep 17 00:00:00 2001 From: dequis Date: Fri, 11 Sep 2015 19:07:10 -0300 Subject: IRCv3 SASL capability + PLAIN method Only plain, no other methods. We don't have built-in SSL to implement EXTERNAL (certfp) and nothing else is worth implementing. The actual authentication is pretty much like sending a server password (when the server's authmode isn't closed), which means it happens in cmd_identify, but this code also calls storage_check_pass() to send the required success/failure replies. SASL doesn't give us much benefit other than standards compliance, but some clients might appreciate it. And having a fifth way to do the same thing doesn't hurt! Now we have: - identify in &bitlbee - identify to nickserv (alias for root) - 'nickserv' and 'ns' irc commands - server password - sasl plain --- irc.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'irc.h') diff --git a/irc.h b/irc.h index 4be7ce7e..f2df3b2e 100644 --- a/irc.h +++ b/irc.h @@ -49,6 +49,7 @@ typedef enum { USTATUS_SHUTDOWN = 8, /* Now used to indicate we're shutting down. Currently just blocks irc_vawrite(). */ USTATUS_CAP_PENDING = 16, + USTATUS_SASL_PLAIN_PENDING = 32, /* Not really status stuff, but other kinds of flags: For slightly better password security, since the only way to send passwords @@ -66,6 +67,7 @@ typedef enum { } irc_status_t; typedef enum { + CAP_SASL = (1 << 0), CAP_MULTI_PREFIX = (1 << 1), } irc_cap_flag_t; -- cgit v1.2.3