+ params.push_back("H");
+ params.push_back(host);
+ params.push_back(ip);
+
+ LocalUser* lu = IS_LOCAL(user);
+ if (lu)
+ {
+ // NOTE: SaslAuthenticator instances are only created for local
+ // users so this parameter will always be appended.
+ SocketCertificateRequest req(&lu->eh, ServerInstance->Modules->Find("m_sasl.so"));
+ params.push_back(req.cert ? "S" : "P");
+ }
+
+ SendSASL(params);
+ }
+
+ public:
+ SaslAuthenticator(User* user_, const std::string& method)
+ : user(user_), state(SASL_INIT), state_announced(false)
+ {
+ SendHostIP();
+
+ parameterlist params;
+ params.push_back(sasl_target);