diff --git a/doc/technical/ts6-protocol.txt b/doc/technical/ts6-protocol.txt index df253420..dc0f390a 100644 --- a/doc/technical/ts6-protocol.txt +++ b/doc/technical/ts6-protocol.txt @@ -725,7 +725,7 @@ source: server parameters: source uid, target uid, mode, data Part of a SASL authentication exchange. The mode is 'C' to send some data -(base64 encoded), or 'S' to end the exchange (data indicates type of +(base64 encoded), or 'D' to end the exchange (data indicates type of termination: 'A' for abort, 'F' for authentication failure, 'S' for authentication success). diff --git a/modules/m_sasl.c b/modules/m_sasl.c index 8dbbf0e7..756af1ff 100644 --- a/modules/m_sasl.c +++ b/modules/m_sasl.c @@ -172,6 +172,8 @@ me_sasl(struct Client *client_p, struct Client *source_p, } *target_p->preClient->sasl_agent = '\0'; /* Blank the stored agent so someone else can answer */ } + else if(*parv[3] == 'M') + sendto_one(target_p, form_str(RPL_SASLMECHS), me.name, EmptyString(target_p->name) ? "*" : target_p->name, parv[4]); return 0; }