- void AddClient(InspIRCd* Instance, int socket, int port, bool iscached, int socketfamily, sockaddr* ip);
+ void AddUser(InspIRCd* Instance, int socket, int port, bool iscached, sockaddr* ip, const std::string &targetip);
+
+ /** Disconnect a user gracefully
+ * @param user The user to remove
+ * @param r The quit reason to show to normal users
+ * @param oreason The quit reason to show to opers
+ * @return Although this function has no return type, on exit the user provided will no longer exist.
+ */
+ void QuitUser(User *user, const std::string &quitreason, const char* operreason = "");