]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Use IsCTCP in blockcolor for ignoring CTCPs.
[user/henk/code/inspircd.git] / include / configreader.h
index d8866e7d9540820d89fb641753f075ee6c62004f..66f7920be7471b6d9f0ad4c9513e407c6506f3b9 100644 (file)
@@ -5,13 +5,14 @@
  *   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-2020 Sadie Powell <sadie@witchery.services>
+ *   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-2008 Craig Edwards <brain@inspircd.org>
  *   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 */
@@ -95,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 */
@@ -113,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;
 
@@ -250,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
@@ -434,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.
@@ -451,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.