/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2013, 2018-2019 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2013, 2018-2020 Sadie Powell <sadie@witchery.services>
* Copyright (C) 2012-2015 Attila Molnar <attilamolnar@hush.com>
* Copyright (C) 2012-2013 Robby <robby@chatbelgie.be>
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
* Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
- * Copyright (C) 2007, 2010 Craig Edwards <brain@inspircd.org>
* Copyright (C) 2007 John Brooks <special@inspircd.org>
* Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ * Copyright (C) 2005, 2007, 2010 Craig Edwards <brain@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
* our ident lookup class that is outside of this module, or out-
* side of the control of the class. There are no timers, internal
* events, or such, which will cause the socket to be deleted,
- * queued for deletion, etc. In fact, theres not even any queueing!
+ * queued for deletion, etc. In fact, there's not even any queueing!
*
* Using this framework we have a much more stable module.
*
void Close()
{
- /* Remove ident socket from engine, and close it, but dont detatch it
+ /* Remove ident socket from engine, and close it, but dont detach it
* from its parent user class, or attempt to delete its memory.
*/
if (HasFd())
return;
// We don't want to look this up once the user has connected.
- if (user->registered == REG_ALL)
+ if (user->registered == REG_ALL || user->quitting)
return;
ConfigTag* tag = user->MyClass->config;
ModResult OnSetConnectClass(LocalUser* user, ConnectClass* myclass) CXX11_OVERRIDE
{
if (myclass->config->getBool("requireident") && state.get(user) != IDENT_FOUND)
+ {
+ ServerInstance->Logs->Log("CONNECTCLASS", LOG_DEBUG, "The %s connect class is not suitable as it requires an identd response",
+ myclass->GetName().c_str());
return MOD_RES_DENY;
+ }
return MOD_RES_PASSTHRU;
}