/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2007-2008 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
+ * Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org>
+ * Copyright (C) 2012-2016, 2018 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012-2013, 2016-2019 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012, 2018-2019 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2012 DjSlash <djslash@djslash.org>
+ * Copyright (C) 2012 ChrisTX <xpipe@hotmail.de>
+ * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
* Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
- * Copyright (C) 2003-2007 Craig Edwards <craigedwards@brainbox.cc>
- * Copyright (C) 2007 Burlex <???@???>
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ * Copyright (C) 2008 John Brooks <special@inspircd.org>
+ * Copyright (C) 2007-2009 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2007, 2009 Dennis Friis <peavey@inspircd.org>
+ * Copyright (C) 2006-2008 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
*/
insp::flat_set<int> ports;
+ /** If non-empty then the password a user must specify in PASS to be assigned to this class. */
+ std::string password;
+
+ /** If non-empty then the hash algorithm that the password field is hashed with. */
+ std::string passwordhash;
+
/** Create a new connect class with no settings.
*/
ConnectClass(ConfigTag* tag, char type, const std::string& mask);
*/
virtual bool HasModePermission(const ModeHandler* mh) const;
+ /** Determines whether this user can set the specified snomask.
+ * @param chr The server notice mask character to look up.
+ * @return True if the user can set the specified snomask; otherwise, false.
+ */
+ virtual bool HasSnomaskPermission(char chr) const;
+
/** Creates a usermask with real host.
* Takes a buffer to use and fills the given buffer with the hostmask in the format user\@host
* @return the usermask in the format user\@host
*/
virtual ~User();
CullResult cull() CXX11_OVERRIDE;
+
+ /** @copydoc Serializable::Deserialize */
+ bool Deserialize(Data& data) CXX11_OVERRIDE;
+
+ /** @copydoc Serializable::Deserialize */
+ bool Serialize(Serializable::Data& data) CXX11_OVERRIDE;
};
class CoreExport UserIOHandler : public StreamSocket
public:
LocalUser(int fd, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server);
+ LocalUser(int fd, const std::string& uuid, Serializable::Data& data);
+
CullResult cull() CXX11_OVERRIDE;
UserIOHandler eh;
*/
bool HasModePermission(const ModeHandler* mh) const CXX11_OVERRIDE;
+ /** @copydoc User::HasSnomaskPermission */
+ bool HasSnomaskPermission(char chr) const CXX11_OVERRIDE;
+
/** Change nick to uuid, unset REG_NICK and send a nickname overruled numeric.
* This is called when another user (either local or remote) needs the nick of this user and this user
* isn't registered.
* @param msg Message to send.
*/
void Send(ClientProtocol::EventProvider& protoevprov, ClientProtocol::Message& msg);
+
+ /** @copydoc Serializable::Deserialize */
+ bool Deserialize(Data& data) CXX11_OVERRIDE;
+
+ /** @copydoc Serializable::Deserialize */
+ bool Serialize(Serializable::Data& data) CXX11_OVERRIDE;
};
class RemoteUser : public User