virtual bool OnLoad(const CString& sArgs, CString& sMessage) { VCString vsArgs; VCString::const_iterator it; sArgs.Split(" ", vsArgs, false); for (it = vsArgs.begin(); it != vsArgs.end(); ++it) { if (it->Equals("saslauthd") || it->Equals("auxprop")) { m_sMethod += *it + " "; } else { CUtils::PrintError("Ignoring invalid SASL pwcheck method: " + *it); sMessage = "Ignored invalid SASL pwcheck method"; } } m_sMethod.TrimRight(); if (m_sMethod.empty()) { sMessage = "Need a pwcheck method as argument (saslauthd, auxprop)"; return false; } if (sasl_server_init(NULL, NULL) != SASL_OK) { sMessage = "SASL Could Not Be Initialized - Halting Startup"; return false; } m_cbs[0].id = SASL_CB_GETOPT; m_cbs[0].proc = reinterpret_cast<int(*)()>(CSASLAuthMod::getopt); m_cbs[0].context = this; m_cbs[1].id = SASL_CB_LIST_END; m_cbs[1].proc = NULL; m_cbs[1].context = NULL; return true; }
bool OnLoad(const CString& sArgs, CString& sMessage) override { VCString vsArgs; VCString::const_iterator it; sArgs.Split(" ", vsArgs, false); for (it = vsArgs.begin(); it != vsArgs.end(); ++it) { if (it->Equals("saslauthd") || it->Equals("auxprop")) { m_sMethod += *it + " "; } else { CUtils::PrintError("Ignoring invalid SASL pwcheck method: " + *it); sMessage = "Ignored invalid SASL pwcheck method"; } } m_sMethod.TrimRight(); if (m_sMethod.empty()) { sMessage = "Need a pwcheck method as argument (saslauthd, auxprop)"; return false; } if (sasl_server_init(nullptr, nullptr) != SASL_OK) { sMessage = "SASL Could Not Be Initialized - Halting Startup"; return false; } return true; }