* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * InspIRCd: (C) 2002-2008 InspIRCd Development Team
* See: http://www.inspircd.org/wiki/index.php/Credits
*
* This program is free but copyrighted software; see
#include "inspircd_config.h"
#include "uid.h"
#include "users.h"
+#include "usermanager.h"
#include "channels.h"
#include "socket.h"
#include "mode.h"
/** A list of failed port bindings, used for informational purposes on startup */
typedef std::vector<std::pair<std::string, long> > FailedPortList;
-/** A list of ip addresses cross referenced against clone counts */
-typedef std::map<irc::string, unsigned int> clonemap;
-
class InspIRCd;
DEFINE_HANDLER1(ProcessUserHandler, void, User*);
*/
std::list<User*> all_opers;
- /** Map of local ip addresses for clone counting
- */
- clonemap local_clones;
-
- /** Map of global ip addresses for clone counting
- */
- clonemap global_clones;
-
/** DNS class, provides resolver facilities to the core and modules
*/
DNS* Res;
*/
XLineManager* XLines;
+ /** User manager. Various methods and data associated with users.
+ */
+ UserManager *Users;
+
/** Set to the current signal recieved
*/
int s_signal;
* @return The old time delta
*/
int SetTimeDelta(int delta);
-
- /** Add a user to the local clone map
- * @param user The user to add
- */
- void AddLocalClone(User* user);
-
- /** Add a user to the global clone map
- * @param user The user to add
- */
- void AddGlobalClone(User* user);
/** Number of users with a certain mode set on them
*/
*/
std::string GetServerDescription(const char* servername);
- /** Write text to all opers connected to this server
- * @param text The text format string
- * @param ... Format args
- */
- void WriteOpers(const char* text, ...);
-
- /** Write text to all opers connected to this server
- * @param text The text to send
- */
- void WriteOpers(const std::string &text);
-
/** Find a user in the nick hash.
* If the user cant be found in the nick hash check the uuid hash
* @param nick The nickname to find
*/
bool IsChannel(const char *chname);
+ /** Return true if str looks like a server ID
+ * @param string to check against
+ */
+ bool IsSID(const std::string &str);
+
/** Rehash the local server
*/
void Rehash();
*/
static void QuickExit(int status);
- /** Return a count of users, unknown and known connections
- * @return The number of users
- */
- int UserCount();
-
- /** Return a count of fully registered connections only
- * @return The number of registered users
- */
- int RegisteredUserCount();
-
- /** Return a count of opered (umode +o) users only
- * @return The number of opers
- */
- int OperCount();
-
- /** Return a count of unregistered (before NICK/USER) users only
- * @return The number of unregistered (unknown) connections
- */
- int UnregisteredUserCount();
-
/** Return a count of channels on the network
* @return The number of channels
*/
long ChannelCount();
- /** Return a count of local users on this server only
- * @return The number of local users
- */
- long LocalUserCount();
-
/** Send an error notice to all local users, opered and unopered
* @param s The error string to send
*/
*/
caller1<User*, int> FindDescriptor;
- /** Add a new mode to this server's mode parser
- * @param mh The modehandler to add
- * @return True if the mode handler was added
- */
- bool AddMode(ModeHandler* mh);
-
- /** Add a new mode watcher to this server's mode parser
- * @param mw The modewatcher to add
- * @return True if the modewatcher was added
- */
- bool AddModeWatcher(ModeWatcher* mw);
-
- /** Delete a mode watcher from this server's mode parser
- * @param mw The modewatcher to delete
- * @return True if the modewatcher was deleted
- */
- bool DelModeWatcher(ModeWatcher* mw);
-
/** Add a dns Resolver class to this server's active set
* @param r The resolver to add
* @param cached If this value is true, then the cache will
*/
long Duration(const std::string &str);
- /** Attempt to compare an oper password to a string from the config file.
+ /** Attempt to compare a password to a string from the config file.
* This will be passed to handling modules which will compare the data
* against possible hashed equivalents in the input string.
+ * @param ex The object (user, server, whatever) causing the comparison.
* @param data The data from the config file
* @param input The data input by the oper
- * @param tagnum the tag number of the oper's tag in the config file
+ * @param hashtype The hash from the config file
* @return 0 if the strings match, 1 or -1 if they do not
*/
- int OperPassCompare(const char* data,const char* input, int tagnum);
+ int PassCompare(Extensible* ex, const char* data,const char* input, const char* hashtype);
/** Check if a given server is a uline.
* An empty string returns true, this is by design.