+
+ /** Global cull list, will be processed on next iteration
+ */
+ CullList GlobalCulls;
+
+ /**** Functors ****/
+
+ ProcessUserHandler HandleProcessUser;
+ IsNickHandler HandleIsNick;
+ IsIdentHandler HandleIsIdent;
+ FindDescriptorHandler HandleFindDescriptor;
+ FloodQuitUserHandler HandleFloodQuitUser;
+ IsChannelHandler HandleIsChannel;
+ IsSIDHandler HandleIsSID;
+ RehashHandler HandleRehash;
+
+ /** BufferedSocket classes pending deletion after being closed.
+ * We don't delete these immediately as this may cause a segmentation fault.
+ */
+ std::map<BufferedSocket*,BufferedSocket*> SocketCull;
+
+ /** Globally accessible fake user record. This is used to force mode changes etc across s2s, etc.. bit ugly, but.. better than how this was done in 1.1
+ * Reason for it:
+ * kludge alert!
+ * SendMode expects a User* to send the numeric replies
+ * back to, so we create it a fake user that isnt in the user
+ * hash and set its descriptor to FD_MAGIC_NUMBER so the data
+ * falls into the abyss :p
+ */
+ User *FakeClient;
+
+ /** Returns the next available UID for this server.
+ */
+ std::string GetUID();
+
+ /** Find a user in the UUID hash
+ * @param nick The nickname to find
+ * @return A pointer to the user, or NULL if the user does not exist
+ */
+ User *FindUUID(const std::string &);
+
+ /** Find a user in the UUID hash
+ * @param nick The nickname to find
+ * @return A pointer to the user, or NULL if the user does not exist
+ */
+ User *FindUUID(const char *);
+
+ /** Build the ISUPPORT string by triggering all modules On005Numeric events
+ */
+ void BuildISupport();
+
+ /** List of server names we've seen.
+ */
+ servernamelist servernames;
+
+ /** Time this ircd was booted
+ */