mirror of
https://github.com/anope/anope.git
synced 2026-06-30 23:26:39 +02:00
Remove the asynchronous identifing hack and replace it with something better. Fixes m_*_authentication only being able to properly work when people identify normally using nickserv/identify
This commit is contained in:
@@ -304,7 +304,39 @@ class CoreExport NickCore : public Extensible, public Flags<NickCoreFlag, NI_END
|
||||
* Deletes all the memory allocated in the certificate list vector and then clears the vector.
|
||||
*/
|
||||
void ClearCert();
|
||||
};
|
||||
|
||||
class IdentifyRequest
|
||||
{
|
||||
Anope::string account;
|
||||
Anope::string password;
|
||||
|
||||
std::set<Module *> holds;
|
||||
bool dispatched;
|
||||
bool success;
|
||||
|
||||
static std::set<IdentifyRequest *> requests;
|
||||
|
||||
protected:
|
||||
IdentifyRequest(const Anope::string &acc, const Anope::string &pass);
|
||||
virtual ~IdentifyRequest();
|
||||
|
||||
public:
|
||||
virtual void OnSuccess() = 0;
|
||||
virtual void OnFail() = 0;
|
||||
|
||||
const Anope::string &GetAccount() const { return account; }
|
||||
const Anope::string &GetPassword() const { return password; }
|
||||
|
||||
/* Hold this request. Once held it must be Release()d later on */
|
||||
void Hold(Module *m);
|
||||
void Release(Module *m);
|
||||
|
||||
void Success(Module *m);
|
||||
|
||||
void Dispatch();
|
||||
|
||||
static void ModuleUnload(Module *m);
|
||||
};
|
||||
|
||||
extern CoreExport void change_core_display(NickCore *nc);
|
||||
|
||||
@@ -26,6 +26,7 @@ class ConnectionSocket;
|
||||
class DNSPacket;
|
||||
class dynamic_reference_base;
|
||||
class Entry;
|
||||
class IdentifyRequest;
|
||||
class InfoFormatter;
|
||||
class ListenSocket;
|
||||
class Log;
|
||||
|
||||
+4
-8
@@ -765,15 +765,11 @@ class CoreExport Module : public Extensible
|
||||
*/
|
||||
virtual void OnNickInfo(CommandSource &source, NickAlias *na, InfoFormatter &info, bool ShowHidden) { }
|
||||
|
||||
/** Check whether a users password is correct.
|
||||
* @param u The user
|
||||
* @param command The command the user is doing
|
||||
* @param params Command params
|
||||
* @param account The account the password should be checked against
|
||||
* @param password The password
|
||||
* @return EVENT_ALLOW to allow the password, EVENT_STOP to stop processing completely
|
||||
/** Check whether a username and password is correct
|
||||
* @param u The user trying to identify, if applicable.
|
||||
* @param req The login request
|
||||
*/
|
||||
virtual EventReturn OnCheckAuthentication(Command *c, CommandSource *source, const std::vector<Anope::string> ¶ms, const Anope::string &account, const Anope::string &password) { return EVENT_CONTINUE; }
|
||||
virtual void OnCheckAuthentication(User *u, IdentifyRequest *req) { }
|
||||
|
||||
/** Called when a user does /ns update
|
||||
* @param u The user
|
||||
|
||||
Reference in New Issue
Block a user