#include "compat.h"
#include "aligned_storage.h"
#include "typedefs.h"
+#include "convto.h"
#include "stdalgo.h"
CoreExport extern InspIRCd* ServerInstance;
};
#include "config.h"
-#include "convto.h"
#include "dynref.h"
#include "consolecolors.h"
#include "cull_list.h"
#include "extensible.h"
#include "fileutils.h"
+#include "ctables.h"
#include "numerics.h"
#include "numeric.h"
#include "uid.h"
#include "logger.h"
#include "usermanager.h"
#include "socket.h"
-#include "ctables.h"
#include "command_parse.h"
#include "mode.h"
#include "socketengine.h"
#include "filelogger.h"
#include "message.h"
#include "modules.h"
+#include "clientprotocol.h"
#include "threadengine.h"
#include "configreader.h"
#include "inspstring.h"
*/
char ReadBuffer[65535];
+ ClientProtocol::RFCEvents rfcevents;
+
/** Check we aren't running as root, and exit if we are
* with exit code EXIT_STATUS_ROOT.
*/
*/
TimerManager Timers;
- /** X-Line manager. Handles G/K/Q/E line setting, removal and matching
+ /** X-line manager. Handles G/K/Q/E-line setting, removal and matching
*/
XLineManager* XLines;
*/
static void DefaultGenRandom(char* output, size_t max);
+ /** Bind to a specific port from a config tag.
+ * @param tag the tag that contains bind information.
+ * @param sa The endpoint to listen on.
+ * @param old_ports Previously listening ports that may be on the same endpoint.
+ */
+ bool BindPort(ConfigTag* tag, const irc::sockets::sockaddrs& sa, std::vector<ListenSocket*>& old_ports);
+
/** Bind all ports specified in the configuration file.
* @return The number of ports bound without error
*/
*/
static unsigned long Duration(const std::string& str);
+ /** Calculate a duration in seconds from a string in the form 1y2w3d4h6m5s
+ * @param str A string containing a time in the form 1y2w3d4h6m5s
+ * (one year, two weeks, three days, four hours, six minutes and five seconds)
+ * @param duration The location to place the parsed duration valur
+ * @return Whether the duration was a valid format or not
+ */
+ static bool Duration(const std::string& str, unsigned long& duration);
+
+ /** Determines whether a string contains a valid duration.
+ * @param str A string containing a time in the form 1y2w3d4h6m5s
+ * @return True if the string is a valid duration; otherwise, false.
+ */
+ static bool IsValidDuration(const std::string& str);
+
/** 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.
{
return this->ReadBuffer;
}
+
+ ClientProtocol::RFCEvents& GetRFCEvents() { return rfcevents; }
};
ENTRYPOINT;
-template<class Cmd>
-class CommandModule : public Module
-{
- Cmd cmd;
- public:
- CommandModule() : cmd(this)
- {
- }
-
- Version GetVersion() CXX11_OVERRIDE
- {
- return Version(cmd.name, VF_VENDOR|VF_CORE);
- }
-};
-
inline void stdalgo::culldeleter::operator()(classbase* item)
{
if (item)
ServerInstance->GlobalCulls.AddItem(item);
}
+inline void Channel::Write(ClientProtocol::EventProvider& protoevprov, ClientProtocol::Message& msg, char status, const CUList& except_list)
+{
+ ClientProtocol::Event event(protoevprov, msg);
+ Write(event, status, except_list);
+}
+
+inline void LocalUser::Send(ClientProtocol::EventProvider& protoevprov, ClientProtocol::Message& msg)
+{
+ ClientProtocol::Event event(protoevprov, msg);
+ Send(event);
+}
+
#include "numericbuilder.h"
+#include "clientprotocolmsg.h"
+#include "clientprotocolevent.h"