From 11cafc12d5440b67a9f676c9f6aa67840ca5399d Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Tue, 2 Apr 2013 20:12:15 +0100 Subject: Tidy up source files: - Use #pragma once instead of include guards. - Move header files in src/modules to include/modules. - Fixed various spacing issues. --- configure | 5 +- include/bancache.h | 5 +- include/base.h | 5 +- include/caller.h | 5 +- include/channels.h | 5 +- include/command_parse.h | 5 +- include/commands/cmd_whowas.h | 6 +- include/configparser.h | 4 +- include/configreader.h | 5 +- include/consolecolors.h | 6 +- include/ctables.h | 5 +- include/cull_list.h | 6 +- include/dns.h | 8 +- include/dynamic.h | 6 +- include/exitcodes.h | 6 +- include/extensible.h | 5 +- include/filelogger.h | 6 +- include/hashcomp.h | 5 +- include/inspircd.h | 6 +- include/inspsocket.h | 4 +- include/inspstring.h | 7 +- include/listmode.h | 1 + include/logger.h | 5 +- include/membership.h | 5 +- include/mode.h | 5 +- include/modules.h | 5 +- include/modules/account.h | 41 +++++ include/modules/cap.h | 90 +++++++++++ include/modules/hash.h | 58 +++++++ include/modules/httpd.h | 203 ++++++++++++++++++++++++ include/modules/regex.h | 55 +++++++ include/modules/sasl.h | 31 ++++ include/modules/spanningtree.h | 40 +++++ include/modules/sql.h | 184 ++++++++++++++++++++++ include/modules/ssl.h | 172 +++++++++++++++++++++ include/numerics.h | 5 +- include/protocol.h | 6 +- include/snomasks.h | 5 +- include/socket.h | 6 +- include/socketengine.h | 6 +- include/testsuite.h | 5 +- include/threadengine.h | 6 +- include/threadengines/threadengine_pthread.h | 6 +- include/threadengines/threadengine_win32.h | 6 +- include/timer.h | 6 +- include/typedefs.h | 7 +- include/uid.h | 2 +- include/usermanager.h | 5 +- include/users.h | 5 +- include/xline.h | 4 +- src/modules/account.h | 44 ------ src/modules/extra/m_mysql.cpp | 2 +- src/modules/extra/m_pgsql.cpp | 2 +- src/modules/extra/m_regex_pcre.cpp | 4 +- src/modules/extra/m_regex_posix.cpp | 4 +- src/modules/extra/m_regex_stdlib.cpp | 4 +- src/modules/extra/m_regex_tre.cpp | 4 +- src/modules/extra/m_sqlite3.cpp | 2 +- src/modules/extra/m_ssl_gnutls.cpp | 4 +- src/modules/extra/m_ssl_openssl.cpp | 2 +- src/modules/hash.h | 61 -------- src/modules/httpd.h | 206 ------------------------- src/modules/m_banexception.cpp | 1 - src/modules/m_cap.cpp | 2 +- src/modules/m_cap.h | 92 ----------- src/modules/m_cloaking.cpp | 2 +- src/modules/m_filter.cpp | 2 +- src/modules/m_httpd.cpp | 4 +- src/modules/m_httpd_acl.cpp | 2 +- src/modules/m_httpd_config.cpp | 2 +- src/modules/m_httpd_stats.cpp | 2 +- src/modules/m_inviteexception.cpp | 1 - src/modules/m_ircv3.cpp | 4 +- src/modules/m_md5.cpp | 2 +- src/modules/m_namesx.cpp | 2 +- src/modules/m_password_hash.cpp | 2 +- src/modules/m_regex.h | 58 ------- src/modules/m_regex_glob.cpp | 2 +- src/modules/m_regonlycreate.cpp | 2 +- src/modules/m_ripemd160.cpp | 2 +- src/modules/m_rline.cpp | 2 +- src/modules/m_sasl.cpp | 8 +- src/modules/m_services_account.cpp | 2 +- src/modules/m_sha256.cpp | 2 +- src/modules/m_spanningtree/cachetimer.h | 5 +- src/modules/m_spanningtree/commands.h | 5 +- src/modules/m_spanningtree/hmac.cpp | 4 +- src/modules/m_spanningtree/link.h | 5 +- src/modules/m_spanningtree/main.h | 5 +- src/modules/m_spanningtree/operquit.cpp | 1 - src/modules/m_spanningtree/protocolinterface.h | 6 +- src/modules/m_spanningtree/resolvers.h | 5 +- src/modules/m_spanningtree/treeserver.cpp | 2 +- src/modules/m_spanningtree/treeserver.h | 5 +- src/modules/m_spanningtree/treesocket.h | 6 +- src/modules/m_spanningtree/treesocket1.cpp | 2 +- src/modules/m_spanningtree/utils.h | 5 +- src/modules/m_sqlauth.cpp | 4 +- src/modules/m_sqloper.cpp | 4 +- src/modules/m_sslinfo.cpp | 2 +- src/modules/m_sslmodes.cpp | 2 +- src/modules/m_uhnames.cpp | 2 +- src/modules/sasl.h | 34 ---- src/modules/spanningtree.h | 43 ------ src/modules/sql.h | 187 ---------------------- src/modules/ssl.h | 175 --------------------- win/config.h.cmake | 5 +- win/inspircd_memory_functions.cpp | 1 + win/inspircd_win32wrapper.cpp | 3 +- win/inspircd_win32wrapper.h | 9 +- win/win32service.h | 2 + 111 files changed, 985 insertions(+), 1171 deletions(-) create mode 100644 include/modules/account.h create mode 100644 include/modules/cap.h create mode 100644 include/modules/hash.h create mode 100644 include/modules/httpd.h create mode 100644 include/modules/regex.h create mode 100644 include/modules/sasl.h create mode 100644 include/modules/spanningtree.h create mode 100644 include/modules/sql.h create mode 100644 include/modules/ssl.h delete mode 100644 src/modules/account.h delete mode 100644 src/modules/hash.h delete mode 100644 src/modules/httpd.h delete mode 100644 src/modules/m_cap.h delete mode 100644 src/modules/m_regex.h delete mode 100644 src/modules/sasl.h delete mode 100644 src/modules/spanningtree.h delete mode 100644 src/modules/sql.h delete mode 100644 src/modules/ssl.h diff --git a/configure b/configure index 3e5b517c6..1dc6b3ef1 100755 --- a/configure +++ b/configure @@ -876,8 +876,7 @@ sub writefiles { open(FILEHANDLE, ">include/config.h.tmp"); print FILEHANDLE < #include @@ -255,5 +254,3 @@ class CoreExport ServiceProvider : public classbase virtual ~ServiceProvider(); }; - -#endif diff --git a/include/caller.h b/include/caller.h index 563577ac2..f69ff6796 100644 --- a/include/caller.h +++ b/include/caller.h @@ -19,8 +19,7 @@ */ -#ifndef CALLER_H -#define CALLER_H +#pragma once /* Pending some sort of C++11 support */ #if 0 @@ -355,5 +354,3 @@ template { public: NAME() { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5, V6, V7, V8); } #endif - -#endif diff --git a/include/channels.h b/include/channels.h index 43302552e..3c60fcd6a 100644 --- a/include/channels.h +++ b/include/channels.h @@ -20,8 +20,7 @@ */ -#ifndef CHANNELS_H -#define CHANNELS_H +#pragma once #include "membership.h" #include "mode.h" @@ -354,5 +353,3 @@ class CoreExport Channel : public Extensible, public InviteBase */ ModResult GetExtBanStatus(User *u, char type); }; - -#endif diff --git a/include/command_parse.h b/include/command_parse.h index f6ff588e1..e865018e4 100644 --- a/include/command_parse.h +++ b/include/command_parse.h @@ -20,8 +20,7 @@ */ -#ifndef COMMAND_PARSE_H -#define COMMAND_PARSE_H +#pragma once /** A list of dll/so files containing the command handlers for the core */ @@ -175,5 +174,3 @@ const int duration_multi[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; - -#endif diff --git a/include/commands/cmd_whowas.h b/include/commands/cmd_whowas.h index 590c11172..7e1eeefc9 100644 --- a/include/commands/cmd_whowas.h +++ b/include/commands/cmd_whowas.h @@ -19,8 +19,8 @@ */ -#ifndef CMD_WHOWAS_H -#define CMD_WHOWAS_H +#pragma once + #include "modules.h" /* Forward ref for typedefs */ @@ -114,5 +114,3 @@ class WhoWasGroup */ ~WhoWasGroup(); }; - -#endif diff --git a/include/configparser.h b/include/configparser.h index 9b2cd4527..8292fdda5 100644 --- a/include/configparser.h +++ b/include/configparser.h @@ -17,6 +17,8 @@ */ +#pragma once + struct fpos { std::string filename; @@ -76,5 +78,3 @@ struct FileWrapper } } }; - - diff --git a/include/configreader.h b/include/configreader.h index b137ee544..a2dfd2a34 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -21,8 +21,7 @@ */ -#ifndef INSPIRCD_CONFIGREADER -#define INSPIRCD_CONFIGREADER +#pragma once #include #include @@ -569,5 +568,3 @@ class CoreExport ConfigReaderThread : public Thread void Finish(); bool IsDone() { return done; } }; - -#endif diff --git a/include/consolecolors.h b/include/consolecolors.h index f7ca1335e..9b7e0670a 100644 --- a/include/consolecolors.h +++ b/include/consolecolors.h @@ -14,8 +14,8 @@ * along with this program. If not, see . */ -#ifndef CONSOLECOLORS_H -#define CONSOLECOLORS_H + +#pragma once #include @@ -96,5 +96,3 @@ inline std::ostream& con_reset(std::ostream &s) } #endif - -#endif diff --git a/include/ctables.h b/include/ctables.h index f9cd08cb3..2ccca0f7b 100644 --- a/include/ctables.h +++ b/include/ctables.h @@ -21,8 +21,7 @@ */ -#ifndef CTABLES_H -#define CTABLES_H +#pragma once /** Used to indicate command success codes */ @@ -252,5 +251,3 @@ class CoreExport SplitCommand : public Command translation.push_back(x5);translation.push_back(x6);translation.push_back(x7); #define TRANSLATE8(x1,x2,x3,x4,x5,x6,x7,x8) translation.push_back(x1);translation.push_back(x2);translation.push_back(x3);translation.push_back(x4);\ translation.push_back(x5);translation.push_back(x6);translation.push_back(x7);translation.push_back(x8); - -#endif diff --git a/include/cull_list.h b/include/cull_list.h index 75b08b7a3..ac64dced2 100644 --- a/include/cull_list.h +++ b/include/cull_list.h @@ -20,8 +20,7 @@ */ -#ifndef CULL_LIST_H -#define CULL_LIST_H +#pragma once /** * The CullList class is used to delete objects at the end of the main loop to @@ -58,6 +57,3 @@ class CoreExport ActionList void Run(); }; - -#endif - diff --git a/include/dns.h b/include/dns.h index 3c8e55d08..d03af8918 100644 --- a/include/dns.h +++ b/include/dns.h @@ -18,7 +18,6 @@ * along with this program. If not, see . */ - /* dns.h - dns library very very loosely based on firedns, Copyright (C) 2002 Ian Gulliver @@ -37,8 +36,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef DNS_H -#define DNS_H + +#pragma once #include "socket.h" #include "hashcomp.h" @@ -438,6 +437,3 @@ class CoreExport DNS : public EventHandler */ int PruneCache(); }; - -#endif - diff --git a/include/dynamic.h b/include/dynamic.h index 5e66ddbb0..d42cf61bf 100644 --- a/include/dynamic.h +++ b/include/dynamic.h @@ -20,8 +20,7 @@ */ -#ifndef DLL_H -#define DLL_H +#pragma once /** The DLLManager class is able to load a module file by filename, * and locate its init_module symbol. @@ -65,6 +64,3 @@ class CoreExport DLLManager : public classbase /** Get detailed version information from the module file */ std::string GetVersion(); }; - -#endif - diff --git a/include/exitcodes.h b/include/exitcodes.h index d4890c94d..888431969 100644 --- a/include/exitcodes.h +++ b/include/exitcodes.h @@ -19,8 +19,7 @@ */ -#ifndef EXITCODE_H -#define EXITCODE_H +#pragma once /** Valid exit codes to be used with InspIRCd::Exit() */ @@ -52,6 +51,3 @@ enum ExitStatus * human-readable strings to be shown on shutdown. */ extern const char * ExitCodes[]; - -#endif - diff --git a/include/extensible.h b/include/extensible.h index bcc4992bb..e062f66a5 100644 --- a/include/extensible.h +++ b/include/extensible.h @@ -17,8 +17,7 @@ */ -#ifndef EXTENSIBLE_H -#define EXTENSIBLE_H +#pragma once #include @@ -190,5 +189,3 @@ class CoreExport StringExtItem : public ExtensionItem void unset(Extensible* container); void free(void* item); }; - -#endif diff --git a/include/filelogger.h b/include/filelogger.h index 739e4d94b..091dc9a03 100644 --- a/include/filelogger.h +++ b/include/filelogger.h @@ -18,8 +18,7 @@ */ -#ifndef FILELOGGER_H -#define FILELOGGER_H +#pragma once #include "logger.h" @@ -51,6 +50,3 @@ class CoreExport FileLogStream : public LogStream virtual void OnLog(int loglevel, const std::string &type, const std::string &msg); }; - -#endif - diff --git a/include/hashcomp.h b/include/hashcomp.h index 2932f2a48..e4b3cfe79 100644 --- a/include/hashcomp.h +++ b/include/hashcomp.h @@ -22,8 +22,7 @@ */ -#ifndef HASHCOMP_H -#define HASHCOMP_H +#pragma once #include #include @@ -600,5 +599,3 @@ namespace std } } - -#endif diff --git a/include/inspircd.h b/include/inspircd.h index f61d48529..0ec2c7465 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -23,8 +23,7 @@ */ -#ifndef INSPIRCD_H -#define INSPIRCD_H +#pragma once #define _FILE_OFFSET_BITS 64 #ifndef _LARGEFILE_SOURCE @@ -877,6 +876,3 @@ class CommandModule : public Module return Version(cmd.name, VF_VENDOR|VF_CORE); } }; - -#endif - diff --git a/include/inspsocket.h b/include/inspsocket.h index c62c5a250..75c6dc511 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -21,8 +21,7 @@ */ -#ifndef INSPSOCKET_H -#define INSPSOCKET_H +#pragma once #include "timer.h" @@ -234,4 +233,3 @@ class CoreExport BufferedSocket : public StreamSocket inline Module* StreamSocket::GetIOHook() { return IOHook; } inline void StreamSocket::AddIOHook(Module* m) { IOHook = m; } inline void StreamSocket::DelIOHook() { IOHook = NULL; } -#endif diff --git a/include/inspstring.h b/include/inspstring.h index 494ce92b1..7a433427a 100644 --- a/include/inspstring.h +++ b/include/inspstring.h @@ -18,13 +18,11 @@ */ -#ifndef INSPSTRING_H -#define INSPSTRING_H +#pragma once // This (config) is needed as inspstring doesn't pull in the central header #include "config.h" #include -//#include #ifndef HAS_STRLCPY /** strlcpy() implementation for systems that don't have it (linux) */ @@ -52,6 +50,3 @@ CoreExport std::string BinToHex(const std::string& data); CoreExport std::string BinToBase64(const std::string& data, const char* table = NULL, char pad = 0); /** Base64 decode */ CoreExport std::string Base64ToBin(const std::string& data, const char* table = NULL); - -#endif - diff --git a/include/listmode.h b/include/listmode.h index b070b90f9..1c6f70d6f 100644 --- a/include/listmode.h +++ b/include/listmode.h @@ -16,6 +16,7 @@ * along with this program. If not, see . */ + #pragma once /** The base class for list modes, should be inherited. diff --git a/include/logger.h b/include/logger.h index eee964e15..7b4c45f1c 100644 --- a/include/logger.h +++ b/include/logger.h @@ -18,8 +18,7 @@ */ -#ifndef LOGGER_H -#define LOGGER_H +#pragma once /** Simple wrapper providing periodic flushing to a disk-backed file. */ @@ -211,5 +210,3 @@ class CoreExport LogManager */ void Log(const std::string &type, int loglevel, const char *fmt, ...) CUSTOM_PRINTF(4, 5); }; - -#endif diff --git a/include/membership.h b/include/membership.h index 436a9371c..44f588417 100644 --- a/include/membership.h +++ b/include/membership.h @@ -17,8 +17,7 @@ */ -#ifndef MEMBERSHIP_H -#define MEMBERSHIP_H +#pragma once class CoreExport Membership : public Extensible { @@ -59,5 +58,3 @@ class Invitation : public classbase static void Create(Channel* c, LocalUser* u, time_t timeout); static Invitation* Find(Channel* c, LocalUser* u, bool check_expired = true); }; - -#endif diff --git a/include/mode.h b/include/mode.h index de8d4c5f8..57f1b0669 100644 --- a/include/mode.h +++ b/include/mode.h @@ -20,8 +20,7 @@ */ -#ifndef MODE_H -#define MODE_H +#pragma once #include "ctables.h" @@ -563,5 +562,3 @@ class CoreExport ModeParser */ std::string BuildPrefixes(bool lettersAndModes = true); }; - -#endif diff --git a/include/modules.h b/include/modules.h index 9ba238da5..783edd9b1 100644 --- a/include/modules.h +++ b/include/modules.h @@ -23,8 +23,7 @@ */ -#ifndef MODULES_H -#define MODULES_H +#pragma once #include "dynamic.h" #include "base.h" @@ -1645,5 +1644,3 @@ struct AllModuleList { #define COMMAND_INIT(c) MODULE_INIT(CommandModule) #endif - -#endif diff --git a/include/modules/account.h b/include/modules/account.h new file mode 100644 index 000000000..c00b044e4 --- /dev/null +++ b/include/modules/account.h @@ -0,0 +1,41 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2008 Craig Edwards + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +#include +#include + +class AccountEvent : public Event +{ + public: + User* const user; + const std::string account; + AccountEvent(Module* me, User* u, const std::string& name) + : Event(me, "account_login"), user(u), account(name) + { + } +}; + +typedef StringExtItem AccountExtItem; + +inline AccountExtItem* GetAccountExtItem() +{ + return static_cast(ServerInstance->Extensions.GetItem("accountname")); +} diff --git a/include/modules/cap.h b/include/modules/cap.h new file mode 100644 index 000000000..2ed8df494 --- /dev/null +++ b/include/modules/cap.h @@ -0,0 +1,90 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2008 Craig Edwards + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +class CapEvent : public Event +{ + public: + enum CapEventType + { + CAPEVENT_REQ, + CAPEVENT_LS, + CAPEVENT_LIST, + CAPEVENT_CLEAR + }; + + CapEventType type; + std::vector wanted; + std::vector ack; + User* user; + CapEvent(Module* sender, User* u, CapEventType capevtype) : Event(sender, "cap_request"), type(capevtype), user(u) {} +}; + +class GenericCap +{ + public: + LocalIntExt ext; + const std::string cap; + GenericCap(Module* parent, const std::string &Cap) : ext("cap_" + Cap, parent), cap(Cap) + { + ServerInstance->Modules->AddService(ext); + } + + void HandleEvent(Event& ev) + { + if (ev.id != "cap_request") + return; + + CapEvent *data = static_cast(&ev); + if (data->type == CapEvent::CAPEVENT_REQ) + { + for (std::vector::iterator it = data->wanted.begin(); it != data->wanted.end(); ++it) + { + if (it->empty()) + continue; + bool enablecap = ((*it)[0] != '-'); + if (((enablecap) && (*it == cap)) || (*it == "-" + cap)) + { + // we can handle this, so ACK it, and remove it from the wanted list + data->ack.push_back(*it); + data->wanted.erase(it); + ext.set(data->user, enablecap ? 1 : 0); + break; + } + } + } + else if (data->type == CapEvent::CAPEVENT_LS) + { + data->wanted.push_back(cap); + } + else if (data->type == CapEvent::CAPEVENT_LIST) + { + if (ext.get(data->user)) + data->wanted.push_back(cap); + } + else if (data->type == CapEvent::CAPEVENT_CLEAR) + { + data->ack.push_back("-" + cap); + ext.set(data->user, 0); + } + } +}; + diff --git a/include/modules/hash.h b/include/modules/hash.h new file mode 100644 index 000000000..da04c45ba --- /dev/null +++ b/include/modules/hash.h @@ -0,0 +1,58 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2010 Daniel De Graaf + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +#include "modules.h" + +class HashProvider : public DataProvider +{ + public: + const unsigned int out_size; + const unsigned int block_size; + HashProvider(Module* mod, const std::string& Name, int osiz, int bsiz) + : DataProvider(mod, Name), out_size(osiz), block_size(bsiz) {} + virtual std::string sum(const std::string& data) = 0; + inline std::string hexsum(const std::string& data) + { + return BinToHex(sum(data)); + } + + inline std::string b64sum(const std::string& data) + { + return BinToBase64(sum(data), NULL, 0); + } + + /** HMAC algorithm, RFC 2104 */ + std::string hmac(const std::string& key, const std::string& msg) + { + std::string hmac1, hmac2; + std::string kbuf = key.length() > block_size ? sum(key) : key; + kbuf.resize(block_size); + + for (size_t n = 0; n < block_size; n++) + { + hmac1.push_back(static_cast(kbuf[n] ^ 0x5C)); + hmac2.push_back(static_cast(kbuf[n] ^ 0x36)); + } + hmac2.append(msg); + hmac1.append(sum(hmac2)); + return sum(hmac1); + } +}; diff --git a/include/modules/httpd.h b/include/modules/httpd.h new file mode 100644 index 000000000..d1746e862 --- /dev/null +++ b/include/modules/httpd.h @@ -0,0 +1,203 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2008 Pippijn van Steenhoven + * Copyright (C) 2007 John Brooks + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2006 Craig Edwards + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +#include "base.h" + +#include +#include +#include + +/** A modifyable list of HTTP header fields + */ +class HTTPHeaders +{ + protected: + std::map headers; + public: + + /** Set the value of a header + * Sets the value of the named header. If the header is already present, it will be replaced + */ + void SetHeader(const std::string &name, const std::string &data) + { + headers[name] = data; + } + + /** Set the value of a header, only if it doesn't exist already + * Sets the value of the named header. If the header is already present, it will NOT be updated + */ + void CreateHeader(const std::string &name, const std::string &data) + { + if (!IsSet(name)) + SetHeader(name, data); + } + + /** Remove the named header + */ + void RemoveHeader(const std::string &name) + { + headers.erase(name); + } + + /** Remove all headers + */ + void Clear() + { + headers.clear(); + } + + /** Get the value of a header + * @return The value of the header, or an empty string + */ + std::string GetHeader(const std::string &name) + { + std::map::iterator it = headers.find(name); + if (it == headers.end()) + return std::string(); + + return it->second; + } + + /** Check if the given header is specified + * @return true if the header is specified + */ + bool IsSet(const std::string &name) + { + std::map::iterator it = headers.find(name); + return (it != headers.end()); + } + + /** Get all headers, formatted by the HTTP protocol + * @return Returns all headers, formatted according to the HTTP protocol. There is no request terminator at the end + */ + std::string GetFormattedHeaders() + { + std::string re; + + for (std::map::iterator i = headers.begin(); i != headers.end(); i++) + re += i->first + ": " + i->second + "\r\n"; + + return re; + } +}; + +class HttpServerSocket; + +/** This class represents a HTTP request. + */ +class HTTPRequest : public Event +{ + protected: + std::string type; + std::string document; + std::string ipaddr; + std::string postdata; + + public: + + HTTPHeaders *headers; + int errorcode; + + /** A socket pointer, which you must return in your HTTPDocument class + * if you reply to this request. + */ + HttpServerSocket* sock; + + /** Initialize HTTPRequest. + * This constructor is called by m_httpd.so to initialize the class. + * @param request_type The request type, e.g. GET, POST, HEAD + * @param uri The URI, e.g. /page + * @param hdr The headers sent with the request + * @param opaque An opaque pointer used internally by m_httpd, which you must pass back to the module in your reply. + * @param ip The IP address making the web request. + * @param pdata The post data (content after headers) received with the request, up to Content-Length in size + */ + HTTPRequest(Module* me, const std::string &eventid, const std::string &request_type, const std::string &uri, + HTTPHeaders* hdr, HttpServerSocket* socket, const std::string &ip, const std::string &pdata) + : Event(me, eventid), type(request_type), document(uri), ipaddr(ip), postdata(pdata), headers(hdr), sock(socket) + { + } + + /** Get the post data (request content). + * All post data will be returned, including carriage returns and linefeeds. + * @return The postdata + */ + std::string& GetPostData() + { + return postdata; + } + + /** Get the request type. + * Any request type can be intercepted, even ones which are invalid in the HTTP/1.1 spec. + * @return The request type, e.g. GET, POST, HEAD + */ + std::string& GetType() + { + return type; + } + + /** Get URI. + * The URI string (URL minus hostname and scheme) will be provided by this function. + * @return The URI being requested + */ + std::string& GetURI() + { + return document; + } + + /** Get IP address of requester. + * The requesting system's ip address will be returned. + * @return The IP address as a string + */ + std::string& GetIP() + { + return ipaddr; + } +}; + +/** You must return a HTTPDocument to the httpd module by using the Request class. + * When you initialize this class you may initialize it with all components required to + * form a valid HTTP response, including document data, headers, and a response code. + */ +class HTTPDocumentResponse : public Request +{ + public: + std::stringstream* document; + int responsecode; + HTTPHeaders headers; + HTTPRequest& src; + + /** Initialize a HTTPRequest ready for sending to m_httpd.so. + * @param opaque The socket pointer you obtained from the HTTPRequest at an earlier time + * @param doc A stringstream containing the document body + * @param response A valid HTTP/1.0 or HTTP/1.1 response code. The response text will be determined for you + * based upon the response code. + * @param extra Any extra headers to include with the defaults, seperated by carriage return and linefeed. + */ + HTTPDocumentResponse(Module* me, HTTPRequest& req, std::stringstream* doc, int response) + : Request(me, req.source, "HTTP-DOC"), document(doc), responsecode(response), src(req) + { + } +}; diff --git a/include/modules/regex.h b/include/modules/regex.h new file mode 100644 index 000000000..875f942bc --- /dev/null +++ b/include/modules/regex.h @@ -0,0 +1,55 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2008 Thomas Stagner + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +#include "inspircd.h" + +class Regex : public classbase +{ +protected: + std::string regex_string; // The raw uncompiled regex string. + + // Constructor may as well be protected, as this class is abstract. + Regex(const std::string& rx) : regex_string(rx) + { + } + +public: + + virtual ~Regex() + { + } + + virtual bool Matches(const std::string& text) = 0; + + const std::string& GetRegexString() const + { + return regex_string; + } +}; + +class RegexFactory : public DataProvider +{ + public: + RegexFactory(Module* Creator, const std::string& Name) : DataProvider(Creator, Name) {} + + virtual Regex* Create(const std::string& expr) = 0; +}; diff --git a/include/modules/sasl.h b/include/modules/sasl.h new file mode 100644 index 000000000..321711a68 --- /dev/null +++ b/include/modules/sasl.h @@ -0,0 +1,31 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2010 Daniel De Graaf + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +class SASLFallback : public Event +{ + public: + const parameterlist& params; + SASLFallback(Module* me, const parameterlist& p) + : Event(me, "sasl_fallback"), params(p) + { + Send(); + } +}; diff --git a/include/modules/spanningtree.h b/include/modules/spanningtree.h new file mode 100644 index 000000000..99f4f9fc4 --- /dev/null +++ b/include/modules/spanningtree.h @@ -0,0 +1,40 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2009 Daniel De Graaf + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +struct AddServerEvent : public Event +{ + const std::string servername; + AddServerEvent(Module* me, const std::string& name) + : Event(me, "new_server"), servername(name) + { + Send(); + } +}; + +struct DelServerEvent : public Event +{ + const std::string servername; + DelServerEvent(Module* me, const std::string& name) + : Event(me, "lost_server"), servername(name) + { + Send(); + } +}; diff --git a/include/modules/sql.h b/include/modules/sql.h new file mode 100644 index 000000000..a671cc95c --- /dev/null +++ b/include/modules/sql.h @@ -0,0 +1,184 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2010 Daniel De Graaf + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +/** Defines the error types which SQLerror may be set to + */ +enum SQLerrorNum { SQL_NO_ERROR, SQL_BAD_DBID, SQL_BAD_CONN, SQL_QSEND_FAIL, SQL_QREPLY_FAIL }; + +/** A list of format parameters for an SQLquery object. + */ +typedef std::vector ParamL; + +typedef std::map ParamM; + +class SQLEntry +{ + public: + std::string value; + bool nul; + SQLEntry() : nul(true) {} + SQLEntry(const std::string& v) : value(v), nul(false) {} + inline operator std::string&() { return value; } +}; + +typedef std::vector SQLEntries; + +/** + * Result of an SQL query. Only valid inside OnResult + */ +class SQLResult : public classbase +{ + public: + /** + * Return the number of rows in the result. + * + * Note that if you have perfomed an INSERT or UPDATE query or other + * query which will not return rows, this will return the number of + * affected rows. In this case you SHOULD NEVER access any of the result + * set rows, as there aren't any! + * @returns Number of rows in the result set. + */ + virtual int Rows() = 0; + + /** + * Return a single row (result of the query). The internal row counter + * is incremented by one. + * + * @param result Storage for the result data. + * @returns true if there was a row, false if no row exists (end of + * iteration) + */ + virtual bool GetRow(SQLEntries& result) = 0; + + /** Returns column names for the items in this row + */ + virtual void GetCols(std::vector& result) = 0; +}; + +/** SQLerror holds the error state of a request. + * The error string varies from database software to database software + * and should be used to display informational error messages to users. + */ +class SQLerror +{ + public: + /** The error id + */ + SQLerrorNum id; + + /** The error string + */ + std::string str; + + /** Initialize an SQLerror + * @param i The error ID to set + * @param s The (optional) error string to set + */ + SQLerror(SQLerrorNum i, const std::string &s = "") + : id(i), str(s) + { + } + + /** Return the error string for an error + */ + const char* Str() + { + if(str.length()) + return str.c_str(); + + switch(id) + { + case SQL_BAD_DBID: + return "Invalid database ID"; + case SQL_BAD_CONN: + return "Invalid connection"; + case SQL_QSEND_FAIL: + return "Sending query failed"; + case SQL_QREPLY_FAIL: + return "Getting query result failed"; + default: + return "Unknown error"; + } + } +}; + +/** + * Object representing an SQL query. This should be allocated on the heap and + * passed to an SQLProvider, which will free it when the query is complete or + * when the querying module is unloaded. + * + * You should store whatever information is needed to have the callbacks work in + * this object (UID of user, channel name, etc). + */ +class SQLQuery : public classbase +{ + public: + ModuleRef creator; + + SQLQuery(Module* Creator) : creator(Creator) {} + virtual ~SQLQuery() {} + + virtual void OnResult(SQLResult& result) = 0; + /** + * Called when the query fails + */ + virtual void OnError(SQLerror& error) { } +}; + +/** + * Provider object for SQL servers + */ +class SQLProvider : public DataProvider +{ + public: + SQLProvider(Module* Creator, const std::string& Name) : DataProvider(Creator, Name) {} + /** Submit an asynchronous SQL request + * @param callback The result reporting point + * @param query The hardcoded query string. If you have parameters to substitute, see below. + */ + virtual void submit(SQLQuery* callback, const std::string& query) = 0; + + /** Submit an asynchronous SQL request + * @param callback The result reporting point + * @param format The simple parameterized query string ('?' parameters) + * @param p Parameters to fill in for the '?' entries + */ + virtual void submit(SQLQuery* callback, const std::string& format, const ParamL& p) = 0; + + /** Submit an asynchronous SQL request. + * @param callback The result reporting point + * @param format The parameterized query string ('$name' parameters) + * @param p Parameters to fill in for the '$name' entries + */ + virtual void submit(SQLQuery* callback, const std::string& format, const ParamM& p) = 0; + + /** Convenience function to prepare a map from a User* */ + void PopulateUserInfo(User* user, ParamM& userinfo) + { + userinfo["nick"] = user->nick; + userinfo["host"] = user->host; + userinfo["ip"] = user->GetIPString(); + userinfo["gecos"] = user->fullname; + userinfo["ident"] = user->ident; + userinfo["server"] = user->server; + userinfo["uuid"] = user->uuid; + } +}; diff --git a/include/modules/ssl.h b/include/modules/ssl.h new file mode 100644 index 000000000..a79dcc9ef --- /dev/null +++ b/include/modules/ssl.h @@ -0,0 +1,172 @@ +/* + * InspIRCd -- Internet Relay Chat Daemon + * + * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2006 Craig Edwards + * + * 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 + * License as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + +#include +#include + +/** ssl_cert is a class which abstracts SSL certificate + * and key information. + * + * Because gnutls and openssl represent key information in + * wildly different ways, this class allows it to be accessed + * in a unified manner. These classes are attached to ssl- + * connected local users using SSLCertExt + */ +class ssl_cert : public refcountbase +{ + public: + std::string dn; + std::string issuer; + std::string error; + std::string fingerprint; + bool trusted, invalid, unknownsigner, revoked; + + ssl_cert() : trusted(false), invalid(true), unknownsigner(true), revoked(false) {} + + /** Get certificate distinguished name + * @return Certificate DN + */ + const std::string& GetDN() + { + return dn; + } + + /** Get Certificate issuer + * @return Certificate issuer + */ + const std::string& GetIssuer() + { + return issuer; + } + + /** Get error string if an error has occured + * @return The error associated with this users certificate, + * or an empty string if there is no error. + */ + const std::string& GetError() + { + return error; + } + + /** Get key fingerprint. + * @return The key fingerprint as a hex string. + */ + const std::string& GetFingerprint() + { + return fingerprint; + } + + /** Get trust status + * @return True if this is a trusted certificate + * (the certificate chain validates) + */ + bool IsTrusted() + { + return trusted; + } + + /** Get validity status + * @return True if the certificate itself is + * correctly formed. + */ + bool IsInvalid() + { + return invalid; + } + + /** Get signer status + * @return True if the certificate appears to be + * self-signed. + */ + bool IsUnknownSigner() + { + return unknownsigner; + } + + /** Get revokation status. + * @return True if the certificate is revoked. + * Note that this only works properly for GnuTLS + * right now. + */ + bool IsRevoked() + { + return revoked; + } + + bool IsCAVerified() + { + return trusted && !invalid && !revoked && !unknownsigner && error.empty(); + } + + std::string GetMetaLine() + { + std::stringstream value; + bool hasError = !error.empty(); + value << (IsInvalid() ? "v" : "V") << (IsTrusted() ? "T" : "t") << (IsRevoked() ? "R" : "r") + << (IsUnknownSigner() ? "s" : "S") << (hasError ? "E" : "e") << " "; + if (hasError) + value << GetError(); + else + value << GetFingerprint() << " " << GetDN() << " " << GetIssuer(); + return value.str(); + } +}; + +/** Get certificate from a socket (only useful with an SSL module) */ +struct SocketCertificateRequest : public Request +{ + StreamSocket* const sock; + ssl_cert* cert; + + SocketCertificateRequest(StreamSocket* ss, Module* Me) + : Request(Me, ss->GetIOHook(), "GET_SSL_CERT"), sock(ss), cert(NULL) + { + Send(); + } + + std::string GetFingerprint() + { + if (cert) + return cert->GetFingerprint(); + return ""; + } +}; + +/** Get certificate from a user (requires m_sslinfo) */ +struct UserCertificateRequest : public Request +{ + User* const user; + ssl_cert* cert; + + UserCertificateRequest(User* u, Module* Me, Module* info = ServerInstance->Modules->Find("m_sslinfo.so")) + : Request(Me, info, "GET_USER_CERT"), user(u), cert(NULL) + { + Send(); + } + + std::string GetFingerprint() + { + if (cert) + return cert->GetFingerprint(); + return ""; + } +}; diff --git a/include/numerics.h b/include/numerics.h index 4fce4cb6d..997a71d3a 100644 --- a/include/numerics.h +++ b/include/numerics.h @@ -18,8 +18,7 @@ */ -#ifndef NUMERICS_H -#define NUMERICS_H +#pragma once /* * This file is aimed providing a string that is easier to use than using the numeric @@ -157,5 +156,3 @@ enum Numerics ERR_CANTLOADMODULE = 974, // insp-specific RPL_LOADEDMODULE = 975 // insp-specific }; - -#endif diff --git a/include/protocol.h b/include/protocol.h index aabb5b022..4488fcea4 100644 --- a/include/protocol.h +++ b/include/protocol.h @@ -18,8 +18,7 @@ */ -#ifndef PROTOCOL_H -#define PROTOCOL_H +#pragma once #include "hashcomp.h" @@ -135,6 +134,3 @@ class ProtocolInterface */ virtual void GetServerList(ProtoServerList &sl) { } }; - -#endif - diff --git a/include/snomasks.h b/include/snomasks.h index 85ad26f71..c5d594eeb 100644 --- a/include/snomasks.h +++ b/include/snomasks.h @@ -20,8 +20,7 @@ */ -#ifndef SNOMASKS_H -#define SNOMASKS_H +#pragma once class Snomask { @@ -106,5 +105,3 @@ class CoreExport SnomaskManager */ void FlushSnotices(); }; - -#endif diff --git a/include/socket.h b/include/socket.h index 5f6705124..f6934b771 100644 --- a/include/socket.h +++ b/include/socket.h @@ -22,8 +22,7 @@ */ -#ifndef INSPIRCD_SOCKET_H -#define INSPIRCD_SOCKET_H +#pragma once #ifndef _WIN32 @@ -165,6 +164,3 @@ class CoreExport ListenSocket : public EventHandler */ void AcceptInternal(); }; - -#endif - diff --git a/include/socketengine.h b/include/socketengine.h index 58af73589..fd199c324 100644 --- a/include/socketengine.h +++ b/include/socketengine.h @@ -20,8 +20,7 @@ */ -#ifndef SOCKETENGINE_H -#define SOCKETENGINE_H +#pragma once #include #include @@ -492,6 +491,3 @@ public: }; SocketEngine* CreateSocketEngine(); - -#endif - diff --git a/include/testsuite.h b/include/testsuite.h index f91e508c9..43064b063 100644 --- a/include/testsuite.h +++ b/include/testsuite.h @@ -16,8 +16,7 @@ */ -#ifndef TESTSUITE_H -#define TESTSUITE_H +#pragma once class TestSuite { @@ -32,5 +31,3 @@ class TestSuite bool DoSpaceSepStreamTests(); bool DoGenerateUIDTests(); }; - -#endif diff --git a/include/threadengine.h b/include/threadengine.h index e0ed9ec40..39f150566 100644 --- a/include/threadengine.h +++ b/include/threadengine.h @@ -18,8 +18,7 @@ */ -#ifndef THREADENGINE_H -#define THREADENGINE_H +#pragma once #include #include @@ -172,6 +171,3 @@ class CoreExport SocketThread : public Thread */ virtual void OnNotify() = 0; }; - -#endif - diff --git a/include/threadengines/threadengine_pthread.h b/include/threadengines/threadengine_pthread.h index 5168ed238..253e8d223 100644 --- a/include/threadengines/threadengine_pthread.h +++ b/include/threadengines/threadengine_pthread.h @@ -18,8 +18,7 @@ */ -#ifndef THREADENGINE_PTHREAD_H -#define THREADENGINE_PTHREAD_H +#pragma once #include #include "typedefs.h" @@ -153,6 +152,3 @@ class ThreadSignalData public: ThreadSignalSocket* sock; }; - - -#endif diff --git a/include/threadengines/threadengine_win32.h b/include/threadengines/threadengine_win32.h index 2fdcac565..59848bd44 100644 --- a/include/threadengines/threadengine_win32.h +++ b/include/threadengines/threadengine_win32.h @@ -18,8 +18,7 @@ */ -#ifndef THREADENGINE_WIN32_H -#define THREADENGINE_WIN32_H +#pragma once #include "config.h" #include "base.h" @@ -152,6 +151,3 @@ class ThreadSignalData connFD = -1; } }; - -#endif - diff --git a/include/timer.h b/include/timer.h index 9bb7128b8..0dda6876e 100644 --- a/include/timer.h +++ b/include/timer.h @@ -19,8 +19,7 @@ */ -#ifndef INSPIRCD_TIMER_H -#define INSPIRCD_TIMER_H +#pragma once /** Timer class for one-second resolution timers * Timer provides a facility which allows module @@ -149,6 +148,3 @@ class CoreExport TimerManager */ static bool TimerComparison( Timer *one, Timer*two); }; - -#endif - diff --git a/include/typedefs.h b/include/typedefs.h index e73790667..be7d4f796 100644 --- a/include/typedefs.h +++ b/include/typedefs.h @@ -19,8 +19,7 @@ */ -#ifndef TYPEDEFS_H -#define TYPEDEFS_H +#pragma once class BanCacheManager; class BanItem; @@ -154,7 +153,3 @@ typedef XLineContainer::iterator ContainerIter; /** An interator in an XLineLookup */ typedef XLineLookup::iterator LookupIter; - - -#endif - diff --git a/include/uid.h b/include/uid.h index 17061bdee..3783e7ada 100644 --- a/include/uid.h +++ b/include/uid.h @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +#pragma once /** * This is the maximum length of a UUID (unique user identifier). @@ -24,4 +25,3 @@ */ #define UUID_LENGTH 10 - diff --git a/include/usermanager.h b/include/usermanager.h index 812d8e2f2..560db17f2 100644 --- a/include/usermanager.h +++ b/include/usermanager.h @@ -17,8 +17,7 @@ */ -#ifndef USERMANAGER_H -#define USERMANAGER_H +#pragma once #include @@ -168,5 +167,3 @@ class CoreExport UserManager */ void ServerPrivmsgAll(const char* text, ...) CUSTOM_PRINTF(2, 3); }; - -#endif diff --git a/include/users.h b/include/users.h index c5c936c13..34bcc9c73 100644 --- a/include/users.h +++ b/include/users.h @@ -22,8 +22,7 @@ */ -#ifndef USERS_H -#define USERS_H +#pragma once #include "socket.h" #include "inspsocket.h" @@ -953,5 +952,3 @@ class CoreExport UserResolver : public Resolver */ void OnError(ResolverError e, const std::string &errormessage); }; - -#endif diff --git a/include/xline.h b/include/xline.h index 4094e05df..119e29dc1 100644 --- a/include/xline.h +++ b/include/xline.h @@ -20,8 +20,7 @@ */ -#ifndef XLINE_H -#define XLINE_H +#pragma once /** XLine is the base class for ban lines such as G lines and K lines. * Modules may derive from this, and their xlines will automatically be @@ -527,4 +526,3 @@ class CoreExport XLineManager void InvokeStats(const std::string &type, int numeric, User* user, string_list &results); }; -#endif diff --git a/src/modules/account.h b/src/modules/account.h deleted file mode 100644 index ba671ba0b..000000000 --- a/src/modules/account.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2008 Craig Edwards - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#ifndef ACCOUNT_H -#define ACCOUNT_H - -#include -#include - -class AccountEvent : public Event -{ - public: - User* const user; - const std::string account; - AccountEvent(Module* me, User* u, const std::string& name) - : Event(me, "account_login"), user(u), account(name) - { - } -}; - -typedef StringExtItem AccountExtItem; - -inline AccountExtItem* GetAccountExtItem() -{ - return static_cast(ServerInstance->Extensions.GetItem("accountname")); -} - -#endif diff --git a/src/modules/extra/m_mysql.cpp b/src/modules/extra/m_mysql.cpp index b71c3543e..2a7e2f878 100644 --- a/src/modules/extra/m_mysql.cpp +++ b/src/modules/extra/m_mysql.cpp @@ -25,7 +25,7 @@ #include "inspircd.h" #include -#include "sql.h" +#include "modules/sql.h" #ifdef _WIN32 # pragma comment(lib, "mysqlclient.lib") diff --git a/src/modules/extra/m_pgsql.cpp b/src/modules/extra/m_pgsql.cpp index ea94834f3..6d2e0c88a 100644 --- a/src/modules/extra/m_pgsql.cpp +++ b/src/modules/extra/m_pgsql.cpp @@ -26,7 +26,7 @@ #include #include #include -#include "sql.h" +#include "modules/sql.h" /* $ModDesc: PostgreSQL Service Provider module for all other m_sql* modules, uses v2 of the SQL API */ /* $CompileFlags: -Iexec("pg_config --includedir") eval("my $s = `pg_config --version`;$s =~ /^.*?(\d+)\.(\d+)\.(\d+).*?$/;my $v = hex(sprintf("0x%02x%02x%02x", $1, $2, $3));print "-DPGSQL_HAS_ESCAPECONN" if(($v >= 0x080104) || ($v >= 0x07030F && $v < 0x070400) || ($v >= 0x07040D && $v < 0x080000) || ($v >= 0x080008 && $v < 0x080100));") */ diff --git a/src/modules/extra/m_regex_pcre.cpp b/src/modules/extra/m_regex_pcre.cpp index e9d9aba8a..b2dd53515 100644 --- a/src/modules/extra/m_regex_pcre.cpp +++ b/src/modules/extra/m_regex_pcre.cpp @@ -20,10 +20,10 @@ #include "inspircd.h" #include -#include "m_regex.h" +#include "modules/regex.h" /* $ModDesc: Regex Provider Module for PCRE */ -/* $ModDep: m_regex.h */ +/* $ModDep: modules/regex.h */ /* $CompileFlags: exec("pcre-config --cflags") */ /* $LinkerFlags: exec("pcre-config --libs") rpath("pcre-config --libs") -lpcre */ diff --git a/src/modules/extra/m_regex_posix.cpp b/src/modules/extra/m_regex_posix.cpp index 513f54cfc..2c1295fd8 100644 --- a/src/modules/extra/m_regex_posix.cpp +++ b/src/modules/extra/m_regex_posix.cpp @@ -19,12 +19,12 @@ #include "inspircd.h" -#include "m_regex.h" +#include "modules/regex.h" #include #include /* $ModDesc: Regex Provider Module for POSIX Regular Expressions */ -/* $ModDep: m_regex.h */ +/* $ModDep: modules/regex.h */ class POSIXRegexException : public ModuleException { diff --git a/src/modules/extra/m_regex_stdlib.cpp b/src/modules/extra/m_regex_stdlib.cpp index 64d479cbc..3c15f5568 100644 --- a/src/modules/extra/m_regex_stdlib.cpp +++ b/src/modules/extra/m_regex_stdlib.cpp @@ -17,7 +17,7 @@ */ #include "inspircd.h" -#include "m_regex.h" +#include "modules/regex.h" #include /* $ModDesc: Regex Provider Module for std::regex Regular Expressions */ @@ -25,7 +25,7 @@ * Specify the Regular Expression engine to use here. Valid settings are * bre, ere, awk, grep, egrep, ecmascript (default if not specified)*/ /* $CompileFlags: -std=c++11 */ -/* $ModDep: m_regex.h */ +/* $ModDep: modules/regex.h */ class StdRegexException : public ModuleException { diff --git a/src/modules/extra/m_regex_tre.cpp b/src/modules/extra/m_regex_tre.cpp index b5bd7d012..c352d5fdf 100644 --- a/src/modules/extra/m_regex_tre.cpp +++ b/src/modules/extra/m_regex_tre.cpp @@ -19,14 +19,14 @@ #include "inspircd.h" -#include "m_regex.h" +#include "modules/regex.h" #include #include /* $ModDesc: Regex Provider Module for TRE Regular Expressions */ /* $CompileFlags: pkgconfincludes("tre","tre/regex.h","") */ /* $LinkerFlags: pkgconflibs("tre","/libtre.so","-ltre") rpath("pkg-config --libs tre") */ -/* $ModDep: m_regex.h */ +/* $ModDep: modules/regex.h */ class TRERegexException : public ModuleException { diff --git a/src/modules/extra/m_sqlite3.cpp b/src/modules/extra/m_sqlite3.cpp index 40f44557a..5cffa3640 100644 --- a/src/modules/extra/m_sqlite3.cpp +++ b/src/modules/extra/m_sqlite3.cpp @@ -22,7 +22,7 @@ #include "inspircd.h" #include -#include "sql.h" +#include "modules/sql.h" #ifdef _WIN32 # pragma comment(lib, "sqlite3.lib") diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index 31beb258f..1caacaa0f 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -25,8 +25,8 @@ #include #include #include -#include "ssl.h" -#include "m_cap.h" +#include "modules/ssl.h" +#include "modules/cap.h" #ifdef _WIN32 # pragma comment(lib, "libgnutls.lib") diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp index 427439eb3..5a0e56db2 100644 --- a/src/modules/extra/m_ssl_openssl.cpp +++ b/src/modules/extra/m_ssl_openssl.cpp @@ -33,7 +33,7 @@ #include "inspircd.h" #include #include -#include "ssl.h" +#include "modules/ssl.h" #ifdef _WIN32 # pragma comment(lib, "libcrypto.lib") diff --git a/src/modules/hash.h b/src/modules/hash.h deleted file mode 100644 index dd7f082b0..000000000 --- a/src/modules/hash.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2010 Daniel De Graaf - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#ifndef HASH_H -#define HASH_H - -#include "modules.h" - -class HashProvider : public DataProvider -{ - public: - const unsigned int out_size; - const unsigned int block_size; - HashProvider(Module* mod, const std::string& Name, int osiz, int bsiz) - : DataProvider(mod, Name), out_size(osiz), block_size(bsiz) {} - virtual std::string sum(const std::string& data) = 0; - inline std::string hexsum(const std::string& data) - { - return BinToHex(sum(data)); - } - - inline std::string b64sum(const std::string& data) - { - return BinToBase64(sum(data), NULL, 0); - } - - /** HMAC algorithm, RFC 2104 */ - std::string hmac(const std::string& key, const std::string& msg) - { - std::string hmac1, hmac2; - std::string kbuf = key.length() > block_size ? sum(key) : key; - kbuf.resize(block_size); - - for (size_t n = 0; n < block_size; n++) - { - hmac1.push_back(static_cast(kbuf[n] ^ 0x5C)); - hmac2.push_back(static_cast(kbuf[n] ^ 0x36)); - } - hmac2.append(msg); - hmac1.append(sum(hmac2)); - return sum(hmac1); - } -}; - -#endif diff --git a/src/modules/httpd.h b/src/modules/httpd.h deleted file mode 100644 index 57c60b3b2..000000000 --- a/src/modules/httpd.h +++ /dev/null @@ -1,206 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2008 Pippijn van Steenhoven - * Copyright (C) 2007 John Brooks - * Copyright (C) 2007 Dennis Friis - * Copyright (C) 2006 Craig Edwards - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#include "base.h" - -#ifndef HTTPD_H -#define HTTPD_H - -#include -#include -#include - -/** A modifyable list of HTTP header fields - */ -class HTTPHeaders -{ - protected: - std::map headers; - public: - - /** Set the value of a header - * Sets the value of the named header. If the header is already present, it will be replaced - */ - void SetHeader(const std::string &name, const std::string &data) - { - headers[name] = data; - } - - /** Set the value of a header, only if it doesn't exist already - * Sets the value of the named header. If the header is already present, it will NOT be updated - */ - void CreateHeader(const std::string &name, const std::string &data) - { - if (!IsSet(name)) - SetHeader(name, data); - } - - /** Remove the named header - */ - void RemoveHeader(const std::string &name) - { - headers.erase(name); - } - - /** Remove all headers - */ - void Clear() - { - headers.clear(); - } - - /** Get the value of a header - * @return The value of the header, or an empty string - */ - std::string GetHeader(const std::string &name) - { - std::map::iterator it = headers.find(name); - if (it == headers.end()) - return std::string(); - - return it->second; - } - - /** Check if the given header is specified - * @return true if the header is specified - */ - bool IsSet(const std::string &name) - { - std::map::iterator it = headers.find(name); - return (it != headers.end()); - } - - /** Get all headers, formatted by the HTTP protocol - * @return Returns all headers, formatted according to the HTTP protocol. There is no request terminator at the end - */ - std::string GetFormattedHeaders() - { - std::string re; - - for (std::map::iterator i = headers.begin(); i != headers.end(); i++) - re += i->first + ": " + i->second + "\r\n"; - - return re; - } -}; - -class HttpServerSocket; - -/** This class represents a HTTP request. - */ -class HTTPRequest : public Event -{ - protected: - std::string type; - std::string document; - std::string ipaddr; - std::string postdata; - - public: - - HTTPHeaders *headers; - int errorcode; - - /** A socket pointer, which you must return in your HTTPDocument class - * if you reply to this request. - */ - HttpServerSocket* sock; - - /** Initialize HTTPRequest. - * This constructor is called by m_httpd.so to initialize the class. - * @param request_type The request type, e.g. GET, POST, HEAD - * @param uri The URI, e.g. /page - * @param hdr The headers sent with the request - * @param opaque An opaque pointer used internally by m_httpd, which you must pass back to the module in your reply. - * @param ip The IP address making the web request. - * @param pdata The post data (content after headers) received with the request, up to Content-Length in size - */ - HTTPRequest(Module* me, const std::string &eventid, const std::string &request_type, const std::string &uri, - HTTPHeaders* hdr, HttpServerSocket* socket, const std::string &ip, const std::string &pdata) - : Event(me, eventid), type(request_type), document(uri), ipaddr(ip), postdata(pdata), headers(hdr), sock(socket) - { - } - - /** Get the post data (request content). - * All post data will be returned, including carriage returns and linefeeds. - * @return The postdata - */ - std::string& GetPostData() - { - return postdata; - } - - /** Get the request type. - * Any request type can be intercepted, even ones which are invalid in the HTTP/1.1 spec. - * @return The request type, e.g. GET, POST, HEAD - */ - std::string& GetType() - { - return type; - } - - /** Get URI. - * The URI string (URL minus hostname and scheme) will be provided by this function. - * @return The URI being requested - */ - std::string& GetURI() - { - return document; - } - - /** Get IP address of requester. - * The requesting system's ip address will be returned. - * @return The IP address as a string - */ - std::string& GetIP() - { - return ipaddr; - } -}; - -/** You must return a HTTPDocument to the httpd module by using the Request class. - * When you initialize this class you may initialize it with all components required to - * form a valid HTTP response, including document data, headers, and a response code. - */ -class HTTPDocumentResponse : public Request -{ - public: - std::stringstream* document; - int responsecode; - HTTPHeaders headers; - HTTPRequest& src; - - /** Initialize a HTTPRequest ready for sending to m_httpd.so. - * @param opaque The socket pointer you obtained from the HTTPRequest at an earlier time - * @param doc A stringstream containing the document body - * @param response A valid HTTP/1.0 or HTTP/1.1 response code. The response text will be determined for you - * based upon the response code. - * @param extra Any extra headers to include with the defaults, seperated by carriage return and linefeed. - */ - HTTPDocumentResponse(Module* me, HTTPRequest& req, std::stringstream* doc, int response) - : Request(me, req.source, "HTTP-DOC"), document(doc), responsecode(response), src(req) - { - } -}; - -#endif diff --git a/src/modules/m_banexception.cpp b/src/modules/m_banexception.cpp index cf4144935..63f0085ed 100644 --- a/src/modules/m_banexception.cpp +++ b/src/modules/m_banexception.cpp @@ -25,7 +25,6 @@ #include "listmode.h" /* $ModDesc: Provides support for the +e channel mode */ -/* $ModDep: ../../include/listmode.h */ /* Written by Om, April 2005. */ /* Rewritten to use the listmode utility by Om, December 2005 */ diff --git a/src/modules/m_cap.cpp b/src/modules/m_cap.cpp index 59b92eb27..ee9c96936 100644 --- a/src/modules/m_cap.cpp +++ b/src/modules/m_cap.cpp @@ -19,7 +19,7 @@ #include "inspircd.h" -#include "m_cap.h" +#include "modules/cap.h" /* $ModDesc: Provides the CAP negotiation mechanism seen in ratbox-derived ircds */ diff --git a/src/modules/m_cap.h b/src/modules/m_cap.h deleted file mode 100644 index 409671f48..000000000 --- a/src/modules/m_cap.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2008 Craig Edwards - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#ifndef M_CAP_H -#define M_CAP_H - -class CapEvent : public Event -{ - public: - enum CapEventType - { - CAPEVENT_REQ, - CAPEVENT_LS, - CAPEVENT_LIST, - CAPEVENT_CLEAR - }; - - CapEventType type; - std::vector wanted; - std::vector ack; - User* user; - CapEvent(Module* sender, User* u, CapEventType capevtype) : Event(sender, "cap_request"), type(capevtype), user(u) {} -}; - -class GenericCap -{ - public: - LocalIntExt ext; - const std::string cap; - GenericCap(Module* parent, const std::string &Cap) : ext("cap_" + Cap, parent), cap(Cap) - { - ServerInstance->Modules->AddService(ext); - } - - void HandleEvent(Event& ev) - { - if (ev.id != "cap_request") - return; - - CapEvent *data = static_cast(&ev); - if (data->type == CapEvent::CAPEVENT_REQ) - { - for (std::vector::iterator it = data->wanted.begin(); it != data->wanted.end(); ++it) - { - if (it->empty()) - continue; - bool enablecap = ((*it)[0] != '-'); - if (((enablecap) && (*it == cap)) || (*it == "-" + cap)) - { - // we can handle this, so ACK it, and remove it from the wanted list - data->ack.push_back(*it); - data->wanted.erase(it); - ext.set(data->user, enablecap ? 1 : 0); - break; - } - } - } - else if (data->type == CapEvent::CAPEVENT_LS) - { - data->wanted.push_back(cap); - } - else if (data->type == CapEvent::CAPEVENT_LIST) - { - if (ext.get(data->user)) - data->wanted.push_back(cap); - } - else if (data->type == CapEvent::CAPEVENT_CLEAR) - { - data->ack.push_back("-" + cap); - ext.set(data->user, 0); - } - } -}; - -#endif diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp index 5bec93f03..9eb9a8da9 100644 --- a/src/modules/m_cloaking.cpp +++ b/src/modules/m_cloaking.cpp @@ -24,7 +24,7 @@ #include "inspircd.h" -#include "hash.h" +#include "modules/hash.h" /* $ModDesc: Provides masking of user hostnames */ diff --git a/src/modules/m_filter.cpp b/src/modules/m_filter.cpp index 7e7ded306..027222b3a 100644 --- a/src/modules/m_filter.cpp +++ b/src/modules/m_filter.cpp @@ -22,7 +22,7 @@ #include "inspircd.h" #include "xline.h" -#include "m_regex.h" +#include "modules/regex.h" /* $ModDesc: Text (spam) filtering */ diff --git a/src/modules/m_httpd.cpp b/src/modules/m_httpd.cpp index 46f0d6907..d768a9436 100644 --- a/src/modules/m_httpd.cpp +++ b/src/modules/m_httpd.cpp @@ -23,10 +23,10 @@ #include "inspircd.h" -#include "httpd.h" +#include "modules/httpd.h" /* $ModDesc: Provides HTTP serving facilities to modules */ -/* $ModDep: httpd.h */ +/* $ModDep: modules/httpd.h */ class ModuleHttpServer; diff --git a/src/modules/m_httpd_acl.cpp b/src/modules/m_httpd_acl.cpp index 70c36a154..aaf03802c 100644 --- a/src/modules/m_httpd_acl.cpp +++ b/src/modules/m_httpd_acl.cpp @@ -19,7 +19,7 @@ #include "inspircd.h" -#include "httpd.h" +#include "modules/httpd.h" #include "protocol.h" /* $ModDesc: Provides access control lists (passwording of resources, ip restrictions etc) to m_httpd.so dependent modules */ diff --git a/src/modules/m_httpd_config.cpp b/src/modules/m_httpd_config.cpp index 88594e2fe..cfdaa4290 100644 --- a/src/modules/m_httpd_config.cpp +++ b/src/modules/m_httpd_config.cpp @@ -19,7 +19,7 @@ #include "inspircd.h" -#include "httpd.h" +#include "modules/httpd.h" #include "protocol.h" /* $ModDesc: Allows for the server configuration to be viewed over HTTP via m_httpd.so */ diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp index 2eb9f7cb7..7d7ebcf3d 100644 --- a/src/modules/m_httpd_stats.cpp +++ b/src/modules/m_httpd_stats.cpp @@ -22,7 +22,7 @@ #include "inspircd.h" -#include "httpd.h" +#include "modules/httpd.h" #include "xline.h" #include "protocol.h" diff --git a/src/modules/m_inviteexception.cpp b/src/modules/m_inviteexception.cpp index 2d8382832..69498a942 100644 --- a/src/modules/m_inviteexception.cpp +++ b/src/modules/m_inviteexception.cpp @@ -25,7 +25,6 @@ #include "listmode.h" /* $ModDesc: Provides support for the +I channel mode */ -/* $ModDep: ../../include/listmode.h */ /* * Written by Om , April 2005. diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp index cc2e6c322..0e28d59f2 100644 --- a/src/modules/m_ircv3.cpp +++ b/src/modules/m_ircv3.cpp @@ -19,8 +19,8 @@ /* $ModDesc: Provides support for extended-join, away-notify and account-notify CAP capabilities */ #include "inspircd.h" -#include "account.h" -#include "m_cap.h" +#include "modules/account.h" +#include "modules/cap.h" class ModuleIRCv3 : public Module { diff --git a/src/modules/m_md5.cpp b/src/modules/m_md5.cpp index c42507ea1..feba027f6 100644 --- a/src/modules/m_md5.cpp +++ b/src/modules/m_md5.cpp @@ -27,7 +27,7 @@ #ifdef HAS_STDINT #include #endif -#include "hash.h" +#include "modules/hash.h" /* The four core functions - F1 is optimized somewhat */ #define F1(x, y, z) (z ^ (x & (y ^ z))) diff --git a/src/modules/m_namesx.cpp b/src/modules/m_namesx.cpp index 4ba8613d8..48d8cc871 100644 --- a/src/modules/m_namesx.cpp +++ b/src/modules/m_namesx.cpp @@ -21,7 +21,7 @@ #include "inspircd.h" -#include "m_cap.h" +#include "modules/cap.h" /* $ModDesc: Provides the NAMESX (CAP multi-prefix) capability. */ diff --git a/src/modules/m_password_hash.cpp b/src/modules/m_password_hash.cpp index 98462780b..e913f4925 100644 --- a/src/modules/m_password_hash.cpp +++ b/src/modules/m_password_hash.cpp @@ -21,7 +21,7 @@ /* $ModDesc: Allows for hashed oper passwords */ #include "inspircd.h" -#include "hash.h" +#include "modules/hash.h" /* Handle /MKPASSWD */ diff --git a/src/modules/m_regex.h b/src/modules/m_regex.h deleted file mode 100644 index 0233f938a..000000000 --- a/src/modules/m_regex.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2008 Thomas Stagner - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#ifndef M_REGEX_H -#define M_REGEX_H - -#include "inspircd.h" - -class Regex : public classbase -{ -protected: - std::string regex_string; // The raw uncompiled regex string. - - // Constructor may as well be protected, as this class is abstract. - Regex(const std::string& rx) : regex_string(rx) - { - } - -public: - - virtual ~Regex() - { - } - - virtual bool Matches(const std::string& text) = 0; - - const std::string& GetRegexString() const - { - return regex_string; - } -}; - -class RegexFactory : public DataProvider -{ - public: - RegexFactory(Module* Creator, const std::string& Name) : DataProvider(Creator, Name) {} - - virtual Regex* Create(const std::string& expr) = 0; -}; - -#endif diff --git a/src/modules/m_regex_glob.cpp b/src/modules/m_regex_glob.cpp index a3088cabd..f53ac2b9c 100644 --- a/src/modules/m_regex_glob.cpp +++ b/src/modules/m_regex_glob.cpp @@ -18,7 +18,7 @@ */ -#include "m_regex.h" +#include "modules/regex.h" #include "inspircd.h" /* $ModDesc: Regex module using plain wildcard matching. */ diff --git a/src/modules/m_regonlycreate.cpp b/src/modules/m_regonlycreate.cpp index 9d4cd5f60..98250d2a7 100644 --- a/src/modules/m_regonlycreate.cpp +++ b/src/modules/m_regonlycreate.cpp @@ -21,7 +21,7 @@ #include "inspircd.h" -#include "account.h" +#include "modules/account.h" /* $ModDesc: Prevents users whose nicks are not registered from creating new channels */ diff --git a/src/modules/m_ripemd160.cpp b/src/modules/m_ripemd160.cpp index e487d6e30..3e7d00049 100644 --- a/src/modules/m_ripemd160.cpp +++ b/src/modules/m_ripemd160.cpp @@ -64,7 +64,7 @@ #ifdef HAS_STDINT #include #endif -#include "hash.h" +#include "modules/hash.h" #define RMDsize 160 diff --git a/src/modules/m_rline.cpp b/src/modules/m_rline.cpp index 2e94df042..c4439cbfb 100644 --- a/src/modules/m_rline.cpp +++ b/src/modules/m_rline.cpp @@ -23,7 +23,7 @@ /* $ModDesc: RLINE: Regexp user banning. */ #include "inspircd.h" -#include "m_regex.h" +#include "modules/regex.h" #include "xline.h" static bool ZlineOnMatch = false; diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp index ff007f799..e949e3fd4 100644 --- a/src/modules/m_sasl.cpp +++ b/src/modules/m_sasl.cpp @@ -19,10 +19,10 @@ #include "inspircd.h" -#include "m_cap.h" -#include "account.h" -#include "sasl.h" -#include "ssl.h" +#include "modules/cap.h" +#include "modules/account.h" +#include "modules/sasl.h" +#include "modules/ssl.h" /* $ModDesc: Provides support for IRC Authentication Layer (aka: atheme SASL) via AUTHENTICATE. */ diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index fbf099924..bdd47b4bc 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -25,7 +25,7 @@ /* $ModDesc: Provides support for ircu-style services accounts, including chmode +R, etc. */ #include "inspircd.h" -#include "account.h" +#include "modules/account.h" /** Channel mode +r - mark a channel as identified */ diff --git a/src/modules/m_sha256.cpp b/src/modules/m_sha256.cpp index 360b18ddd..2c53e7170 100644 --- a/src/modules/m_sha256.cpp +++ b/src/modules/m_sha256.cpp @@ -62,7 +62,7 @@ #ifdef HAS_STDINT #include #endif -#include "hash.h" +#include "modules/hash.h" #ifndef HAS_STDINT typedef unsigned int uint32_t; diff --git a/src/modules/m_spanningtree/cachetimer.h b/src/modules/m_spanningtree/cachetimer.h index bad1b7419..da9911170 100644 --- a/src/modules/m_spanningtree/cachetimer.h +++ b/src/modules/m_spanningtree/cachetimer.h @@ -17,8 +17,7 @@ */ -#ifndef M_SPANNINGTREE_CACHETIMER_H -#define M_SPANNINGTREE_CACHETIMER_H +#pragma once #include "timer.h" @@ -37,5 +36,3 @@ class CacheRefreshTimer : public Timer CacheRefreshTimer(SpanningTreeUtilities* Util); virtual void Tick(time_t TIME); }; - -#endif diff --git a/src/modules/m_spanningtree/commands.h b/src/modules/m_spanningtree/commands.h index 3b5b499c1..93455c8c4 100644 --- a/src/modules/m_spanningtree/commands.h +++ b/src/modules/m_spanningtree/commands.h @@ -17,8 +17,7 @@ */ -#ifndef M_SPANNINGTREE_COMMANDS_H -#define M_SPANNINGTREE_COMMANDS_H +#pragma once #include "main.h" @@ -151,5 +150,3 @@ class SpanningTreeCommands CommandFName fname; SpanningTreeCommands(ModuleSpanningTree* module); }; - -#endif diff --git a/src/modules/m_spanningtree/hmac.cpp b/src/modules/m_spanningtree/hmac.cpp index 8dc18cbbd..ec39fb746 100644 --- a/src/modules/m_spanningtree/hmac.cpp +++ b/src/modules/m_spanningtree/hmac.cpp @@ -21,8 +21,8 @@ #include "inspircd.h" #include "socket.h" #include "xline.h" -#include "../hash.h" -#include "../ssl.h" +#include "modules/hash.h" +#include "modules/ssl.h" #include "socketengine.h" #include "main.h" diff --git a/src/modules/m_spanningtree/link.h b/src/modules/m_spanningtree/link.h index 797f108d8..b318c9bf2 100644 --- a/src/modules/m_spanningtree/link.h +++ b/src/modules/m_spanningtree/link.h @@ -18,8 +18,7 @@ */ -#ifndef M_SPANNINGTREE_LINK_H -#define M_SPANNINGTREE_LINK_H +#pragma once class Link : public refcountbase { @@ -51,5 +50,3 @@ class Autoconnect : public refcountbase int position; Autoconnect(ConfigTag* Tag) : tag(Tag) {} }; - -#endif diff --git a/src/modules/m_spanningtree/main.h b/src/modules/m_spanningtree/main.h index 1a16d72bb..fc59a3c7d 100644 --- a/src/modules/m_spanningtree/main.h +++ b/src/modules/m_spanningtree/main.h @@ -21,8 +21,7 @@ */ -#ifndef M_SPANNINGTREE_MAIN_H -#define M_SPANNINGTREE_MAIN_H +#pragma once #include "inspircd.h" #include @@ -178,5 +177,3 @@ class ModuleSpanningTree : public Module Version GetVersion(); void Prioritize(); }; - -#endif diff --git a/src/modules/m_spanningtree/operquit.cpp b/src/modules/m_spanningtree/operquit.cpp index af2e04ebc..235f74781 100644 --- a/src/modules/m_spanningtree/operquit.cpp +++ b/src/modules/m_spanningtree/operquit.cpp @@ -19,7 +19,6 @@ #include "inspircd.h" #include "xline.h" - #include "treesocket.h" #include "treeserver.h" #include "utils.h" diff --git a/src/modules/m_spanningtree/protocolinterface.h b/src/modules/m_spanningtree/protocolinterface.h index 297366893..2757db8da 100644 --- a/src/modules/m_spanningtree/protocolinterface.h +++ b/src/modules/m_spanningtree/protocolinterface.h @@ -17,8 +17,7 @@ */ -#ifndef M_SPANNINGTREE_PROTOCOLINTERFACE_H -#define M_SPANNINGTREE_PROTOCOLINTERFACE_H +#pragma once class SpanningTreeUtilities; class ModuleSpanningTree; @@ -43,6 +42,3 @@ class SpanningTreeProtocolInterface : public ProtocolInterface virtual void SendUserNotice(User* target, const std::string &text); virtual void GetServerList(ProtoServerList &sl); }; - -#endif - diff --git a/src/modules/m_spanningtree/resolvers.h b/src/modules/m_spanningtree/resolvers.h index 65b9e7249..a092e156b 100644 --- a/src/modules/m_spanningtree/resolvers.h +++ b/src/modules/m_spanningtree/resolvers.h @@ -18,8 +18,7 @@ */ -#ifndef M_SPANNINGTREE_RESOLVERS_H -#define M_SPANNINGTREE_RESOLVERS_H +#pragma once #include "socket.h" #include "inspircd.h" @@ -63,5 +62,3 @@ class ServernameResolver : public Resolver void OnLookupComplete(const std::string &result, unsigned int ttl, bool cached); void OnError(ResolverError e, const std::string &errormessage); }; - -#endif diff --git a/src/modules/m_spanningtree/treeserver.cpp b/src/modules/m_spanningtree/treeserver.cpp index 6213483ee..42cd37fb9 100644 --- a/src/modules/m_spanningtree/treeserver.cpp +++ b/src/modules/m_spanningtree/treeserver.cpp @@ -24,7 +24,7 @@ #include "socket.h" #include "xline.h" #include "main.h" -#include "../spanningtree.h" +#include "modules/spanningtree.h" #include "utils.h" #include "treeserver.h" diff --git a/src/modules/m_spanningtree/treeserver.h b/src/modules/m_spanningtree/treeserver.h index 60b6d1def..f5d81bc73 100644 --- a/src/modules/m_spanningtree/treeserver.h +++ b/src/modules/m_spanningtree/treeserver.h @@ -19,8 +19,7 @@ */ -#ifndef M_SPANNINGTREE_TREESERVER_H -#define M_SPANNINGTREE_TREESERVER_H +#pragma once #include "treesocket.h" @@ -210,5 +209,3 @@ class TreeServer : public classbase */ ~TreeServer(); }; - -#endif diff --git a/src/modules/m_spanningtree/treesocket.h b/src/modules/m_spanningtree/treesocket.h index 85d256c61..2d975a4bf 100644 --- a/src/modules/m_spanningtree/treesocket.h +++ b/src/modules/m_spanningtree/treesocket.h @@ -20,8 +20,7 @@ */ -#ifndef M_SPANNINGTREE_TREESOCKET_H -#define M_SPANNINGTREE_TREESOCKET_H +#pragma once #include "socket.h" #include "inspircd.h" @@ -318,6 +317,3 @@ class TreeSocket : public BufferedSocket */ bool Introduced(); }; - -#endif - diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index 26171ee72..6a528ed8d 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -26,7 +26,7 @@ #include "socketengine.h" #include "main.h" -#include "../spanningtree.h" +#include "modules/spanningtree.h" #include "utils.h" #include "treeserver.h" #include "link.h" diff --git a/src/modules/m_spanningtree/utils.h b/src/modules/m_spanningtree/utils.h index 0d44cd24f..fed90c253 100644 --- a/src/modules/m_spanningtree/utils.h +++ b/src/modules/m_spanningtree/utils.h @@ -20,8 +20,7 @@ */ -#ifndef M_SPANNINGTREE_UTILS_H -#define M_SPANNINGTREE_UTILS_H +#pragma once #include "inspircd.h" @@ -179,5 +178,3 @@ class SpanningTreeUtilities : public classbase */ void RefreshIPCache(); }; - -#endif diff --git a/src/modules/m_sqlauth.cpp b/src/modules/m_sqlauth.cpp index 8647e3e9e..e92eea3a5 100644 --- a/src/modules/m_sqlauth.cpp +++ b/src/modules/m_sqlauth.cpp @@ -18,8 +18,8 @@ #include "inspircd.h" -#include "sql.h" -#include "hash.h" +#include "modules/sql.h" +#include "modules/hash.h" /* $ModDesc: Allow/Deny connections based upon an arbitrary SQL table */ diff --git a/src/modules/m_sqloper.cpp b/src/modules/m_sqloper.cpp index 881b8d6d2..b5b020d9d 100644 --- a/src/modules/m_sqloper.cpp +++ b/src/modules/m_sqloper.cpp @@ -18,8 +18,8 @@ #include "inspircd.h" -#include "sql.h" -#include "hash.h" +#include "modules/sql.h" +#include "modules/hash.h" /* $ModDesc: Allows storage of oper credentials in an SQL table */ diff --git a/src/modules/m_sslinfo.cpp b/src/modules/m_sslinfo.cpp index a04a643a0..b51c30b76 100644 --- a/src/modules/m_sslinfo.cpp +++ b/src/modules/m_sslinfo.cpp @@ -18,7 +18,7 @@ #include "inspircd.h" -#include "ssl.h" +#include "modules/ssl.h" /* $ModDesc: Provides SSL metadata, including /WHOIS information and /SSLINFO command */ diff --git a/src/modules/m_sslmodes.cpp b/src/modules/m_sslmodes.cpp index fbd77c249..d862a0706 100644 --- a/src/modules/m_sslmodes.cpp +++ b/src/modules/m_sslmodes.cpp @@ -22,7 +22,7 @@ #include "inspircd.h" -#include "ssl.h" +#include "modules/ssl.h" /* $ModDesc: Provides channel mode +z to allow for Secure/SSL only channels */ diff --git a/src/modules/m_uhnames.cpp b/src/modules/m_uhnames.cpp index 1b0c91c94..a0ff796ae 100644 --- a/src/modules/m_uhnames.cpp +++ b/src/modules/m_uhnames.cpp @@ -20,7 +20,7 @@ #include "inspircd.h" -#include "m_cap.h" +#include "modules/cap.h" /* $ModDesc: Provides the UHNAMES facility. */ diff --git a/src/modules/sasl.h b/src/modules/sasl.h deleted file mode 100644 index f67351104..000000000 --- a/src/modules/sasl.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2010 Daniel De Graaf - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#ifndef SASL_H -#define SASL_H - -class SASLFallback : public Event -{ - public: - const parameterlist& params; - SASLFallback(Module* me, const parameterlist& p) - : Event(me, "sasl_fallback"), params(p) - { - Send(); - } -}; - -#endif diff --git a/src/modules/spanningtree.h b/src/modules/spanningtree.h deleted file mode 100644 index 212f35ff3..000000000 --- a/src/modules/spanningtree.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2009 Daniel De Graaf - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#ifndef SPANNINGTREE_H -#define SPANNINGTREE_H - -struct AddServerEvent : public Event -{ - const std::string servername; - AddServerEvent(Module* me, const std::string& name) - : Event(me, "new_server"), servername(name) - { - Send(); - } -}; - -struct DelServerEvent : public Event -{ - const std::string servername; - DelServerEvent(Module* me, const std::string& name) - : Event(me, "lost_server"), servername(name) - { - Send(); - } -}; - -#endif diff --git a/src/modules/sql.h b/src/modules/sql.h deleted file mode 100644 index 436cd1da8..000000000 --- a/src/modules/sql.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2010 Daniel De Graaf - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#ifndef INSPIRCD_SQLAPI_3 -#define INSPIRCD_SQLAPI_3 - -/** Defines the error types which SQLerror may be set to - */ -enum SQLerrorNum { SQL_NO_ERROR, SQL_BAD_DBID, SQL_BAD_CONN, SQL_QSEND_FAIL, SQL_QREPLY_FAIL }; - -/** A list of format parameters for an SQLquery object. - */ -typedef std::vector ParamL; - -typedef std::map ParamM; - -class SQLEntry -{ - public: - std::string value; - bool nul; - SQLEntry() : nul(true) {} - SQLEntry(const std::string& v) : value(v), nul(false) {} - inline operator std::string&() { return value; } -}; - -typedef std::vector SQLEntries; - -/** - * Result of an SQL query. Only valid inside OnResult - */ -class SQLResult : public classbase -{ - public: - /** - * Return the number of rows in the result. - * - * Note that if you have perfomed an INSERT or UPDATE query or other - * query which will not return rows, this will return the number of - * affected rows. In this case you SHOULD NEVER access any of the result - * set rows, as there aren't any! - * @returns Number of rows in the result set. - */ - virtual int Rows() = 0; - - /** - * Return a single row (result of the query). The internal row counter - * is incremented by one. - * - * @param result Storage for the result data. - * @returns true if there was a row, false if no row exists (end of - * iteration) - */ - virtual bool GetRow(SQLEntries& result) = 0; - - /** Returns column names for the items in this row - */ - virtual void GetCols(std::vector& result) = 0; -}; - -/** SQLerror holds the error state of a request. - * The error string varies from database software to database software - * and should be used to display informational error messages to users. - */ -class SQLerror -{ - public: - /** The error id - */ - SQLerrorNum id; - - /** The error string - */ - std::string str; - - /** Initialize an SQLerror - * @param i The error ID to set - * @param s The (optional) error string to set - */ - SQLerror(SQLerrorNum i, const std::string &s = "") - : id(i), str(s) - { - } - - /** Return the error string for an error - */ - const char* Str() - { - if(str.length()) - return str.c_str(); - - switch(id) - { - case SQL_BAD_DBID: - return "Invalid database ID"; - case SQL_BAD_CONN: - return "Invalid connection"; - case SQL_QSEND_FAIL: - return "Sending query failed"; - case SQL_QREPLY_FAIL: - return "Getting query result failed"; - default: - return "Unknown error"; - } - } -}; - -/** - * Object representing an SQL query. This should be allocated on the heap and - * passed to an SQLProvider, which will free it when the query is complete or - * when the querying module is unloaded. - * - * You should store whatever information is needed to have the callbacks work in - * this object (UID of user, channel name, etc). - */ -class SQLQuery : public classbase -{ - public: - ModuleRef creator; - - SQLQuery(Module* Creator) : creator(Creator) {} - virtual ~SQLQuery() {} - - virtual void OnResult(SQLResult& result) = 0; - /** - * Called when the query fails - */ - virtual void OnError(SQLerror& error) { } -}; - -/** - * Provider object for SQL servers - */ -class SQLProvider : public DataProvider -{ - public: - SQLProvider(Module* Creator, const std::string& Name) : DataProvider(Creator, Name) {} - /** Submit an asynchronous SQL request - * @param callback The result reporting point - * @param query The hardcoded query string. If you have parameters to substitute, see below. - */ - virtual void submit(SQLQuery* callback, const std::string& query) = 0; - - /** Submit an asynchronous SQL request - * @param callback The result reporting point - * @param format The simple parameterized query string ('?' parameters) - * @param p Parameters to fill in for the '?' entries - */ - virtual void submit(SQLQuery* callback, const std::string& format, const ParamL& p) = 0; - - /** Submit an asynchronous SQL request. - * @param callback The result reporting point - * @param format The parameterized query string ('$name' parameters) - * @param p Parameters to fill in for the '$name' entries - */ - virtual void submit(SQLQuery* callback, const std::string& format, const ParamM& p) = 0; - - /** Convenience function to prepare a map from a User* */ - void PopulateUserInfo(User* user, ParamM& userinfo) - { - userinfo["nick"] = user->nick; - userinfo["host"] = user->host; - userinfo["ip"] = user->GetIPString(); - userinfo["gecos"] = user->fullname; - userinfo["ident"] = user->ident; - userinfo["server"] = user->server; - userinfo["uuid"] = user->uuid; - } -}; - -#endif diff --git a/src/modules/ssl.h b/src/modules/ssl.h deleted file mode 100644 index 9deafb830..000000000 --- a/src/modules/ssl.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2006 Craig Edwards - * - * 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 - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#ifndef SSL_H -#define SSL_H - -#include -#include - -/** ssl_cert is a class which abstracts SSL certificate - * and key information. - * - * Because gnutls and openssl represent key information in - * wildly different ways, this class allows it to be accessed - * in a unified manner. These classes are attached to ssl- - * connected local users using SSLCertExt - */ -class ssl_cert : public refcountbase -{ - public: - std::string dn; - std::string issuer; - std::string error; - std::string fingerprint; - bool trusted, invalid, unknownsigner, revoked; - - ssl_cert() : trusted(false), invalid(true), unknownsigner(true), revoked(false) {} - - /** Get certificate distinguished name - * @return Certificate DN - */ - const std::string& GetDN() - { - return dn; - } - - /** Get Certificate issuer - * @return Certificate issuer - */ - const std::string& GetIssuer() - { - return issuer; - } - - /** Get error string if an error has occured - * @return The error associated with this users certificate, - * or an empty string if there is no error. - */ - const std::string& GetError() - { - return error; - } - - /** Get key fingerprint. - * @return The key fingerprint as a hex string. - */ - const std::string& GetFingerprint() - { - return fingerprint; - } - - /** Get trust status - * @return True if this is a trusted certificate - * (the certificate chain validates) - */ - bool IsTrusted() - { - return trusted; - } - - /** Get validity status - * @return True if the certificate itself is - * correctly formed. - */ - bool IsInvalid() - { - return invalid; - } - - /** Get signer status - * @return True if the certificate appears to be - * self-signed. - */ - bool IsUnknownSigner() - { - return unknownsigner; - } - - /** Get revokation status. - * @return True if the certificate is revoked. - * Note that this only works properly for GnuTLS - * right now. - */ - bool IsRevoked() - { - return revoked; - } - - bool IsCAVerified() - { - return trusted && !invalid && !revoked && !unknownsigner && error.empty(); - } - - std::string GetMetaLine() - { - std::stringstream value; - bool hasError = !error.empty(); - value << (IsInvalid() ? "v" : "V") << (IsTrusted() ? "T" : "t") << (IsRevoked() ? "R" : "r") - << (IsUnknownSigner() ? "s" : "S") << (hasError ? "E" : "e") << " "; - if (hasError) - value << GetError(); - else - value << GetFingerprint() << " " << GetDN() << " " << GetIssuer(); - return value.str(); - } -}; - -/** Get certificate from a socket (only useful with an SSL module) */ -struct SocketCertificateRequest : public Request -{ - StreamSocket* const sock; - ssl_cert* cert; - - SocketCertificateRequest(StreamSocket* ss, Module* Me) - : Request(Me, ss->GetIOHook(), "GET_SSL_CERT"), sock(ss), cert(NULL) - { - Send(); - } - - std::string GetFingerprint() - { - if (cert) - return cert->GetFingerprint(); - return ""; - } -}; - -/** Get certificate from a user (requires m_sslinfo) */ -struct UserCertificateRequest : public Request -{ - User* const user; - ssl_cert* cert; - - UserCertificateRequest(User* u, Module* Me, Module* info = ServerInstance->Modules->Find("m_sslinfo.so")) - : Request(Me, info, "GET_USER_CERT"), user(u), cert(NULL) - { - Send(); - } - - std::string GetFingerprint() - { - if (cert) - return cert->GetFingerprint(); - return ""; - } -}; - -#endif diff --git a/win/config.h.cmake b/win/config.h.cmake index 47cdb9f65..05c3ce2f9 100644 --- a/win/config.h.cmake +++ b/win/config.h.cmake @@ -1,5 +1,4 @@ -#ifndef INSPIRCD_CONFIG_H -#define INSPIRCD_CONFIG_H +#pragma once #define BRANCH "@MAJOR_VERSION@.@MINOR_VERSION@" #define VERSION "@FULL_VERSION@" @@ -14,5 +13,3 @@ #include "inspircd_win32wrapper.h" #include "threadengines/threadengine_win32.h" - -#endif \ No newline at end of file diff --git a/win/inspircd_memory_functions.cpp b/win/inspircd_memory_functions.cpp index 398708317..2093bf3a8 100644 --- a/win/inspircd_memory_functions.cpp +++ b/win/inspircd_memory_functions.cpp @@ -16,6 +16,7 @@ * along with this program. If not, see . */ + #include #include #include diff --git a/win/inspircd_win32wrapper.cpp b/win/inspircd_win32wrapper.cpp index ebc498529..7a07868f9 100644 --- a/win/inspircd_win32wrapper.cpp +++ b/win/inspircd_win32wrapper.cpp @@ -22,6 +22,7 @@ * along with this program. If not, see . */ + #include "inspircd_win32wrapper.h" #include "inspircd.h" #include "configreader.h" @@ -203,7 +204,7 @@ DWORD CWin32Exception::GetErrorCode() } #include "../src/modules/m_spanningtree/link.h" -#include "../src/modules/ssl.h" +#include "modules/ssl.h" template class reference; template class reference; template class reference; diff --git a/win/inspircd_win32wrapper.h b/win/inspircd_win32wrapper.h index 75404ef8b..9b18715cd 100644 --- a/win/inspircd_win32wrapper.h +++ b/win/inspircd_win32wrapper.h @@ -19,13 +19,11 @@ */ +#pragma once + /* Windows Port Wrapper Functions/Definitions By Burlex */ - -#ifndef INSPIRCD_WIN32WRAPPER_H -#define INSPIRCD_WIN32WRAPPER_H - /* * Starting with PSAPI version 2 for Windows 7 and Windows Server 2008 R2, this function is defined as K32GetProcessMemoryInfo in Psapi.h and exported * in Kernel32.lib and Kernel32.dll. However, you should always call this function as GetProcessMemoryInfo. To ensure correct resolution of symbols @@ -200,6 +198,3 @@ private: char szErrorString[500]; DWORD dwErrorCode; }; - -#endif - diff --git a/win/win32service.h b/win/win32service.h index e4500be13..d8177eabc 100644 --- a/win/win32service.h +++ b/win/win32service.h @@ -15,7 +15,9 @@ * along with this program. If not, see . */ + #pragma once + #ifdef _WIN32 /* Hook for win32service.cpp to exit properly with the service specific error code */ -- cgit v1.3.1-10-gc9f91