]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Fix a bunch of really obvious unnecessary includes.
[user/henk/code/inspircd.git] / include / configreader.h
index d2c5d7d0e31f57fad2ff0f612c42bb7e4d6aa13f..66f7920be7471b6d9f0ad4c9513e407c6506f3b9 100644 (file)
@@ -1,11 +1,18 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
- *   Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- *   Copyright (C) 2007, 2009 Dennis Friis <peavey@inspircd.org>
- *   Copyright (C) 2006-2008 Craig Edwards <craigedwards@brainbox.cc>
- *   Copyright (C) 2006-2008 Robin Burchell <robin+git@viroteck.net>
- *   Copyright (C) 2006 Oliver Lupton <oliverlupton@gmail.com>
+ *   Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
+ *   Copyright (C) 2018 Chris Novakovic <chrisnovakovic@users.noreply.github.com>
+ *   Copyright (C) 2013-2014, 2016 Attila Molnar <attilamolnar@hush.com>
+ *   Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org>
+ *   Copyright (C) 2012-2014, 2016-2021 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
+ *   Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ *   Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
+ *   Copyright (C) 2007-2008 Robin Burchell <robin+git@viroteck.net>
+ *   Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ *   Copyright (C) 2006-2008 Craig Edwards <brain@inspircd.org>
+ *   Copyright (C) 2006 Oliver Lupton <om@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
 
 #pragma once
 
-#include <sstream>
-#include <string>
-#include <vector>
-#include <map>
 #include "inspircd.h"
-#include "modules.h"
-#include "socketengine.h"
-#include "socket.h"
 #include "token_list.h"
 
 /** Structure representing a single \<tag> in config */
@@ -89,6 +89,8 @@ class CoreExport ConfigTag : public refcountbase
 class ServerLimits
 {
  public:
+       /** Maximum line length */
+       size_t MaxLine;
        /** Maximum nickname length */
        size_t NickMax;
        /** Maximum channel length */
@@ -107,8 +109,6 @@ class ServerLimits
        size_t MaxReal;
        /** Maximum away message length */
        size_t MaxAway;
-       /** Maximum line length */
-       size_t MaxLine;
        /** Maximum hostname length */
        size_t MaxHost;
 
@@ -182,6 +182,9 @@ class CoreExport OperInfo : public refcountbase
        /** Allowed channel modes from oper classes. */
        std::bitset<64> AllowedChanModes;
 
+       /** Allowed snomasks from oper classes. */
+       std::bitset<64> AllowedSnomasks;
+
        /** \<oper> block used for this oper-up. May be NULL. */
        reference<ConfigTag> oper_block;
        /** \<type> block used for this oper-up. Valid for local users, may be NULL on remote */
@@ -241,12 +244,16 @@ class CoreExport ServerConfig
                /** Module path */
                std::string Module;
 
+               /** Runtime path */
+               std::string Runtime;
+
                ServerPaths(ConfigTag* tag);
 
                std::string PrependConfig(const std::string& fn) const { return FileSystem::ExpandPath(Config, fn); }
                std::string PrependData(const std::string& fn) const { return FileSystem::ExpandPath(Data, fn); }
                std::string PrependLog(const std::string& fn) const { return FileSystem::ExpandPath(Log, fn); }
                std::string PrependModule(const std::string& fn) const { return FileSystem::ExpandPath(Module, fn); }
+               std::string PrependRuntime(const std::string& fn) const { return FileSystem::ExpandPath(Runtime, fn); }
        };
 
        /** Holds a complete list of all connect blocks
@@ -304,12 +311,12 @@ class CoreExport ServerConfig
        CommandLineConf cmdline;
 
        /** Clones CIDR range for ipv4 (0-32)
-        * Defaults to 32 (checks clones on all IPs seperately)
+        * Defaults to 32 (checks clones on all IPs separately)
         */
        unsigned char c_ipv4_range;
 
        /** Clones CIDR range for ipv6 (0-128)
-        * Defaults to 128 (checks on all IPs seperately)
+        * Defaults to 128 (checks on all IPs separately)
         */
        unsigned char c_ipv6_range;
 
@@ -323,7 +330,7 @@ class CoreExport ServerConfig
        std::string XLineMessage;
 
        /* Holds the network name the local server
-        * belongs to. This is an arbitary field defined
+        * belongs to. This is an arbitrary field defined
         * by the administrator.
         */
        std::string Network;
@@ -425,7 +432,7 @@ class CoreExport ServerConfig
         */
        unsigned int OperMaxChans;
 
-       /** TS6-like server ID.
+       /** Unique server ID.
         * NOTE: 000...999 are usable for InspIRCd servers. This
         * makes code simpler. 0AA, 1BB etc with letters are reserved
         * for services use.
@@ -442,6 +449,12 @@ class CoreExport ServerConfig
         */
        const std::string& GetSID() const { return sid; }
 
+       /** Retrieves the server name which should be shown to users. */
+       const std::string& GetServerName() const { return HideServer.empty() ? ServerName : HideServer; }
+
+       /** Retrieves the server description which should be shown to users. */
+       const std::string& GetServerDesc() const { return HideServer.empty() ? ServerDesc : HideServer; }
+
        /** Read the entire configuration into memory
         * and initialize this class. All other methods
         * should be used only by the core.